OSDN Git Service
Treehugger Robot [Tue, 25 Jul 2017 21:03:26 +0000 (21:03 +0000)]
Merge "Build crtbegin with clang too."
Treehugger Robot [Tue, 25 Jul 2017 20:18:51 +0000 (20:18 +0000)]
Merge "Create global seccomp policy."
Elliott Hughes [Mon, 24 Jul 2017 23:53:11 +0000 (16:53 -0700)]
Build crtbegin with clang too.
If _start_main is static, clang optimizes it out and then generates an
undefined reference from the inline assembler, so let's explicitly tell
the compiler it's used.
Bug: N/A
Test: ran tests
Change-Id: Iba3d9c63abae9a0dc32f236b01783515f0190956
Treehugger Robot [Tue, 25 Jul 2017 18:05:42 +0000 (18:05 +0000)]
Merge "Split our FORTIFY implementation into libc_fortify"
Elliott Hughes [Tue, 25 Jul 2017 14:51:32 +0000 (14:51 +0000)]
Merge "tests: clean up bionic-unit-tests-static linking"
Elliott Hughes [Mon, 24 Jul 2017 23:22:17 +0000 (16:22 -0700)]
tests: clean up bionic-unit-tests-static linking
Adding libc++_static explicitly is not needed when it is specified
via stl:, and was the real reason we needed --allow-multiple-definition.
Bug: N/A
Test: ran static tests (32- and 64-bit)
Change-Id: I254a4b8c4f7955a17c970d31b427b05c1a2e0acf
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
George Burgess IV [Fri, 21 Jul 2017 20:28:42 +0000 (13:28 -0700)]
Split our FORTIFY implementation into libc_fortify
As requested in the bug. This also rips __memcpy_chk out of memcpy.S,
which lets us cut down on copypasta (all of the implementations look
identical).
Bug:
12231437
Test: mma on aosp_{arm,arm64,mips,x86,x86_64} internal master;
checkbuild on bullhead internal master; CtsBionicTestCases on bullhead.
No new failures.
Change-Id: I88c39ca166bacde0b692aa3063e743bb046a5d2f
Treehugger Robot [Mon, 24 Jul 2017 21:05:37 +0000 (21:05 +0000)]
Merge "Remove the HASLB and FREEUB macros."
Elliott Hughes [Mon, 24 Jul 2017 20:51:18 +0000 (20:51 +0000)]
Merge "Make xfail passes not failures."
Elliott Hughes [Mon, 24 Jul 2017 20:36:16 +0000 (20:36 +0000)]
Merge "Replace fmemopen."
Elliott Hughes [Mon, 24 Jul 2017 20:18:34 +0000 (20:18 +0000)]
Merge "Apply recent strto* fix, add new tests."
Elliott Hughes [Mon, 24 Jul 2017 20:16:40 +0000 (20:16 +0000)]
Merge "Replace killpg."
Treehugger Robot [Mon, 24 Jul 2017 19:23:36 +0000 (19:23 +0000)]
Merge "Switch to FreeBSD for wcsstr and wmemcpy."
Elliott Hughes [Fri, 21 Jul 2017 20:57:55 +0000 (13:57 -0700)]
Remove the HASLB and FREEUB macros.
Because we hate macros.
Bug: N/A
Test: ran tests
Change-Id: I2c94085ff502ec5ce6d8598ec6b3c10e7a4b5510
Elliott Hughes [Thu, 20 Jul 2017 00:20:24 +0000 (17:20 -0700)]
Replace fmemopen.
A new implementation starting from the FreeBSD fmemopen rather than the
OpenBSD one we used to use.
The tests were arrived at by translating each sentence in
http://pubs.opengroup.org/onlinepubs/
9699919799/functions/fmemopen.html,
plus http://man7.org/linux/man-pages/man3/fmemopen.3.html for historical
GNU bugs.
Bug: http://b/
31304889
Test: ran tests
Change-Id: Id8b168c9ecde638e9cdedbc3b8a0982fc83c7048
Steve Muckle [Thu, 20 Jul 2017 20:11:54 +0000 (13:11 -0700)]
Create global seccomp policy.
Enabling seccomp across all processes, rather than just zygote, is
useful for auditing the syscall usage of AOSP. Create a global seccomp
policy that can optionally be enabled by init.
Bug:
37960259
Test: confirm global seccomp by removing finit_module from policy and
observing modprobe fail, confirm regular seccomp unchanged by
comparing length of installed bpf
Change-Id: Iac53a42fa26a80b05126f262dd9525f4f66df558
Elliott Hughes [Sat, 22 Jul 2017 01:51:06 +0000 (18:51 -0700)]
Make xfail passes not failures.
Bug: http://b/
63703384
Test: ran tests
Change-Id: I02dfc92cfc0e07831b8f3a974803be384bc02f1e
Elliott Hughes [Sat, 22 Jul 2017 01:22:09 +0000 (01:22 +0000)]
Merge "Explain how to handle device-specific headers."
Treehugger Robot [Fri, 21 Jul 2017 21:35:37 +0000 (21:35 +0000)]
Merge "Remove outdated _FORTIFY_SOURCE #undefs"
George Burgess IV [Thu, 20 Jul 2017 22:13:09 +0000 (15:13 -0700)]
Remove outdated _FORTIFY_SOURCE #undefs
AFAICT, all of these were added prior to the new-style FORTIFY going
in. Because clang saw two definitions of the "same" function, it got
upset. (e.g.
35d937e4eb7b8e0a4e9a113d2f7434d55c0bc056)
Now that our FORTIFY functions are overloads of their library functions,
these undefs can be removed.
(This is a step toward making FORTIFY a library with -U_FORTIFY_SOURCE
on it, as requested in the bug.)
Bug:
12231437
Test: CtsBionicUnitTests. No new failures.
Change-Id: I844ff77106ee2bea72ae1cd0bb85d146939ecd05
Treehugger Robot [Thu, 20 Jul 2017 19:21:38 +0000 (19:21 +0000)]
Merge "Use __RENAME_IF_FILE_OFFSET64 where possible."
Elliott Hughes [Thu, 20 Jul 2017 17:36:27 +0000 (10:36 -0700)]
Explain how to handle device-specific headers.
Bug: N/A
Test: N/A
Change-Id: I12c41fcb4839ad86f5a1f62153a3348c3e40f90f
Elliott Hughes [Thu, 20 Jul 2017 17:00:28 +0000 (10:00 -0700)]
Use __RENAME_IF_FILE_OFFSET64 where possible.
It's not usable for cases where the off_t and off64_t functions became
available in different API levels, so it's not as big an improvement as
we'd hoped, but it cleans up several headers and should be usable for
any future additions (though recent Linux additions have _only_ supported
off64_t anyway).
Bug: N/A
Test: builds
Change-Id: I18b00f30666079d9d12d5b9c0ed916076d6c3641
Treehugger Robot [Wed, 19 Jul 2017 05:37:13 +0000 (05:37 +0000)]
Merge "Add __RENAME_IF_FILE_OFFSET64."
Elliott Hughes [Tue, 18 Jul 2017 18:04:25 +0000 (18:04 +0000)]
Merge "Document the intricacies of `_FILE_OFFSET_BITS=32` for LP32."
Elliott Hughes [Wed, 12 Jul 2017 22:02:20 +0000 (15:02 -0700)]
Document the intricacies of `_FILE_OFFSET_BITS=32` for LP32.
Bug: https://github.com/android-ndk/ndk/issues/453
Test: N/A
Change-Id: I5c00e63c861b19071229d2eae737dfbeb550e7e8
Elliott Hughes [Mon, 17 Jul 2017 21:45:46 +0000 (21:45 +0000)]
Merge "Make _scan_nan a bit less visible for libandroid_support users."
Dan Albert [Mon, 17 Jul 2017 21:05:44 +0000 (14:05 -0700)]
Add __RENAME_IF_FILE_OFFSET64.
Convenience macro for __RENAME if __USE_FILE_OFFSET64 mode. Lets us
avoid duplicating all the doxygen comments in frameworks headers.
Test: make checkbuild
Bug: https://github.com/android-ndk/ndk/issues/459
Change-Id: Ica44f22b2f1596e484694006c0926d94d16187b5
Elliott Hughes [Mon, 17 Jul 2017 18:23:02 +0000 (11:23 -0700)]
Make _scan_nan a bit less visible for libandroid_support users.
Bug: N/A
Test: readelf
Change-Id: Ibb5fbf09f6ae589a3e789107a641013fc6bc375b
Treehugger Robot [Sat, 15 Jul 2017 03:12:36 +0000 (03:12 +0000)]
Merge "Hide various mbstate implementation details."
Treehugger Robot [Sat, 15 Jul 2017 01:07:39 +0000 (01:07 +0000)]
Merge "Allow passing filenames to generate-NOTICE.py."
Elliott Hughes [Sat, 15 Jul 2017 00:00:05 +0000 (17:00 -0700)]
Hide various mbstate implementation details.
...by inlining them.
Also fix a couple of harmless bugs in passing. I've added tests, but in
both cases I don't think it was actually possible to hit the bad behavior:
we'd hit another test and fail immediately after in an externally
indistinguishable way.
Bug: N/A
Test: readelf
Change-Id: I8466050b0bfe2b7b94c76b383cf10c1d9d28debd
Elliott Hughes [Fri, 14 Jul 2017 17:00:32 +0000 (10:00 -0700)]
Allow passing filenames to generate-NOTICE.py.
For the libandroid_support NOTICE file, we need to combine all the files
in that directory, plus the specific files pulled from bionic.
Also cleaned up some of the Python style.
Bug: N/A
Test: used for libandroid_support
Change-Id: If433e3a0f0478f06d99a9b3556e99dde06a7e5e1
Treehugger Robot [Fri, 14 Jul 2017 22:09:50 +0000 (22:09 +0000)]
Merge "__cfi_slowpath[_diag] are available to NDK and VNDK clients"
Treehugger Robot [Fri, 14 Jul 2017 18:51:03 +0000 (18:51 +0000)]
Merge "libm symbol cleanup."
Elliott Hughes [Fri, 14 Jul 2017 00:30:06 +0000 (17:30 -0700)]
libm symbol cleanup.
Some of this code is used in the NDK libandroid_support now, as a static
library, so just being HIDDEN in the ELF sense isn't sufficient.
Rename digittoint to __libm_digittoint so we don't trample anyone's toes.
Also remove imprecise_powl and imprecise_tgammal. It turns out (to my
surprise) that we don't even have ld128 implementations of powl and tgammal,
so even LP64 was just using the "fake_long_double.c" hack in effect. Since
that's the case, let's *actually* do that because then we're not polluting
with the internal names in addition to the aliases.
Bug: N/A
Test: readelf
Change-Id: I273cc8fdc7ce53f9b8dfd4ef7796e358fe901837
Treehugger Robot [Thu, 13 Jul 2017 19:25:38 +0000 (19:25 +0000)]
Merge "Fix unistd._POSIX_macros_smoke test."
Treehugger Robot [Thu, 13 Jul 2017 19:21:11 +0000 (19:21 +0000)]
Merge "Move wchar _l functions out of wchar.cpp."
Dan Albert [Thu, 13 Jul 2017 17:29:20 +0000 (10:29 -0700)]
Move wchar _l functions out of wchar.cpp.
We don't need these in libandroid_support, but we do need the other
parts of wchar.cpp, and they're not really related.
Test: make checkbuild
Bug: None
Change-Id: I40f3089b034abfd4873e81c0b6216a7cfd977d8d
Elliott Hughes [Thu, 13 Jul 2017 17:20:41 +0000 (10:20 -0700)]
Fix unistd._POSIX_macros_smoke test.
We now claim _POSIX2_VERSION, but the test wasn't updated.
Bug: N/A
Test: ran tests
Change-Id: Idb3369b3df4b964f585597f0d37962ae619322d2
Elliott Hughes [Thu, 13 Jul 2017 16:45:00 +0000 (09:45 -0700)]
Switch to FreeBSD for wcsstr and wmemcpy.
Almost all of our w* functions come from FreeBSD already. The one downside is
that we can't take all our w* functions from FreeBSD because FreeBSD handles
locales very differently from us.
Bug: N/A
Test: ran tests
Change-Id: I177b4332499992babd5d5afe5b3f469f8c4345a5
Elliott Hughes [Thu, 13 Jul 2017 16:35:15 +0000 (09:35 -0700)]
Apply recent strto* fix, add new tests.
The behavior with "0xy" was wrong: we'd swallow the 'x'.
Bug: N/A
Test: ran tests
Change-Id: I2464d22a2408e99880303876306f18a25c390ad9
Dan Albert [Thu, 13 Jul 2017 08:34:57 +0000 (08:34 +0000)]
Merge changes from topic 'locale-android-support'
* changes:
Add a non-TLS slot implementation of locale.cpp.
Move non-locale.h APIs out of locale.cpp.
Christopher Ferris [Thu, 13 Jul 2017 06:13:14 +0000 (06:13 +0000)]
Merge "Really fix the mac build."
Christopher Ferris [Thu, 13 Jul 2017 06:10:07 +0000 (23:10 -0700)]
Really fix the mac build.
I forgot an underscore.
Test: Builds.
Change-Id: Ib7da13dea315822af89c53a569fb0a0c2fd5d321
Treehugger Robot [Thu, 13 Jul 2017 04:32:33 +0000 (04:32 +0000)]
Merge "Fix max build."
Christopher Ferris [Thu, 13 Jul 2017 02:33:32 +0000 (19:33 -0700)]
Fix max build.
Test: Built properly.
Change-Id: I37b8ac7d42653617be6611b640a883066257214c
Jiyong Park [Fri, 30 Jun 2017 06:36:12 +0000 (15:36 +0900)]
__cfi_slowpath[_diag] are available to NDK and VNDK clients
When a vendor lib (or vendor-available platform lib) is built with
sanitizer on, __cfi_slowpath_diag is required. However, when building
for those libs, the llndk stub of libdl.so is provided for them and
__cfi_slowpath_diag is not exposed to the stub. In order to make the
sanitizing build successful, expose the symbol.
These symbols are also exposed to NDK clients since we may want to CFI
for unbundled apps.
Bug:
63053790
Bug:
63342219
Test: BOARD_VNDK_VERSION=current m -j libstagefright_foundation.vendor
Change-Id: I081deddb4f66354aaecec4b395d4e17e5566c578
Christopher Ferris [Wed, 12 Jul 2017 22:56:13 +0000 (22:56 +0000)]
Merge "Support memory alignment tests for string_benchmark.cpp"
Dan Albert [Wed, 12 Jul 2017 20:47:42 +0000 (13:47 -0700)]
Add a non-TLS slot implementation of locale.cpp.
libandroid_support shouldn't be using Bionic's TLS slot. Add a
thread_local based implementation. We can't use the thread_local
implementation in bionic because the linker needs this and pthread
thread-locals (which is how thread_local is implemented) doesn't work
that early.
Test: make checkbuild
Test: adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests
Bug: https://github.com/android-ndk/ndk/issues/300
Change-Id: I7dcbf554ade2264d541d722fa3f86df04926e67a
Anders Lewis [Fri, 23 Jun 2017 22:53:59 +0000 (15:53 -0700)]
Support memory alignment tests for string_benchmark.cpp
Test: Manually verify that benchmark times are similar and add a unit test.
Change-Id: Idaaeb4c8c3629f797ffd8d0c86c8d7b7b9653181
Dan Albert [Tue, 11 Jul 2017 21:27:07 +0000 (14:27 -0700)]
Move non-locale.h APIs out of locale.cpp.
libandroid_support only needs the locale.h stuff.
Test: make checkbuild
Bug: None
Change-Id: I0c53fe9d2df4f9ff4b99771727034508bc89cb32
Elliott Hughes [Tue, 11 Jul 2017 22:00:17 +0000 (15:00 -0700)]
Replace killpg.
Upstream's killpg is diverging further from glibc behavior, so let's just fork.
Bug: N/A
Test: ran tests
Change-Id: I70a3543018bc0a5c0bbf019ac527043b90568fda
Treehugger Robot [Tue, 11 Jul 2017 21:34:08 +0000 (21:34 +0000)]
Merge "Sync with upstream OpenBSD: trivial stuff."
Elliott Hughes [Tue, 11 Jul 2017 19:34:19 +0000 (12:34 -0700)]
Sync with upstream OpenBSD: trivial stuff.
No active ingredient to any of these changes.
Bug: N/A
Test: builds
Change-Id: Ib1191a5c2826da024245d03dfc57557c8903a6cc
Treehugger Robot [Tue, 11 Jul 2017 18:54:24 +0000 (18:54 +0000)]
Merge "The future passed part of <stdlib.h> by..."
Treehugger Robot [Tue, 11 Jul 2017 17:41:13 +0000 (17:41 +0000)]
Merge "Properly handle elf-files without relocation sections"
dimitry [Tue, 11 Jul 2017 14:51:45 +0000 (16:51 +0200)]
Properly handle elf-files without relocation sections
Relocation packer no longer complains about missing
relocation sections.
Test: relocation-packer-unit-tests
Test: mm
Change-Id: I56814be326c15e046db1a96d14568d951f689ae2
Treehugger Robot [Tue, 11 Jul 2017 08:10:41 +0000 (08:10 +0000)]
Merge "sys_ptrace_test: Better detect missing HW support"
Victor Khimenko [Mon, 10 Jul 2017 22:33:54 +0000 (22:33 +0000)]
Merge "Move environ valiable into it's own file"
Elliott Hughes [Mon, 10 Jul 2017 20:40:53 +0000 (20:40 +0000)]
Merge "Make inline tcsetattr definition match constants."
Treehugger Robot [Mon, 10 Jul 2017 20:20:53 +0000 (20:20 +0000)]
Merge "Undo recent _FILE_OFFSET_BITS=64 changes."
Treehugger Robot [Mon, 10 Jul 2017 20:07:01 +0000 (20:07 +0000)]
Merge "Fix ffs on x86 for old API levels."
Elliott Hughes [Wed, 5 Jul 2017 22:23:50 +0000 (15:23 -0700)]
Undo recent _FILE_OFFSET_BITS=64 changes.
We had several bugs filed saying "if I set _FILE_OFFSET_BITS=64 when
targeting an API < L, various functions are missing". Instead of
saying "yes, they are", we quietly just modified the header files to
expose the non-64-bit variants. This makes no sense. We can't just say
"oh, yeah, we don't have a version of this function that agrees with
your calling code about how large off_t is, but here's a version that
doesn't: I'm sure it'll be fine".
_FILE_OFFSET_BITS=64 on Android LP32 has always been a game of chance,
but that game should be "are all the functions my code needs available
at compile time?", not "will my code actually work at run time?".
Bug: https://github.com/android-ndk/ndk/issues/449
Bug: https://github.com/android-ndk/ndk/issues/442
Bug: https://github.com/android-ndk/ndk/issues/333
Bug: https://github.com/android-ndk/ndk/issues/332
Bug: https://github.com/android-ndk/ndk/issues/324
Test: builds
Change-Id: Ib095251d3e21e77ed50cc3575388107fecec4ecd
Victor Khimenko [Mon, 10 Jul 2017 19:15:37 +0000 (21:15 +0200)]
Move environ valiable into it's own file
Test: build statically the example program below
char** environ;
int main() {
}
Change-Id: I3f01652da1d5063d92ba7cbff7fb09bd0a89325c
Elliott Hughes [Mon, 10 Jul 2017 18:51:00 +0000 (11:51 -0700)]
The future passed part of <stdlib.h> by...
Bug: N/A
Test: builds
Change-Id: Ibac3c1abd82838dccd360cb70decb7083401c28e
Pavel Labath [Fri, 7 Jul 2017 10:42:34 +0000 (11:42 +0100)]
sys_ptrace_test: Better detect missing HW support
If the hardware debug support is missing from the CPU, the kernel can
end up in the state where it reports that it supports N(>0) watchpoints,
but the "maximum supported watchpoint size" is zero.
This is not a really sensible API, but it is what we have. I'm going to
speak to folks upstream about whether we can have it report something
more sensible, but that will take a while (if ever).
So, for the time being, detect this situation and treat it as if no
hardware watchtpoints/breakpoints are supported.
Test: bionic-unit-tests --gtest_filter="sys_ptrace.*"
Change-Id: Id6a013c9bec8d8b450b4a36c28431f6b7fd15879
Bug:
63116544
Ivan Lozano [Fri, 7 Jul 2017 20:07:20 +0000 (20:07 +0000)]
Merge "Disable integer_overflow sanitizer in libm."
Elliott Hughes [Thu, 6 Jul 2017 22:33:42 +0000 (22:33 +0000)]
Merge "Support building binutils out of the box for x86/x86-64."
Elliott Hughes [Thu, 6 Jul 2017 22:20:34 +0000 (22:20 +0000)]
Merge "Make <sys/ttydefaults.h> more usable."
Ivan Lozano [Thu, 6 Jul 2017 20:54:56 +0000 (13:54 -0700)]
Disable integer_overflow sanitizer in libm.
Explicitly disables the integer_overflow sanitizer in the libm library.
This change should not impact any other build targets.
Bug:
30969751
Test: Built with and without SANITIZE_TARGET=integer_overflow
Change-Id: I98d0312344086b01394f456d4b953463b5e6cb1a
Elliott Hughes [Thu, 6 Jul 2017 22:15:04 +0000 (22:15 +0000)]
Merge "Update <arpa/*> from FreeBSD."
Elliott Hughes [Thu, 6 Jul 2017 21:22:20 +0000 (21:22 +0000)]
Merge "Claim to have a POSIX shell and utilities."
Elliott Hughes [Thu, 6 Jul 2017 21:21:20 +0000 (21:21 +0000)]
Merge "Conditionally expose splice(2) and sync_file_range(2) constants."
Elliott Hughes [Thu, 6 Jul 2017 21:15:35 +0000 (21:15 +0000)]
Merge "Fix <dirent.h> d_ino/d_off types."
Elliott Hughes [Thu, 6 Jul 2017 18:04:15 +0000 (11:04 -0700)]
Support building binutils out of the box for x86/x86-64.
x86 needs the <sys/user.h> additions, x86-64 the <sys/procfs.h> ones.
Bug: N/A
Test: ndkports x86 and x86_64 binutils-2.28
Change-Id: I2e4738d3f8343d12db0536ca77045e2a0ccc6596
Elliott Hughes [Thu, 6 Jul 2017 17:33:15 +0000 (10:33 -0700)]
Make <sys/ttydefaults.h> more usable.
* TTYDEF_OFLAG referred to the BSD OXTABS constant instead of the Linux XTABS,
so references to it wouldn't compile.
* CEOL was incorrect (compared to `stty -a`).
* ttydefchars wouldn't compile (removed rather than attempt to fix something
of unclear utility).
Bug: http://b/
63145226
Test: new test
Change-Id: I823e5eaab789cafd2eeea03f77ea553346822f74
Dimitry Ivanov [Thu, 6 Jul 2017 15:16:03 +0000 (15:16 +0000)]
Merge "The ifdef check for AT_SYSINFO_EHDR is no longer needed"
Treehugger Robot [Thu, 6 Jul 2017 14:48:01 +0000 (14:48 +0000)]
Merge "Bionic: Add ziparchive test dependency"
dimitry [Thu, 6 Jul 2017 10:17:14 +0000 (12:17 +0200)]
The ifdef check for AT_SYSINFO_EHDR is no longer needed
AT_SYSINFO_EHDR is present in all architectures
Test: make
Change-Id: I0f4c115bb48e47ea156e7fca936960f5f10c618e
Andreas Gampe [Thu, 6 Jul 2017 05:36:20 +0000 (22:36 -0700)]
Bionic: Add ziparchive test dependency
Add missing dependency.
Bug:
37342627
Test: m
test: mmma bionic
Change-Id: I43ae69a007f0e8745db5721296f457b3e58206dd
Elliott Hughes [Wed, 5 Jul 2017 23:45:55 +0000 (16:45 -0700)]
Claim to have a POSIX shell and utilities.
We pretty much do these days. And apparently some GNU tools turn on obsolete
backwards-compatible behaviors otherwise.
Bug: http://b/
63145226
Test: builds
Change-Id: I9a8af860768cc2c10548f172d1e8b4fba3e5115b
Elliott Hughes [Wed, 5 Jul 2017 22:51:44 +0000 (15:51 -0700)]
Update <arpa/*> from FreeBSD.
We've had <arpa/telnet.h> for years, despite being slightly more useless
than <arpa/ftp.h> and <arpa/tftp.h>. The inetutils package expects these
to be available.
Bug: http://b/
63145226
Test: builds
Change-Id: I1e3c7421779e965b3342d681fefb8dc2561b604d
Elliott Hughes [Wed, 5 Jul 2017 22:59:58 +0000 (15:59 -0700)]
Conditionally expose splice(2) and sync_file_range(2) constants.
As in other places, only expose the constants at API levels where
we're also exposing the functions (to cope with "poor man's configure"
where an author assumes the presence of the #define to imply the
availability of the function).
Bug: http://b/
63145226
Test: builds
Change-Id: I524f7288513aa6c35479c550e748a619397929b0
Elliott Hughes [Wed, 5 Jul 2017 19:34:29 +0000 (12:34 -0700)]
Fix <dirent.h> d_ino/d_off types.
Bug: http://b/
63336806
Test: builds
Change-Id: I781e7c66c41bcb772d49ce7c23aab185ddd5da1e
Elliott Hughes [Wed, 5 Jul 2017 19:00:29 +0000 (12:00 -0700)]
Make inline tcsetattr definition match constants.
Before this change we have the old NDK inline termios functions with the
modern constants. Unfortunately the old NDK inline functions relied on
hacking the constants. Fix things by sharing the implementation between
the platform and the NDK headers.
Bug: https://github.com/android-ndk/ndk/issues/441
Test: ran tests
Change-Id: I2773634059530bc954167f29c4783413a2294d5a
Elliott Hughes [Sat, 1 Jul 2017 15:48:58 +0000 (15:48 +0000)]
Merge "Work around missing _Exit in old API levels."
Elliott Hughes [Fri, 30 Jun 2017 22:57:59 +0000 (15:57 -0700)]
Fix ffs on x86 for old API levels.
<strings.h>'s ffs used to work by accident. In the past, <strings.h> used
to incorrectly declare ffs for all platforms at all API levels. In the
unified headers, there's no such declaration for x86 before API 18 (which
makes sense, because that function was missing on x86 until then).
But as long as there was a declaration for ffs, the compiler just inlined
__builtin_ffs. There was no problem at link time because the compiler didn't
actually add a reference to the missing ffs symbol.
Restore the old behavior by manually instructing the compiler to inline its
builtin in these cases.
Bug: https://github.com/android-ndk/ndk/issues/439
Test: built new NDK 'ffs' test
Change-Id: I840e99f237c86f7cb028a0f67aaa8c6ff3eda245
Elliott Hughes [Fri, 30 Jun 2017 23:39:25 +0000 (16:39 -0700)]
Work around missing _Exit in old API levels.
Rather than do this in libandroid_support, we may as well just stick it with
the other historical stdlib workarounds in bionic itself...
Bug: N/A
Test: built new NDK test
Change-Id: Ia5cf4010581eb79d4adf924e87d0bc050b9e2839
Treehugger Robot [Fri, 30 Jun 2017 22:33:27 +0000 (22:33 +0000)]
Merge "Add version info for C++ versions of basename, strchrnul."
Josh Gao [Fri, 30 Jun 2017 20:20:28 +0000 (13:20 -0700)]
Add version info for C++ versions of basename, strchrnul.
These still won't get guards added by the preprocessor, because it
compiles with C-only.
Bug: https://github.com/android-ndk/ndk/issues/440
Test: treehugger
Change-Id: I893b345e528ed1b761e0db00700037411bbb8b78
Roozbeh Pournader [Fri, 30 Jun 2017 01:10:10 +0000 (01:10 +0000)]
Merge "Revert "arm64: expand CFI shadow to cover 48-bit virtual addresses""
Elliott Hughes [Thu, 29 Jun 2017 23:48:43 +0000 (23:48 +0000)]
Revert "arm64: expand CFI shadow to cover 48-bit virtual addresses"
This reverts commit
ae735163e51fbc7cac4217ce392c4894efdfc5a7.
QA claims this causes:
AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.setSurface(android.view.Surface)' on a null object reference
AndroidRuntime: at com.android.setupwizardlib....
Bug: http://b/
63141434
Change-Id: I05a6849471623d4cde8b254b1020b0ccbd84b699
Treehugger Robot [Thu, 29 Jun 2017 16:27:52 +0000 (16:27 +0000)]
Merge "bionic: fix assorted static analyzer warnings"
Elliott Hughes [Thu, 29 Jun 2017 15:23:32 +0000 (15:23 +0000)]
Merge "arm64: expand CFI shadow to cover 48-bit virtual addresses"
Treehugger Robot [Thu, 29 Jun 2017 00:39:30 +0000 (00:39 +0000)]
Merge "Put back more legacy pthread APIs."
George Burgess IV [Tue, 27 Jun 2017 23:23:45 +0000 (16:23 -0700)]
bionic: fix assorted static analyzer warnings
Warnings:
bionic/libc/bionic/fts.c:722:5: warning: Null passed to a callee that
requires a non-null 1st parameter
bionic/libc/bionic/sched_cpualloc.c:34:25: warning: Result of 'malloc'
is converted to a pointer of type 'cpu_set_t', which is incompatible
with sizeof operand type 'unsigned long'
bionic/linker/linker_main.cpp:315:7: warning: Access to field 'e_type'
results in a dereference of a null pointer (loaded from variable
'elf_hdr')
bionic/linker/linker_main.cpp:493:66: warning: Access to field 'e_phoff'
results in a dereference of a null pointer (loaded from variable
'elf_hdr')
bionic/linker/linker_main.cpp:90:14: warning: Access to field 'next'
results in a dereference of a null pointer (loaded from variable 'prev')
Bug: None
Test: mma; analyzer warnings are gone. CtsBionicTestCases pass.
Change-Id: I699a60c2c6f64c50b9ea06848a680c98a8abb44a
Kevin Brodsky [Mon, 26 Jun 2017 10:46:02 +0000 (11:46 +0100)]
arm64: expand CFI shadow to cover 48-bit virtual addresses
Starting from Linux 4.7, arm64's defconfig enables 48-bit VAs, see:
https://git.kernel.org/torvalds/c/
211102d8
On arm64, the CFI shadow configuration currently assumes that VAs
are 39-bit long, and as expected this results in a segfault on a
(defconfig) 4.7+ kernel, when linking a CFI-enabled library.
Consequently, this change increases the max target address to
account for the new max VA size.
Change-Id: I3fb808563fa77a457c65e9663da0613117332072
Treehugger Robot [Tue, 27 Jun 2017 19:46:28 +0000 (19:46 +0000)]
Merge "Enable dlfcn.dt_runpath_absolute_path in glibc tests"
Dimitry Ivanov [Tue, 27 Jun 2017 18:02:51 +0000 (11:02 -0700)]
Enable dlfcn.dt_runpath_absolute_path in glibc tests
dlfcn.dt_runpath_absolute_path no longer fails when
running bionic-unit-tests on glibc
Bug: http://b/
25320359
Test: bionic-unit-tests-glibc --gtest_filter=dlfcn.dt*
Change-Id: Ia0ecf43293cb0fed28516fd8cb87e7f5f2d6e648