Commit graph

24282 commits

Author SHA1 Message Date
Dan Albert
e034635a6f Merge "Cleanup transitive includes in the legacy inlines."
am: 9deef03c16

Change-Id: Ifece0b79fafb329bca8fd4799edcd72b5fbfd5df
2017-10-17 07:23:20 +00:00
Treehugger Robot
9deef03c16 Merge "Cleanup transitive includes in the legacy inlines." 2017-10-17 07:17:23 +00:00
Josh Gao
9a0a7b3f5c Merge changes I93dc3811,I710d2929,I6ae029ed
am: d4b4f06cad

Change-Id: Ie8d3b78f8195668d0a1cdd3ba80a44c480251e5d
2017-10-17 06:33:47 +00:00
Treehugger Robot
d4b4f06cad Merge changes I93dc3811,I710d2929,I6ae029ed
* changes:
  Add libc_nopthread.
  Trivial style fix.
  Don't use PR_SET_DUMPABLE to prevent crash dumping in death tests.
2017-10-17 06:29:27 +00:00
Josh Gao
dfcc6e4f8a Rename libdl.c to libdl.cpp.
The no-arg function definitions in libdl.c weren't strictly correct,
because they should have taken void. Rename .c to .cpp instead of
fixing them.

Test: mma
Change-Id: I9e3528c836ffc8625a6a4d529034263b19b9fb3a
2017-10-16 21:31:37 -07:00
Josh Gao
0e0e370154 Add libc_nopthread.
Add a static library containing the non-pthread dependent parts of
libc.

Bug: http://b/64400027
Test: sailfish boots
Test: bionic-unit-tests32/64, no new failures
Test: bionic-unit-tests-static32/64, no new failures
Change-Id: I93dc3811acddad7936d11b369b98cefd945ee2d5
2017-10-16 21:31:37 -07:00
Josh Gao
a0f6dc577e Trivial style fix.
Test: none
Change-Id: I710d29293171c6160558dab66c515eae16b92923
2017-10-16 21:31:37 -07:00
Josh Gao
084f6ec9af Don't use PR_SET_DUMPABLE to prevent crash dumping in death tests.
Bug: http://b/27833000
Test: bionic-unit-tests are way faster
Change-Id: I6ae029edcd4c4b4b0dfaf613fc17c208d3cb24d1
2017-10-16 21:31:37 -07:00
Elliott Hughes
423f23230a Merge "Remove dangling symlink."
am: 03507a1d29

Change-Id: I96a63a2d3d6c6c902fe2c789d262ce440dc74cdd
2017-10-17 01:56:23 +00:00
Treehugger Robot
03507a1d29 Merge "Remove dangling symlink." 2017-10-17 01:37:27 +00:00
Elliott Hughes
5fd11666df Remove dangling symlink.
Bug: N/A
Test: N/A
Change-Id: I6af95827b28f47aa0cd5f1abb5dded15253f7686
2017-10-16 15:10:00 -07:00
Christopher Ferris
aa81761c5e Force _start to be the top frame for the linker.
I noticed that sometimes the old unwinder will add an extra PC 0 frame
after this change, but the new unwinder works in all cases. I'm not going
to fix the old unwinder since I plan to remove it very soon.

Bug: 67784501

Test: Forced a crash in the linker and verified that the unwind
Test: stops in __dl_start. Tested on arm/aarch64/x86/x86_64.

Change-Id: Id6585768023256be5c1d341df7b06b786a220b40
2017-10-16 14:43:34 -07:00
Elliott Hughes
5033918092 Complete <netdb.h>.
Add all the missing <netdb.h> functions.

Also fix getservbyport to handle a null protocol correctly.

Also fix getservbyname/getservbyport to not interfere with getservent.

Also fix endservent to reset getservent iteration.

Also reduce unnecessary differences from upstream NetBSD sethostent.c.

The servent implementation is still horrific, and we should
probably support protoent too so that debugging tools can use
getprotobyname/getprotobynumber.

