Commit graph

35688 commits

Author SHA1 Message Date
Elliott Hughes
e62be7eea5 Merge "Don't use LLVM when readelf(1) will do." 2022-01-14 19:45:54 +00:00
Elliott Hughes
1ff7be0713 Don't use LLVM when readelf(1) will do.
This was probably the least worst choice at the time, but we have toybox
readelf now, which is a much lighter-weight dependency (that we already
have for some other tests).

This is also one less use of the *renderscript* LLVM, which we'll be
wanting to finally delete soon.

Test: treehugger
Change-Id: I0e05b8f139ec6e6a425b575368f3d514b8b1cc64
2022-01-13 15:46:13 -08:00
Treehugger Robot
4a85b045fd Merge "Don't use llvm-defaults to build some tests." 2022-01-13 03:55:16 +00:00
Treehugger Robot
5396787062 Merge "Fix copy pasta in guard macro for weak symbols." 2022-01-12 22:19:11 +00:00
Elliott Hughes
db358e6ae1 Don't use llvm-defaults to build some tests.
It's not clear this was ever needed, it doesn't seem to make any
difference now, and these are the defaults for the obsolete renderscript
LLVM anyway, so... yeah.

This was noticed because it was causing some of our tests to be built as
C++11 rather than [the current default of] C++17.

Test: treehugger
Change-Id: I7d72b3fd58e9cf9a02048b0298eee845d19307f7
2022-01-12 09:15:46 -08:00
Christopher Ferris
c79b02088b Merge "Update to v5.16 kernel headers." 2022-01-11 21:39:53 +00:00
Christopher Ferris
a479261feb Update to v5.16 kernel headers.
Kernel headers coming from:

Git: https://android.googlesource.com/kernel/common/
Branch: android-mainline
Tag: android-mainline-5.16

Test: Builds and bionic unit tests pass.
Change-Id: I2522c4f2a0efb9f8a193e1f2d65868e478217502
2022-01-10 13:51:15 -08:00
Treehugger Robot
f62c8f99cb Merge "Remove availability definitions for mbs APIs." 2022-01-10 21:04:37 +00:00
Dan Albert
e4106253e7 Fix copy pasta in guard macro for weak symbols.
This was pretty broken. I think anything using this was being given
always-available annotations for everything but 32-bit x86? Treehugger
should complain loudly if this was actually impacting anything though.
I suspect not since the only user of this mode is mainline which
doesn't target far back enough to have arch-specific introduction
guards.

