OSDN Git Service

android-x86/bionic.git
6 years agoMerge "Clean up some <stdio.h> constants."
Elliott Hughes [Tue, 1 Aug 2017 18:09:02 +0000 (18:09 +0000)]
Merge "Clean up some <stdio.h> constants."

6 years agoMerge "Remove restrict/__restrict."
Elliott Hughes [Tue, 1 Aug 2017 17:44:19 +0000 (17:44 +0000)]
Merge "Remove restrict/__restrict."

6 years agoRemove restrict/__restrict.
Elliott Hughes [Tue, 1 Aug 2017 15:28:46 +0000 (08:28 -0700)]
Remove restrict/__restrict.

We've never really used __restrict: only <string.h> and <stdio.h> (which
are still very similar to upstream BSD headers) consistently have these
annotations. Neither clang nor GCC warns for trivial cases, and there's
little obvious documentation benefit.

Bug: http://b/30833514
Test: builds
Change-Id: I3e4384281865475d0c55d764b546d8166419ee31

6 years agoMerge "libc: Add diagnose_if macros to cdefs."
Treehugger Robot [Tue, 1 Aug 2017 02:32:33 +0000 (02:32 +0000)]
Merge "libc: Add diagnose_if macros to cdefs."

6 years agoMerge "libc: Split FORTIFY into its own headers"
Treehugger Robot [Tue, 1 Aug 2017 02:03:52 +0000 (02:03 +0000)]
Merge "libc: Split FORTIFY into its own headers"

6 years agoClean up some <stdio.h> constants.
Elliott Hughes [Tue, 1 Aug 2017 00:20:18 +0000 (17:20 -0700)]
Clean up some <stdio.h> constants.

And actually test an assertion rather than just state it in a comment.

Bug: N/A
Test: ran tests
Change-Id: I07699483aca4aac4e089d8b99123cb5bde9b3c63

6 years agolibc: Add diagnose_if macros to cdefs.
George Burgess IV [Mon, 31 Jul 2017 23:57:15 +0000 (16:57 -0700)]
libc: Add diagnose_if macros to cdefs.

I plan on having one review per file for the enable_if->diagnose_if
FORTIFY migration. Having this in means that no one review is dependent
on another.

Bug: 12231437
Test: m.
Change-Id: Ic0b07d7f7f6782e371c8792eb1e40cdfa32d3e35

6 years agoMerge "Allow calling v?dprintf for any target API level."
Treehugger Robot [Mon, 31 Jul 2017 15:57:00 +0000 (15:57 +0000)]
Merge "Allow calling v?dprintf for any target API level."

6 years agoMerge "Move back to the previous version of ion.h."
Christopher Ferris [Sat, 29 Jul 2017 21:04:00 +0000 (21:04 +0000)]
Merge "Move back to the previous version of ion.h."

6 years agoMove back to the previous version of ion.h.
Christopher Ferris [Sat, 29 Jul 2017 20:42:28 +0000 (13:42 -0700)]
Move back to the previous version of ion.h.

The new kernel headers changed this and lots of parts of the tree
want the old definition, so restore the previous version.

Test: Builds.
Change-Id: I725e56bb7c51c9fcd23ebc4b67eac33d66e196e7

6 years agoMerge "Remove workaround in <sys/epoll.h>."
Christopher Ferris [Sat, 29 Jul 2017 19:03:09 +0000 (19:03 +0000)]
Merge "Remove workaround in <sys/epoll.h>."

6 years agoMerge "Update to kernel headers v4.12.3."
Christopher Ferris [Sat, 29 Jul 2017 19:03:09 +0000 (19:03 +0000)]
Merge "Update to kernel headers v4.12.3."

6 years agoMerge "versioner: compile with `clang -include foo.h -`."
Treehugger Robot [Sat, 29 Jul 2017 16:36:33 +0000 (16:36 +0000)]
Merge "versioner: compile with `clang -include foo.h -`."

6 years agoMerge "POSIX getlogin_r/LOGIN_NAME_MAX/TTY_NAME_MAX."
Elliott Hughes [Sat, 29 Jul 2017 14:56:02 +0000 (14:56 +0000)]
Merge "POSIX getlogin_r/LOGIN_NAME_MAX/TTY_NAME_MAX."

6 years agoMerge "Fix the sysconf _SC_2_VERSION test."
Treehugger Robot [Sat, 29 Jul 2017 07:01:32 +0000 (07:01 +0000)]
Merge "Fix the sysconf _SC_2_VERSION test."