Bug: N/A
Test: ran tests
Change-Id: I639108c46df0a768af297cf3bbce857cb1bef9d9
2017-10-15 10:37:51 -07:00
Dan Albert
42ed3bfc05 Merge "Fix missing includes, again."
am: a27bfd4131

Change-Id: I4c44c105270348cfc165995ee9acc84c82ce2400
2017-10-15 03:40:16 +00:00
Elliott Hughes
7d8623a4d6 Merge "Fix mip64 build."
am: 92b0f36acc

Change-Id: Id969e1d35aaff2054750e35647d0564631ef7c67
2017-10-15 03:39:55 +00:00
Elliott Hughes
ec00ab5acc Merge "Ignore pthread_getconcurrency/pthread_setconcurrency."
am: 9db0e013b1

Change-Id: I6ba0569decc4b24b865060b73225dd992f0f7780
2017-10-15 03:39:33 +00:00
Goran Ferenc
76c07c50af Merge "MIPS: Fix MIPS linker VDSO issues"
am: 73651cf23f

Change-Id: Icedefd654fb8ddcee92b8ee61548f155c0777386
2017-10-15 03:39:04 +00:00
Goran Jakovljevic
4471061ad5 Merge "Define BIONIC_STOP_UNWIND for mips"
am: 1a5a9b7bbc

Change-Id: Ia56d0056ec235781abff5427c62e4507765385c0
2017-10-15 01:49:29 +00:00
Elliott Hughes
c453951f50 Merge "Ignore endutxent."
am: f9433e6891

Change-Id: I92bb8c740e6aa8abaaa95d85501e93b632bdb8f3
2017-10-15 01:48:46 +00:00
Treehugger Robot
a27bfd4131 Merge "Fix missing includes, again." 2017-10-13 23:27:26 +00:00
Treehugger Robot
92b0f36acc Merge "Fix mip64 build." 2017-10-13 22:26:31 +00:00
Dan Albert
43df953502 Cleanup transitive includes in the legacy inlines.
We don't want to be exposing so much through the headers for the
implementation details unless we have to.

Test: make checkbuild
Bug: None
Change-Id: Ieca9cd8106725e08887a3e9fde60d1eef64ef98b
2017-10-13 14:39:03 -07:00
Dan Albert
c972ea7da0 Fix missing includes, again.
Test: mma
Bug: None
Change-Id: I17f07e51ebb425ebbcd2cd48e2aa173ab728c498
2017-10-13 14:38:55 -07:00
Elliott Hughes
ab413c535c Fix mip64 build.
Fallout from the unified sysroot work.

Bug: N/A
Test: builds
Change-Id: If0595a241b9ce0d8c8c7137ddaf8fca932487b7c
2017-10-13 13:22:24 -07:00
Treehugger Robot
9db0e013b1 Merge "Ignore pthread_getconcurrency/pthread_setconcurrency." 2017-10-13 19:33:28 +00:00
Treehugger Robot
73651cf23f Merge "MIPS: Fix MIPS linker VDSO issues" 2017-10-13 19:07:45 +00:00
Elliott Hughes
62446279f3 Ignore pthread_getconcurrency/pthread_setconcurrency.
They're marked obsolescent in POSIX, don't clearly mean anything, aren't
portable because the values don't mean anything, and are no-ops in other
C libraries that do "implement" them.

Bug: N/A
Test: N/A
Change-Id: I07342a0a6a5f6616a8432bfea24ed944c7971d27
2017-10-13 10:21:37 -07:00
Treehugger Robot
1a5a9b7bbc Merge "Define BIONIC_STOP_UNWIND for mips" 2017-10-13 16:42:25 +00:00
Treehugger Robot
f9433e6891 Merge "Ignore endutxent." 2017-10-13 16:12:32 +00:00
Goran Jakovljevic
ea827925ab Define BIONIC_STOP_UNWIND for mips
This fixes mips and mips64 build failures.