Test: treehugger
Bug: None
Change-Id: I64e96a89d83e64512e661e88915c48a091198992
2022-01-07 16:06:54 -08:00
Dan Albert
952da92670 Remove availability definitions for mbs APIs.
Definitions for these are provided in libandroid_support for API
levels that do not expose this in the stubs. For the rare cases where
libandroid_support is not being used this will result in a lower
quality diagnostic (undefined reference instead of "not available
until API 21"), but other fixes would also have that behavior because
the libandroid_support headers are *always* available, even if
libandroid_support won't be linked.

Test: Reverted xfailed tests for #1108 and reran tests with this
Bug: https://github.com/android/ndk/issues/1108
Change-Id: I371f5b9d7caeef8dc7c80f2f6d11280ecba119c9
2022-01-07 14:38:29 -08:00
Elliott Hughes
e2c784f159 Merge "c32rtomb/mbrtoc32: remove dead code." 2021-12-16 23:52:55 +00:00
Elliott Hughes
c73c19acdb Merge "sched.h: add doc comments." 2021-12-16 23:47:13 +00:00
Elliott Hughes
31fbc1469f sched.h: add doc comments.
Test: treehugger
Change-Id: I9a6dd40bb26a5966dd32dbdf573cddc874bcb508
2021-12-15 13:56:39 -08:00
Elliott Hughes
ad1658ecfe c32rtomb/mbrtoc32: remove dead code.
When we added the fast path for the common case of ASCII, we forgot to
remove the now-dead code that handled the 1-byte case later in these
functions. This was obvious from the code coverage data.

Note that the 16-bit variants are unaffected because they're implemented
as calls to the 32-bit variants with extra range checks/surrogate
handling surrounding the call.

Test: treehugger
Change-Id: Ibd40f823519acb9aae8037bdeb3f9c5e36b9d9a6
2021-12-15 13:41:20 -08:00
Christopher Ferris
084d60a027 Merge "Mark variables as unused." 2021-12-15 18:36:43 +00:00
Christopher Ferris
724efbb57c Mark variables as unused.
clang is smart enough to notice a variable is set but not used,
but these variable are used for testing purposes. Mark one as
unused, and convert the other to a DoNotOptimize.

Bug: 197240255

Test: Compiles without warnings.
Test: Ran unit tests on coral hwasan build.
Change-Id: Ibc873e477355a702579e5a680780c77db0c58046
2021-12-14 23:02:53 +00:00
Christopher Ferris
f190be84f5 Merge "Add mallinfo2 call." 2021-12-14 05:55:16 +00:00
Elliott Hughes
1d88b551bc Merge "Add some documentation about EINTR." am: a73179fe30
Original change: https://android-review.googlesource.com/c/platform/bionic/+/1918454

Change-Id: Ia553ea3a8a3e9f966cdddf024611b3a634aafe59
2021-12-14 00:43:12 +00:00
Elliott Hughes
a73179fe30 Merge "Add some documentation about EINTR." 2021-12-14 00:25:54 +00:00
Christopher Ferris
8248e62fa9 Add mallinfo2 call.
Bug: 208293616

Test: New unit tests pass.
Change-Id: I619219b7322e2dd1c82b9c8a171dfbfe7eac6706
2021-12-13 14:26:17 -08:00
Elliott Hughes
38be11e88c Add some documentation about EINTR.
It's a common cause of confusion, and even a brief explanation can be
quite involved, so it's worth having something we can point to (and
something that interested parties might just find via a web search).

Bug: http://b/207248554
Test: treehugger
Change-Id: I4a6d8917baf99a8f7abef05ce852a31ebe048d68
2021-12-13 10:16:57 -08:00
Treehugger Robot
b2ff5e9dc2 Merge "Clarify that fdsan wasn't "enforcing" in its first release." am: 6769ccbe88
Original change: https://android-review.googlesource.com/c/platform/bionic/+/1917499

Change-Id: Id7740149851f161ddbf113257a1d9109a7843740
2021-12-10 21:47:37 +00:00
Treehugger Robot
6769ccbe88 Merge "Clarify that fdsan wasn't "enforcing" in its first release." 2021-12-10 21:23:33 +00:00
Elliott Hughes
32a72522e0 Clarify that fdsan wasn't "enforcing" in its first release.
Change-Id: I02c4ff49446995b5ea33f4fa9ca30cf204307ae8
2021-12-10 01:42:31 +00:00
Elliott Hughes
83abd83c34 Merge "strftime: format small positive integers ourselves." am: ad12582726
Original change: https://android-review.googlesource.com/c/platform/bionic/+/1897133

Change-Id: I3dab64aa9f5f94b17399b4a08d81ae847473a43a
2021-12-07 20:49:02 +00:00
Elliott Hughes
ad12582726 Merge "strftime: format small positive integers ourselves." 2021-12-07 20:30:53 +00:00
Elliott Hughes
e4d5efe231 strftime: format small positive integers ourselves.
A decent chunk of the logcat profile is spent formatting the timestamps
for each line, and most of that time was going to snprintf(3). We should
find all the places that could benefit from a lighter-weight "format an
integer" and share something between them, but this is easy for now.

Before:

-----------------------------------------------------------
Benchmark                 Time             CPU   Iterations
-----------------------------------------------------------
BM_time_strftime        781 ns          775 ns       893102

