14423 Commits

Author SHA1 Message Date
Elliott Hughes
e76ea9bbe0 Merge "Ensure we initialize stdin/stdout/stderr's recursive mutexes." 2014-11-03 21:32:29 +00:00
Dan Albert
62b7279789 Make host tests depend on /system/etc/hosts.
Change-Id: I3e5ab1325d5e250a1d14b53f3a5a465d9f5de30c
2014-11-03 13:26:16 -08:00
Elliott Hughes
6a03abcfd2 Ensure we initialize stdin/stdout/stderr's recursive mutexes.
Bug: 18208568
Change-Id: I9da16ce0f9375bc363d1d02be706d73fd3b1e150
2014-11-03 12:32:17 -08:00
Dmitriy Ivanov
ae0757ff27 am d3cd6618: resolved conflicts for merge of 926797a8 to lmp-mr1-dev-plus-aosp
* commit 'd3cd66185f63a75ec9f0fca69bd6594c310dbaa8':
  Fix arm64 and arm builds.
  Fix symbol lookup order during relocation
  Fix mips build
  Remove unnecessary lookups during relocations
  Fix relocation to look for symbols in local group
  Correct way to specify additional dependencies
  Add dlfcn_test to glibc test suite.
  Ignore DT_BIND_NOW (0x18)
  Resolve "unused DT entry" warnings for x86_64
  Add RTLD_NODELETE flag support
  Fix mips build
  Fix unused DT entry warnings.
  Return has_DT_SYMBOLIC flag.
  Fix a couple more cases of missing CLOEXEC.
  Temporary disable DL_WARNs for unused DT_*
  Fix 64bit build
  Fix some unused DT_ warnings
  Remove has_DT_SYMBOLIC flag
  Fix dlsym() to take into account RTLD_GLOBAL/LOCAL
  Reformatting
2014-11-02 01:14:04 +00:00
Dmitriy Ivanov
d3cd66185f resolved conflicts for merge of 926797a8 to lmp-mr1-dev-plus-aosp
Change-Id: I3b46a714fd1236431fa08872f280e4ac4c4880d1
2014-11-01 18:02:31 -07:00
Dmitriy Ivanov
fc6a97d292 am b1c019f3: am 75cd66aa: am 38ff8822: Merge "Revert "Use local copy of the library name on dlopen""
* commit 'b1c019f32ad5da8649b9792b8526806b1ebe2878':
  Revert "Use local copy of the library name on dlopen"
2014-11-01 04:02:22 +00:00
Dmitriy Ivanov
b1c019f32a am 75cd66aa: am 38ff8822: Merge "Revert "Use local copy of the library name on dlopen""
* commit '75cd66aaf60f47e04359738a9c8d92588a1f7834':
  Revert "Use local copy of the library name on dlopen"
2014-11-01 03:00:56 +00:00
Dmitriy Ivanov
75cd66aaf6 am 38ff8822: Merge "Revert "Use local copy of the library name on dlopen""
* commit '38ff8822763a30d4c9033a38ec8b71fcd17aba87':
  Revert "Use local copy of the library name on dlopen"
2014-11-01 02:35:51 +00:00
Dmitriy Ivanov
38ff882276 Merge "Revert "Use local copy of the library name on dlopen"" 2014-11-01 02:32:24 +00:00
Dmitriy Ivanov
9fb216f844 Revert "Use local copy of the library name on dlopen"
This reverts commit da8e591c3996879e41dc5f70b77d1b0fe6f9c225.

Change-Id: I3fd6f235b18c232af5cc5ecd481851486d7d68f6
2014-11-01 02:30:38 +00:00
Dmitriy Ivanov
445111a1c9 Fix arm64 and arm builds.
Bug: 18186310

(cherry picked from commit 4e446b19d8710cd2004785db4a00f18f249fe73f)

Change-Id: Ibc77a9ade36dc6b9bf5a316b5ab9ae5f0a70e826
2014-10-31 19:29:04 -07:00
Dmitriy Ivanov
d79e427b73 am dcafe93d: am 6cba0e35: am 36ffc73e: Merge "Fix arm64 and arm builds."
* commit 'dcafe93db23dbda62e1d9b6c2b2deb670f96980e':
  Fix arm64 and arm builds.
2014-11-01 00:45:39 +00:00
Dmitriy Ivanov
dcafe93db2 am 6cba0e35: am 36ffc73e: Merge "Fix arm64 and arm builds."
* commit '6cba0e35ec62e86689556142a08f547f27b703dd':
  Fix arm64 and arm builds.