Test: successful aosp_mips-eng and aosp_mips64-eng builds
Change-Id: I6648b9cae876cda13369cf10edf61ce9fdca342c
2017-10-13 14:22:10 +02:00
Goran Ferenc
e8c76b7a30 MIPS: Fix MIPS linker VDSO issues
This patch resolves two issues:
(1) AOSP MIPS linker crash with SIGSEGV while relocating VDSO GOT
(2) Missing of MIPS_ABI_FP_ANY flag while ckecking & adjusting MIPS FP modes

(1): AOSP MIPS linker crash with SIGSEGV while relocating VDSO GOT

During bringup and testing of the kernel VDSO support on the emulator we
encountered an issue where all userspace processes were crashing due to
linker crash with SIGSEGV during VDSO GOT relocation.

The mentioned scenario will trigger SIGSEGV in the linker only if the kernel
code base contains VDSO implementation introduced with the following commits:

a7f4df4 MIPS: VDSO: Add implementations of gettimeofday() and clock_gettime()
c0a9f72 irqchip: irq-mips-gic: Provide function to map GIC user section
ebb5e78 MIPS: Initial implementation of a VDSO

Another prerequisite is that the linker contains the following commit from AOSP:
https://android-review.googlesource.com/#/c/264857/

The above commit introduces auxvec.h header containing definition of
AT_SYSINFO_EHDR in:
https://android.googlesource.com/platform/bionic/+/master/libc/kernel/uapi/asm-mips/asm/auxvec.h,
which in turn activates VDSO GOT relocations in mips_relocate_got():
https://android.googlesource.com/platform/bionic/+/master/linker/linker_mips.cpp#149

Since VDSO is mapped as a RO region, writing anything to its page will result
in SIGSEGV.

Removing this 0xdeadbeef cookies writes to the got[0]/got[1] solved SIGSEGV issue.
We also compared with the glibc linker code and we haven't seen anything similar
like writing some cookie values into GOT entries.

(2): Missing of MIPS_ABI_FP_ANY flag while checking & adjusting MIPS FP modes

This issue was found during testing of the patch:
https://android-review.googlesource.com/#/c/platform/bionic/+/494440/

This patch adds a bionic dlfcn.dlopen_vdso test which tries to open "linux-vdso.so.1"
(virtual ELF shared library) and expects to succeed.

dlopen fails in the mips linker part due to the following error:
"Unsupported MIPS32 FloatPt ABI 0 found in linux.vdso.so.1"

According to:
https://dmz-portal.imgtec.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking#A.2._O32_FPXX_code_calling_FPXX,
ABI 0 is:
Val_GNU_MIPS_ABI_FP_ANY = 0 /* Not tagged or not using any ABIs affected by the differences.  */

The issue appeared because MIPS_ABI_FP_ANY is not supposed to be checked as
a possible FP ABI-variant compatibility flag.

This patch adds logic to MIPS linker to handle this case appropriately,
after which dlfcn.dlopen_vdso test passes.

Test:
* bionic-unit-tests --gtest_filter=dlfcn.dlopen_vdso
* Boot android in emulator with kernel which supports VDSO optimizations

Change-Id: Icbcd9879beea1b38fbe8d97b3b205058eaa861f4
Signed-off-by: Goran Ferenc <goran.ferenc@imgtec.com>
2017-10-13 12:08:30 +02:00
Elliott Hughes
d036a8dd17 Ignore endutxent.
We have no utmp, and we're ignoring getutxent/setutxent, and endutxent
belongs in the same group.

Bug: N/A
Test: N/A
Change-Id: Ide032960a0f95750f3bb8f2e62a25e5e7d25c7b6
2017-10-12 20:32:22 -07:00
Elliott Hughes
05e918cad2 Merge "Unified sysroot: kill arch-specific include dirs."
am: ddd6436df2

Change-Id: Ia025a2105c52b4a86f76fc54f5f18c62b241135d
2017-10-12 22:35:19 +00:00
Elliott Hughes
ddd6436df2 Merge "Unified sysroot: kill arch-specific include dirs." 2017-10-12 22:23:58 +00:00
Elliott Hughes
1f1c3a8b80 Merge "Implement <spawn.h>."
am: 01bb7bf6fb