After:

-----------------------------------------------------------
Benchmark                 Time             CPU   Iterations
-----------------------------------------------------------
BM_time_strftime        149 ns          147 ns      4750782

Much of the remaining time is in tzset() which seems unfortunate.

Test: treehugger
Change-Id: Ie0f7ee462ff1b1abea6f87d4a9a996d768e51056
2021-12-06 14:55:00 -08:00
Elliott Hughes
670acdbb1e Merge "Use -fno-builtin for libc and libm." am: bb802661af
Original change: https://android-review.googlesource.com/c/platform/bionic/+/1909404

Change-Id: I15db9d94403480899a29b37e58b2d06bb63770b3
2021-12-03 16:11:08 +00:00
Elliott Hughes
bb802661af Merge "Use -fno-builtin for libc and libm." 2021-12-03 15:55:35 +00:00
Peter Collingbourne
3860403271 Merge "Fix a race condition in the bionic pthread tests." am: a43e7a87b3
Original change: https://android-review.googlesource.com/c/platform/bionic/+/1909043

Change-Id: If8069be6bbe928637233cd910fad31b2e5bbc206
2021-12-03 01:13:42 +00:00
Peter Collingbourne
a43e7a87b3 Merge "Fix a race condition in the bionic pthread tests." 2021-12-03 00:55:43 +00:00
Elliott Hughes
a13d0660fe Use -fno-builtin for libc and libm.
clang was getting in the way of a strftime(3) optimization, and smaller
hammers weren't working, and this seems like the right choice for libc
anyway? If we have code that can usefully be optimized, we should do it
in the source. In general, though, no libc/libm author should be
ignorant of memset(3) or memcpy(3), and would have used it themselves if
it made sense. (And the compiler isn't using profiling data or anything;
it's just always assuming it should use the functions, and doesn't
consider whether the cost of the calls can be amortized or not.)

Test: treehugger
Change-Id: Ia7e22623e47bfbfcfe46c1af0d95ef7e8669c0f6
2021-12-02 14:42:16 -08:00
Peter Collingbourne
c5b81844b6 Fix a race condition in the bionic pthread tests.
It's possible for the main thread to leave the RunTimedTest
function before the waiting thread has had a chance to call e.g.
pthread_cond_timedwait(). In this case, pthread_cond_timedwait()
will access the local variable ts after its lifetime has ended. Fix
the bug by making ts a field of pthread_CondWakeupTest instead. The
lifetime of pthread_CondWakeupTest is tied to that of the waiting
thread via the pthread_join() call.

Found with HWASan + uaccess logging.

Change-Id: Iefe8deb30a367dc518013d741c425b041596b0d3
2021-12-02 12:45:54 -08:00
Pirama Arumuga Nainar
1359b83d83 Merge "[versioner] Use libclang-cpp.so" am: 78051b771b
Original change: https://android-review.googlesource.com/c/platform/bionic/+/1901512

Change-Id: I19bf17bbcc46195910e463d5bf37004bff98cf68
2021-12-02 02:31:23 +00:00
Pirama Arumuga Nainar
78051b771b Merge "[versioner] Use libclang-cpp.so" 2021-12-02 02:07:14 +00:00
Treehugger Robot
14b886b1a5 Merge "Allow bpf() syscall" am: e48ea932c0
Original change: https://android-review.googlesource.com/c/platform/bionic/+/1907693

Change-Id: Icfa053fcb15d70117a6cd4ec958b67045347100d
2021-12-01 22:08:47 +00:00
Treehugger Robot
e48ea932c0 Merge "Allow bpf() syscall" 2021-12-01 21:51:30 +00:00
Alessio Balsini
5afe3f8a6a Allow bpf() syscall
The implementation of FUSE BPF requires the FUSE daemon to access BPF
functionalities, i.e., to get the fd of a pinned BPF prog and to update
maps.
In Android the FUSE daemon is part of MediaProvider which, belonging to
the apps domain, can only access the subset of syscalls allowed by
seccomp, of which bpf() is currently blocked.