6 years agoFix the sysconf _SC_2_VERSION test.
Elliott Hughes [Fri, 28 Jul 2017 23:53:32 +0000 (16:53 -0700)]
Fix the sysconf _SC_2_VERSION test.

Not sure how this ended up broken. Too many branches!

Bug: N/A
Test: ran tests
Change-Id: Ieef1e8170c9aaf139d9e0664475ccb08b8fcdeba

6 years agoPOSIX getlogin_r/LOGIN_NAME_MAX/TTY_NAME_MAX.
Elliott Hughes [Fri, 28 Jul 2017 23:27:49 +0000 (16:27 -0700)]
POSIX getlogin_r/LOGIN_NAME_MAX/TTY_NAME_MAX.

Bug: N/A
Test: ran tests
Change-Id: I97c8ecc82fb09c3fa4bb5e6f000d46f04f3d1702

6 years agoMerge "Implement wcwidth(3) in terms of icu4c."
Elliott Hughes [Fri, 28 Jul 2017 21:42:13 +0000 (21:42 +0000)]
Merge "Implement wcwidth(3) in terms of icu4c."

6 years agoMerge "Actually turn on -Werror for crtbegin."
Treehugger Robot [Fri, 28 Jul 2017 20:14:57 +0000 (20:14 +0000)]
Merge "Actually turn on -Werror for crtbegin."

6 years agoversioner: compile with `clang -include foo.h -`.
Josh Gao [Fri, 28 Jul 2017 19:53:36 +0000 (12:53 -0700)]
versioner: compile with `clang -include foo.h -`.

At least one warning only triggers in files that are included, instead
of being passed directly. Switch to compiling with -include, and fix
the resulting warnings.

Bug: https://github.com/android-ndk/ndk/issues/474
Test: mma -j && versioner
Test: python tools/versioner/run_tests.py
Change-Id: I784698c18540c9cc30f372f279a1cec1d75721ea

7 years agoImplement wcwidth(3) in terms of icu4c.
Elliott Hughes [Fri, 28 Jul 2017 00:08:08 +0000 (17:08 -0700)]
Implement wcwidth(3) in terms of icu4c.

Based on com.google.i18n.CharWidth by the icu-team folks.

Bug: N/A
Test: ran tests
Change-Id: Ia9d818ec4ae60f2f3978533195330d00699397c5

7 years agolibc: Split FORTIFY into its own headers
George Burgess IV [Mon, 24 Jul 2017 22:05:05 +0000 (15:05 -0700)]
libc: Split FORTIFY into its own headers

This patch cleans up our standard headers by moving most of the FORTIFY
cruft out in to its own sandbox. In order to include the *_chk and
*_real declarations, you can either enable FORTIFY, or `#define
__BIONIC_DECLARE_FORTIFY_HELPERS`.

Both sys/select.h and strings.h are explicitly ignored by this patch.
Both of these files have very small __BIONIC_FORTIFY blocks, and don't
define any actual FORTIFY'ed functions (just macros, and 3 *_chk
functions).

This patch also makes the versioner ignore the FORTIFY implementation
headers, since we're guaranteed to pick the FORTIFY'ed headers up when
looking at the regular headers. (...Not to mention that making the
FORTIFY'ed headers freestanding would be annoying to do and maintain for
~no benefit).

We bake the knowledge of where FORTIFY headers live directly into the
versioner. We could go with a more general approach (e.g. adding an -X
IGNORED_FILE flag that tells the versioner to ignore
$HEADER_PATH/$IGNORED_FILE), but we'd then have to repeat that for every
test, every manual invocation of the versioner, etc. for no benefit
that's obvious to me.

Bug: 12231437
Test: m checkbuild on bullhead internal master + CtsBionicTestCases. no
new errors.

Change-Id: Iffc0cc609009b33d989cdaddde0a809282131a5b

7 years agoActually turn on -Werror for crtbegin.
Elliott Hughes [Thu, 27 Jul 2017 23:39:02 +0000 (16:39 -0700)]
Actually turn on -Werror for crtbegin.