2014-11-01 00:39:45 +00:00
Dmitriy Ivanov
6cba0e35ec am 36ffc73e: Merge "Fix arm64 and arm builds."
* commit '36ffc73e992de77cc4bc397e41767b69ed9ac917':
  Fix arm64 and arm builds.
2014-11-01 00:36:23 +00:00
Dmitriy Ivanov
36ffc73e99 Merge "Fix arm64 and arm builds." 2014-11-01 00:33:30 +00:00
Dmitriy Ivanov
4e446b19d8 Fix arm64 and arm builds.
Change-Id: I2c8c41626768e792f27a2616f2cd5ae66606319d
2014-10-31 17:27:02 -07:00
Dmitriy Ivanov
976402cca1 Fix symbol lookup order during relocation
Relocate symbol against DF_1_GLOBAL shared libraries
  loaded before this shared library. This includes
  main executable, ld_preloads and other libraries
  that have DF_1_GLOBAL flag set.

Bug: 2643900
Bug: 15432753
Bug: 18186310

(cherry picked from commit d225a5e65223b375a63548c4b780f04d8f3d7b60)

Change-Id: I4e889cdf2dfbf8230b0790053d311ee6b0d0ee2d
2014-10-31 17:10:30 -07:00
Dmitriy Ivanov
bf3d5ef5fd Fix mips build
Bug: 18186310

(cherry picked from commit 90b74fb8671db6f5512821a033e12a6248e5c804)

Change-Id: I8d4ed254e5c421b65b62c401abdb1ee07e5dc3b2
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
6442dbd3bc Remove unnecessary lookups during relocations
local_group includes this library and its dependencies.

Bug: 18186310

(cherry picked from commit e47b3f8456fc34ac136e9fddef59a9ae37febcbe)

Change-Id: I93c2d873e924df7319569307444bf603d7d27bf0
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
fd2747bb58 Fix relocation to look for symbols in local group
The local group is a sequence of libraries in default (breadth-first)
  order. It allows RTLD_LOCALLY loaded library to correctly relocate
  symbols within its group (see test-cases).

  Local group lookup is performed after main executable and ld_preloads.

Bug: 2643900
Bug: 15432753
Bug: 18186310

(cherry picked from commit cfa97f172dc1b10d650fefbb6ccffd88ce72a5fb)

Change-Id: I5fa8c673f929e4652c738912c7ae078d7ec286d2
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
4d0c1f673f Correct way to specify additional dependencies
Previous one was not covering all the targets

Bug: 17548097
Bug: 18186310

(cherry picked from commit 4a9e1937c56511aef579312bf39ab345f9179230)

Change-Id: I2cd9e58893555d16cbfe291b2d1279621489d5ad
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
382e06ce8e Add dlfcn_test to glibc test suite.
Bug: 18186310

(cherry picked from commit eb27bbae8f0edc6b62ca2db73256c7fb53b9e9bf)

Change-Id: I1d608dfa12dbafbdcdb8bc6d818c5872404c19e0
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
e4bc6f026a Ignore DT_BIND_NOW (0x18)
Bug: 18186310
Bug: 17552334

(cherry picked from commit ea6eae182ad64312f80b9adddac511d8938e23e7)

Change-Id: I07d6f6fbb462fea329581d0da02f6d88be1c262f
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
1d3e81a9e7 Resolve "unused DT entry" warnings for x86_64
Bug: 18186310

(cherry picked from commit 513e29e16f16a6ffa1636ba282d599fd6b437aeb)

Change-Id: I1e4c5af2cdc09dc978c7a78fcdcf8796c919751e
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
c87f65d2cd Add RTLD_NODELETE flag support
Bug: 18186310
Bug: https://code.google.com/p/android/issues/detail?id=64069

(cherry picked from commit 1b20dafdbe65e43b9f4c95057e8482380833ea91)

Change-Id: Ic02eec22a7c322ece65eb40730a3404f611526b1
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
210ff1b27b Fix mips build
Bug: 18186310

(cherry picked from commit ecf532fa1cfe91ca946243c11ef154c602870ba6)

Change-Id: Ia12f2fa28c8cd3204eb7d6b4c7d872f4e81fb8ef
2014-10-31 17:04:00 -07:00
Dmitriy Ivanov
0f47d9c1ce Fix unused DT entry warnings.
DT_STRSZ Implement strtab boundary checks
 DT_FLAGS_1 Warn if flags other than DF_1_NOW|DF_1_GLOBAL are set

Bug: 17552334
Bug: 18186310