This patch removes this limitation by adding the bpf() syscall to the
allowed seccomp syscalls.

Allowing the bpf() syscall is safe as its usage is still gated by
selinux and regular apps are not allowed to use it.

Bug: 202785178
Test: m
Signed-off-by: Alessio Balsini <balsini@google.com>
Change-Id: I5887e8d22906c386307e54d3131c679fee0d9f26
2021-12-01 21:32:08 +00:00
Pirama Arumuga Nainar
5514287dc3 [versioner] Use libclang-cpp.so
Bug: http://b/150809112

This is a new upstream library that exports both the clang and LLVM C++
symbols and can replace libLLVM and (android-toolchain-only)
libclang_cxx.so.

Test: Build and run versioner
Change-Id: Ib711c29f478e00e39f26dd09917618b349f0c786
2021-12-01 03:15:30 -08:00
Treehugger Robot
7d0b40f150 Merge "Update OWNERS" am: 1d4272e3e4
Original change: https://android-review.googlesource.com/c/platform/bionic/+/1906725

Change-Id: I212ba52dedcd416df9d0763a6814b67c66c5fbf9
2021-12-01 02:42:01 +00:00
Treehugger Robot
1d4272e3e4 Merge "Update OWNERS" 2021-12-01 02:19:44 +00:00
Tom Cherry
d473a70693 Update OWNERS
jmgao@ and tomcherry@ are no longer on the team.

Test: n/a
Change-Id: I7f036f951ddf62afab3e541fa88622807bef54ec
2021-11-30 16:36:04 -08:00
Treehugger Robot
27bccb1c7c Merge "Remove boilerplate." am: a9ebf6f422
Original change: https://android-review.googlesource.com/c/platform/bionic/+/1895823

Change-Id: I496c7e61f1320cfa8a78bf64787e7d0f70053101
2021-11-19 17:18:07 +00:00
Treehugger Robot
a9ebf6f422 Merge "Remove boilerplate." 2021-11-19 17:13:48 +00:00
Richard Fung
5b57d9cd84 Remove boilerplate.
The apex hash tree is automatically generated at compile time for
apexes in apexd-bootstrap, so there's no need to explicitly specify
anything here.

Bug: b/203820392, b/198361718
Test: presubmit
Change-Id: I5ff0363fde701e7fe4e3ed8ab274c6a57852828c
2021-11-19 17:13:18 +00:00
Elliott Hughes
539a4e884c Merge "mbrtoc16: explain the line that has no test coverage." am: f4c8b0da39
Original change: https://android-review.googlesource.com/c/platform/bionic/+/1896951

Change-Id: I20a91abf4bf1ba685f1e2712133aaf84cd95f473
2021-11-19 17:11:08 +00:00
Elliott Hughes
f4c8b0da39 Merge "mbrtoc16: explain the line that has no test coverage." 2021-11-19 16:54:55 +00:00
Elliott Hughes
9d66092bfd mbrtoc16: explain the line that has no test coverage.
We could remove this line, but it seems reasonable to leave it in for
clarification/safety, especially if it's moved after the common success
case?

Test: treehugger
Change-Id: I5f7e0da8397f80018e6d55321b26371790087f5c
2021-11-18 10:11:07 -08:00
TreeHugger Robot
f480905b73 Merge "Merge sc-qpr1-dev-plus-aosp-without-vendor@7810918" into stage-aosp-master 2021-11-17 19:23:55 +00:00
Evgenii Stepanov
39a051651c Merge "Regression test for scudo crash in resizeTaggedChunk." am: 19e63753d2
Original change: https://android-review.googlesource.com/c/platform/bionic/+/1894704

Change-Id: I3748ab959f64ea728ef6b0da11076c2ce91cfafd
2021-11-17 06:19:45 +00:00