Change-Id: Ie46387159a8ac95b7d48c0820b92330e816fbe5c
2017-10-12 21:09:20 +00:00
Elliott Hughes
01bb7bf6fb Merge "Implement <spawn.h>." 2017-10-12 21:02:54 +00:00
Elliott Hughes
d4ca231ae2 Unified sysroot: kill arch-specific include dirs.
<machine/asm.h> was internal use only.

<machine/fenv.h> is quite large, but can live in <bits/...>.

<machine/regdef.h> is trivially replaced by saying $x instead of x in
our assembler.

<machine/setjmp.h> is trivially inlined into <setjmp.h>.

<sgidefs.h> is unused.

Bug: N/A
Test: builds
Change-Id: Id05dbab43a2f9537486efb8f27a5ef167b055815
2017-10-12 13:19:51 -07:00
dimitry
1ac327aed7 Merge "ns_anonymous test: Make it work for natively bridged environment"
am: b49ac81c8e

Change-Id: I43a2e8ec940431a0fff6c0f02899ef3ecd92893c
2017-10-12 17:33:17 +00:00
Treehugger Robot
b49ac81c8e Merge "ns_anonymous test: Make it work for natively bridged environment" 2017-10-12 17:26:32 +00:00
dimitry
8eaf28dc42 ns_anonymous test: Make it work for natively bridged environment
The executable flag might not be present for the executable segment
if the code is being handled by native bridge implementation. This
commit changes the test to restore executable flag for first segment
if it was removed.

Test: bionic-unit-tests
Change-Id: Ie930539135edc4db3245574b5cbe476aa1ad49c7
2017-10-12 15:02:16 +02:00
Tom Cherry
127c1f940e Merge "Allow read-only system properties to have arbitrary lengths"
am: a08f704e2a

Change-Id: I3a46854833cb36bb41b2ce8bcf3f26485ab9a863
2017-10-12 00:32:42 +00:00
Tom Cherry
a08f704e2a Merge "Allow read-only system properties to have arbitrary lengths" 2017-10-12 00:22:57 +00:00
Elliott Hughes
14e3ff9f09 Implement <spawn.h>.
As described here:

  http://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html

And here:

  http://man7.org/linux/man-pages/man3/posix_spawn.3.html

Bug: N/A (but mentioned in my inbox since 2013)
Test: ran tests
Change-Id: I0b27b2919b660779e3bd8a25fb429527c16dc621
2017-10-11 14:57:49 -07:00
Dan Albert
19ecbbd6a1 Merge "Add missing includes."
am: 36f7b8b789

Change-Id: Iab91e5e8748e4e930f05d8a7a082790d7c1049e4
2017-10-11 20:49:31 +00:00
Treehugger Robot
36f7b8b789 Merge "Add missing includes." 2017-10-11 20:39:56 +00:00
dimitry
c46b602403 Merge "Fix dlopen_vdso test"
am: 1d297d2654

Change-Id: I3651d5f5a200c42ca1d67a2db8e01fa602b45eb8
2017-10-11 19:26:56 +00:00
Treehugger Robot
1d297d2654 Merge "Fix dlopen_vdso test" 2017-10-11 19:17:10 +00:00
Dan Albert
1c78cb0fee Add missing includes.
Test: mma
Bug: None
Change-Id: I0221b213e08d07cc5ac0b704a86e98ae8c0f456f
2017-10-11 11:25:52 -07:00
dimitry
b9555a9251 Fix dlopen_vdso test
arm32 is still missing vdso (at least on some kernels).
This commit adds explicit check for it and skip the test
if AT_SYSINFO_EHDR is not set.

Test: run 32bit bionic-unit-tests --gtest_filter=dlfcn.dlopen_vdso on angler
Change-Id: I7fae78c6a4f819601a4ac9e8e1da53ff07c833ff
2017-10-11 18:04:05 +02:00
Kazuhiro Inaba
67c73cde0b Merge "Fix fcntrl#tee test to use the same expected/actual buffer size."
am: a52555d356

Change-Id: Ia36fec06e3a88ade750999b544e28fed0ac80d5d
2017-10-10 23:45:40 +00:00