(cherry picked from commit 6cdeb5234d7f4523fe9d83974f265d80f10512a6)

Change-Id: I7ffc7bc600798308a77ad949a644949b64250ae2
2014-10-31 17:03:59 -07:00
Dmitriy Ivanov
f90e21004e Return has_DT_SYMBOLIC flag.
This reverts commit 8f61d991831f0ea515fa50a5c38dbbcfbab0dd28

 Despite the fact that static linker does all the work while linking
 -Bsymbolic executables, according to the SCO doc following DT_SYMBOLIC
 and DF_SYMBOLIC flags is still a requirement for the dynamic linker
 as well.

 (see http://www.sco.com/developers/gabi/2012-12-31/ch5.dynamic.html)

Bug: 18186310

(cherry picked from commit 96bc37f2e1093416a432135265fd7a4db6c3df17)

Change-Id: Ie217be4f3305d877066e4cfe91975ae1c7768330
2014-10-31 17:03:59 -07:00
Elliott Hughes
748fbe5c41 Fix a couple more cases of missing CLOEXEC.
The debuggerd case can probably never happen, because you're crashing at this
point anyway. The system property one seems possible though.

Bug: 18186310

(cherry picked from commit 0dc39f9952c5e3a3121ea77357bb264ef0f8ded7)

Change-Id: I3e84488fc246f6c28cbd82e96d0cd4343a12c28a
2014-10-31 17:03:21 -07:00
Dmitriy Ivanov
d5eb10875a Temporary disable DL_WARNs for unused DT_*
Bug: 17552334
Bug: 18186310

(cherry picked from commit 1b77423eff21e916186fcb208f138e436e9f3052)

Change-Id: I8a9d05195a862bc287fff7156913606f0311b8bb
2014-10-31 17:02:14 -07:00
Dmitriy Ivanov
09608848ed Fix 64bit build
Bug: 18186310

(cherry picked from commit f240aa8089ea1574a7d799720efb66528f6ceb99)

Change-Id: Id46f1f9be90a17a58fb44d3540095c8c685c9726
2014-10-31 17:02:14 -07:00
Dmitriy Ivanov
634a045c5c Fix some unused DT_ warnings
* DT_PLTGOT - ignored for non-mips
 * DT_RELCOUNT/RELACOUNT - ignored
 * DT_RELENT/RELAENT - sanity checks
 * DT_SYMENT - sanity check
 * DT_SONAME - ignore for now.

Bug: 18186310

(cherry picked from commit 4a6e9a835a84aca965f0170f604381dae7f130be)

Change-Id: Ib40095f0770d65628fc7abac5a471378de35ebe7
2014-10-31 17:02:14 -07:00
Dmitriy Ivanov
b364d95380 Remove has_DT_SYMBOLIC flag
From the elf-spec: "Symbolically bound shared objects are
  identified by the .dynamic entry DT_SYMBOLIC. This tag is
  informational only; the runtime linker processes symbol
  lookups from these objects in the same manner as any
  other object."

Bug: 18186310

(cherry picked from commit 8f61d991831f0ea515fa50a5c38dbbcfbab0dd28)

Change-Id: I37024799ac8d1837993c8ae78780a448bedd6539
2014-10-31 17:02:13 -07:00
Dmitriy Ivanov
c85e82dde5 Fix dlsym() to take into account RTLD_GLOBAL/LOCAL
Symbols from libraries opened with RTLD_LOCAL (default)
  should not be visible via dlsym(RLTD_DEFAULT/RTLD_NEXT, .)

Bug: 17512583
Bug: 18186310

(cherry picked from commit e8ba50fe0d51fbefee1a8f5bb62bf51d841512c8)

Change-Id: Idf6bbe2233fb2bfc0c88677e7d1fc518fb3f7a8b
2014-10-31 17:02:13 -07:00
Dmitriy Ivanov
926797a8a9 Reformatting
No functional changes.

Bug: 18186310

(cherry picked from commit 6abf624d122bec8c80cc9fe1b692265bf1b28b1b)]

Change-Id: I0acf52d8ee7fe2d4f44bc832cbe9fabe1782f03f
2014-10-31 17:02:13 -07:00
Dmitriy Ivanov
53fa1d13f4 am eb46dd98: am a334934f: am f33ad400: Merge "Fix symbol lookup order during relocation"
* commit 'eb46dd98ab903938cd5863da7d614d3ec03c0722':
  Fix symbol lookup order during relocation