And then -Wno-gcc-compat in the right place this time. (But leaving the
other one because I don't care in the non-crtbegin code either.)

Bug: N/A
Test: builds without warnings now
Change-Id: Id2cfa3392ee80c045644ebfdf92c6d341db90964

7 years agoAllow calling v?dprintf for any target API level.
Dan Albert [Wed, 26 Jul 2017 21:09:45 +0000 (14:09 -0700)]
Allow calling v?dprintf for any target API level.

Old versions of Android called these fdprintf and vfdprintf out of
fears that the glibc names would collide with user debug printfs.

Allow users to just use dprintf and vfdprintf on any version by
renaming those calls to their legacy equivalents if needed.

Test: built trivial NDK module targeting android-14 and using dprintf
Test: make checkbuild
Bug: https://github.com/android-ndk/ndk/issues/72
Change-Id: I90de149278f931380418536abaef47c5cee5c195

7 years agoUpdate to kernel headers v4.12.3.
Christopher Ferris [Wed, 26 Jul 2017 20:12:53 +0000 (13:12 -0700)]
Update to kernel headers v4.12.3.

Test: Built angler.
Change-Id: Icbcf4fac2334de8409b049ed7a3b4c24b4e98ce9

7 years agoRemove workaround in <sys/epoll.h>.
Elliott Hughes [Thu, 27 Jul 2017 22:14:52 +0000 (15:14 -0700)]
Remove workaround in <sys/epoll.h>.

Linux 4.12 has a better fix: https://lkml.org/lkml/2017/2/23/416 and
https://lkml.org/lkml/2017/2/23/417.

Bug: N/A
Test: builds
Change-Id: I9cbf0c60817332142c48297899062f1a25f2b082

7 years agoMerge "Use O_APPEND for stdio append mode."
Elliott Hughes [Thu, 27 Jul 2017 15:33:30 +0000 (15:33 +0000)]
Merge "Use O_APPEND for stdio append mode."

7 years agoMerge "Fix error condition on strtof inline."
Treehugger Robot [Thu, 27 Jul 2017 02:40:40 +0000 (02:40 +0000)]
Merge "Fix error condition on strtof inline."

7 years agoFix error condition on strtof inline.
Dan Albert [Wed, 26 Jul 2017 21:59:24 +0000 (14:59 -0700)]
Fix error condition on strtof inline.

Test: make checkbuild
Test: pull into ndk, ./run_tests.py
Bug: https://github.com/android-ndk/ndk/issues/415
Change-Id: I1575f799c9e849d66456c785208a36709a7b8122

7 years agoMerge "Add __ANDROID_NDK__ to identify using the NDK."
Treehugger Robot [Wed, 26 Jul 2017 23:47:38 +0000 (23:47 +0000)]
Merge "Add __ANDROID_NDK__ to identify using the NDK."

7 years agoAdd __ANDROID_NDK__ to identify using the NDK.
Dan Albert [Wed, 26 Jul 2017 21:27:43 +0000 (14:27 -0700)]
Add __ANDROID_NDK__ to identify using the NDK.

I've added some things like __ANDROID_MAJOR__ to an ndk-version.h, but
that is only in the NDK itself and so doesn't help the platform. Add
__ANDROID_NDK__ to identify that you're building for the NDK and not
the platform.

Test: make checkbuild
Bug: https://github.com/android-ndk/ndk/issues/407
Change-Id: I2d1f1c28e3764e4e658cf675b290b7a17253ee33

7 years agoMerge "libc: Move FORTIFY into one file; make style fixups"
Treehugger Robot [Wed, 26 Jul 2017 02:44:21 +0000 (02:44 +0000)]
Merge "libc: Move FORTIFY into one file; make style fixups"

7 years agoUse O_APPEND for stdio append mode.
Elliott Hughes [Wed, 26 Jul 2017 01:06:46 +0000 (18:06 -0700)]
Use O_APPEND for stdio append mode.

"Although not explicitly required by this volume of POSIX.1-2008, a good
implementation of append (a) mode would cause the O_APPEND flag to be set."

Yeah, about that...

Bug: N/A
Test: ran tests
Change-Id: I23c4bc5c1ebc92e0cb44025d2d313f321f9ffa68

7 years agolibc: Move FORTIFY into one file; make style fixups
George Burgess IV [Tue, 25 Jul 2017 18:43:39 +0000 (11:43 -0700)]
libc: Move FORTIFY into one file; make style fixups

This addresses post-commit feedback from
I88c39ca166bacde0b692aa3063e743bb046a5d2f. With this, our FORTIFY impl
now sits in one file.

Bug: 12231437
Test: mma; no new CtsBionicTestCases failures on bullhead internal
master.
Change-Id: I6f9ff81c3e86cf9d6a0efa650eb5765f1e2fa09c

7 years agoMerge "Build crtbegin with clang too."
Treehugger Robot [Tue, 25 Jul 2017 21:03:26 +0000 (21:03 +0000)]
Merge "Build crtbegin with clang too."

7 years agoMerge "Create global seccomp policy."
Treehugger Robot [Tue, 25 Jul 2017 20:18:51 +0000 (20:18 +0000)]
Merge "Create global seccomp policy."

7 years agoBuild crtbegin with clang too.
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

7 years agoMerge "Split our FORTIFY implementation into libc_fortify"
Treehugger Robot [Tue, 25 Jul 2017 18:05:42 +0000 (18:05 +0000)]
Merge "Split our FORTIFY implementation into libc_fortify"

7 years agoMerge "tests: clean up bionic-unit-tests-static linking"
Elliott Hughes [Tue, 25 Jul 2017 14:51:32 +0000 (14:51 +0000)]
Merge "tests: clean up bionic-unit-tests-static linking"

7 years agotests: 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>
7 years agoSplit our FORTIFY implementation into libc_fortify
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

7 years agoMerge "Remove the HASLB and FREEUB macros."
Treehugger Robot [Mon, 24 Jul 2017 21:05:37 +0000 (21:05 +0000)]
Merge "Remove the HASLB and FREEUB macros."

7 years agoMerge "Make xfail passes not failures."
Elliott Hughes [Mon, 24 Jul 2017 20:51:18 +0000 (20:51 +0000)]
Merge "Make xfail passes not failures."

7 years agoMerge "Replace fmemopen."
Elliott Hughes [Mon, 24 Jul 2017 20:36:16 +0000 (20:36 +0000)]
Merge "Replace fmemopen."

7 years agoMerge "Apply recent strto* fix, add new tests."
Elliott Hughes [Mon, 24 Jul 2017 20:18:34 +0000 (20:18 +0000)]
Merge "Apply recent strto* fix, add new tests."

7 years agoMerge "Replace killpg."
Elliott Hughes [Mon, 24 Jul 2017 20:16:40 +0000 (20:16 +0000)]
Merge "Replace killpg."

7 years agoMerge "Switch to FreeBSD for wcsstr and wmemcpy."
Treehugger Robot [Mon, 24 Jul 2017 19:23:36 +0000 (19:23 +0000)]
Merge "Switch to FreeBSD for wcsstr and wmemcpy."

7 years agoRemove the HASLB and FREEUB macros.
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

7 years agoReplace fmemopen.
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

7 years agoCreate global seccomp policy.
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

7 years agoMake xfail passes not failures.
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

7 years agoMerge "Explain how to handle device-specific headers."
Elliott Hughes [Sat, 22 Jul 2017 01:22:09 +0000 (01:22 +0000)]
Merge "Explain how to handle device-specific headers."

7 years agoMerge "Remove outdated _FORTIFY_SOURCE #undefs"
Treehugger Robot [Fri, 21 Jul 2017 21:35:37 +0000 (21:35 +0000)]
Merge "Remove outdated _FORTIFY_SOURCE #undefs"

7 years agoRemove 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

7 years agoMerge "Use __RENAME_IF_FILE_OFFSET64 where possible."
Treehugger Robot [Thu, 20 Jul 2017 19:21:38 +0000 (19:21 +0000)]
Merge "Use __RENAME_IF_FILE_OFFSET64 where possible."

7 years agoExplain how to handle device-specific headers.
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

7 years agoUse __RENAME_IF_FILE_OFFSET64 where possible.
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

7 years agoMerge "Add __RENAME_IF_FILE_OFFSET64."
Treehugger Robot [Wed, 19 Jul 2017 05:37:13 +0000 (05:37 +0000)]
Merge "Add __RENAME_IF_FILE_OFFSET64."

7 years agoMerge "Document the intricacies of `_FILE_OFFSET_BITS=32` for LP32."
Elliott Hughes [Tue, 18 Jul 2017 18:04:25 +0000 (18:04 +0000)]
Merge "Document the intricacies of `_FILE_OFFSET_BITS=32` for LP32."

7 years agoDocument 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

7 years agoMerge "Make _scan_nan a bit less visible for libandroid_support users."
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."

7 years agoAdd __RENAME_IF_FILE_OFFSET64.
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

7 years agoMake _scan_nan a bit less visible for libandroid_support users.
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

7 years agoMerge "Hide various mbstate implementation details."
Treehugger Robot [Sat, 15 Jul 2017 03:12:36 +0000 (03:12 +0000)]
Merge "Hide various mbstate implementation details."

7 years agoMerge "Allow passing filenames to generate-NOTICE.py."
Treehugger Robot [Sat, 15 Jul 2017 01:07:39 +0000 (01:07 +0000)]
Merge "Allow passing filenames to generate-NOTICE.py."

7 years agoHide various mbstate implementation details.
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

7 years agoAllow passing filenames to generate-NOTICE.py.
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

7 years agoMerge "__cfi_slowpath[_diag] are available to NDK and VNDK clients"
Treehugger Robot [Fri, 14 Jul 2017 22:09:50 +0000 (22:09 +0000)]
Merge "__cfi_slowpath[_diag] are available to NDK and VNDK clients"

7 years agoMerge "libm symbol cleanup."
Treehugger Robot [Fri, 14 Jul 2017 18:51:03 +0000 (18:51 +0000)]
Merge "libm symbol cleanup."

7 years agolibm 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

7 years agoMerge "Fix unistd._POSIX_macros_smoke test."
Treehugger Robot [Thu, 13 Jul 2017 19:25:38 +0000 (19:25 +0000)]
Merge "Fix unistd._POSIX_macros_smoke test."

7 years agoMerge "Move wchar _l functions out of wchar.cpp."
Treehugger Robot [Thu, 13 Jul 2017 19:21:11 +0000 (19:21 +0000)]
Merge "Move wchar _l functions out of wchar.cpp."

7 years agoMove 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

7 years agoFix unistd._POSIX_macros_smoke test.
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

7 years agoSwitch to FreeBSD for wcsstr and wmemcpy.
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

7 years agoApply recent strto* fix, add new tests.
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

7 years agoMerge changes from topic 'locale-android-support'
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.

7 years agoMerge "Really fix the mac build."
Christopher Ferris [Thu, 13 Jul 2017 06:13:14 +0000 (06:13 +0000)]
Merge "Really fix the mac build."

7 years agoReally 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

7 years agoMerge "Fix max build."
Treehugger Robot [Thu, 13 Jul 2017 04:32:33 +0000 (04:32 +0000)]
Merge "Fix max build."

7 years agoFix max build.
Christopher Ferris [Thu, 13 Jul 2017 02:33:32 +0000 (19:33 -0700)]
Fix max build.

Test: Built properly.
Change-Id: I37b8ac7d42653617be6611b640a883066257214c

7 years ago__cfi_slowpath[_diag] are available to NDK and VNDK clients
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

7 years agoMerge "Support memory alignment tests for string_benchmark.cpp"
Christopher Ferris [Wed, 12 Jul 2017 22:56:13 +0000 (22:56 +0000)]
Merge "Support memory alignment tests for string_benchmark.cpp"

7 years agoAdd a non-TLS slot implementation of locale.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

7 years agoSupport memory alignment tests for string_benchmark.cpp
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

7 years agoMove non-locale.h APIs out of locale.cpp.
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

7 years agoReplace killpg.
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

7 years agoMerge "Sync with upstream OpenBSD: trivial stuff."
Treehugger Robot [Tue, 11 Jul 2017 21:34:08 +0000 (21:34 +0000)]
Merge "Sync with upstream OpenBSD: trivial stuff."

7 years agoSync 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

7 years agoMerge "The future passed part of <stdlib.h> by..."
Treehugger Robot [Tue, 11 Jul 2017 18:54:24 +0000 (18:54 +0000)]
Merge "The future passed part of <stdlib.h> by..."

7 years agoMerge "Properly handle elf-files without relocation sections"
Treehugger Robot [Tue, 11 Jul 2017 17:41:13 +0000 (17:41 +0000)]
Merge "Properly handle elf-files without relocation sections"

7 years agoProperly 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

7 years agoMerge "sys_ptrace_test: Better detect missing HW support"
Treehugger Robot [Tue, 11 Jul 2017 08:10:41 +0000 (08:10 +0000)]
Merge "sys_ptrace_test: Better detect missing HW support"

7 years agoMerge "Move environ valiable into it's own file"
Victor Khimenko [Mon, 10 Jul 2017 22:33:54 +0000 (22:33 +0000)]
Merge "Move environ valiable into it's own file"

7 years agoMerge "Make inline tcsetattr definition match constants."
Elliott Hughes [Mon, 10 Jul 2017 20:40:53 +0000 (20:40 +0000)]
Merge "Make inline tcsetattr definition match constants."

7 years agoMerge "Undo recent _FILE_OFFSET_BITS=64 changes."
Treehugger Robot [Mon, 10 Jul 2017 20:20:53 +0000 (20:20 +0000)]
Merge "Undo recent _FILE_OFFSET_BITS=64 changes."

7 years agoMerge "Fix ffs on x86 for old API levels."
Treehugger Robot [Mon, 10 Jul 2017 20:07:01 +0000 (20:07 +0000)]
Merge "Fix ffs on x86 for old API levels."

7 years agoUndo recent _FILE_OFFSET_BITS=64 changes.
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

7 years agoMove environ valiable into it's own file
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

7 years agoThe future passed part of <stdlib.h> by...
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