2014-11-01 00:01:35 +00:00
Dmitriy Ivanov
eb46dd98ab am a334934f: am f33ad400: Merge "Fix symbol lookup order during relocation"
* commit 'a334934f66386ecdf3ec07daf0b651fcf3b8dcce':
  Fix symbol lookup order during relocation
2014-10-31 23:57:29 +00:00
Dmitriy Ivanov
a334934f66 am f33ad400: Merge "Fix symbol lookup order during relocation"
* commit 'f33ad400230fa1f16ba4501efb60a1b6035e06ca':
  Fix symbol lookup order during relocation
2014-10-31 23:54:20 +00:00
Dmitriy Ivanov
f33ad40023 Merge "Fix symbol lookup order during relocation" 2014-10-31 23:51:18 +00:00
Dmitriy Ivanov
034f6105d9 am c663c2ae: am 703581a3: am 74c0ccd4: Merge "Use local copy of the library name on dlopen"
* commit 'c663c2ae3ee6edf69342b1535237ffdc8489d2d9':
  Use local copy of the library name on dlopen
2014-10-31 23:02:48 +00:00
Dmitriy Ivanov
c663c2ae3e am 703581a3: am 74c0ccd4: Merge "Use local copy of the library name on dlopen"
* commit '703581a3220123a4fc44acbf3a94c835a7cf5ed0':
  Use local copy of the library name on dlopen
2014-10-31 22:57:06 +00:00
Dmitriy Ivanov
703581a322 am 74c0ccd4: Merge "Use local copy of the library name on dlopen"
* commit '74c0ccd49b2f0a94078b565b60c10ecba1e9424e':
  Use local copy of the library name on dlopen
2014-10-31 22:51:38 +00:00
Dmitriy Ivanov
74c0ccd49b Merge "Use local copy of the library name on dlopen" 2014-10-31 22:47:25 +00:00
Dmitriy Ivanov
da8e591c39 Use local copy of the library name on dlopen
Bug: 18052100
Change-Id: Idbc2a3691db3b5525d4e9bca81d78d5f29bc438f
2014-10-31 14:23:34 -07:00
Dmitriy Ivanov
d225a5e652 Fix symbol lookup order during relocation
Relocate symbol against DF_1_GLOBAL shared libraries
  loaded before this shared library. This includes
  main executable, ld_preloads and other libraries
  that have DF_1_GLOBAL flag set.

Bug: 2643900
Bug: 15432753
Change-Id: Ia788748be59b739d1c7e62b978e7e255f9e65c7b
2014-10-31 11:39:51 -07:00
Dan Albert
b5c391eeed am 64b5940b: am 653263a9: Only use <atomic> for C++11 and newer.
* commit '64b5940bc3e6202da16a5c1f24a380169032e51d':
  Only use <atomic> for C++11 and newer.
2014-10-31 06:17:44 +00:00
Dan Albert
64b5940bc3 am 653263a9: Only use <atomic> for C++11 and newer.
* commit '653263a96459c5c1811623bd84201c324a870280':
  Only use <atomic> for C++11 and newer.
2014-10-31 06:12:21 +00:00
Dan Albert
653263a964 Only use <atomic> for C++11 and newer.
Any pre-C++11 clients of stdatomic.h that use libc++ are being forced
over to <atomic>, which they don't have the language support to use.

Bug:17736764

Change-Id: I62445c1f2541410a1569498c09433c7196635537
(cherry picked from commit 3ce0769aa5f9a991af1d167f730d987dd002253c)
2014-10-30 13:22:34 -07:00
Elliott Hughes
8fc0e09a01 am 20cc6b69: Merge remote-tracking branch \'goog/lmp-mr1-ub-dev\' into manualmerge
* commit '20cc6b695a8ceaf801f53f0526f0ed5d588d7d9d':
  Fix the type of u_ar0 in <sys/user.h>.
  Add greg_t for arm64.
  POSIX says <signal.h> gets you ucontext_t.
  Add in_port_t and move it and in_addr_t to the correct header file.
  Add stpcpy assembler version.
  Cleanup arm assembly.
  Add __memcpy_chk assembly for 64 bit.
  Clean up the architecture-specific makefiles.
  No arm source refers to SOFTFLOAT.
2014-10-30 18:39:16 +00:00
Elliott Hughes
e897108f96 am 7256062f: am 25f4bb98: am e38bf839: Merge "limits.h: add define for HOST_NAME_MAX"
* commit '7256062f10a2381cf2bd92aacadbf5ebda32b3b2':
  limits.h: add define for HOST_NAME_MAX
2014-10-30 18:38:52 +00:00