Commit Graph

465 Commits

Author SHA1 Message Date
Andrew Hsieh
458300640f Fix samples for 64-bit ABIs
1. Set APP_ABI:=all in almost all samples
2. Enhance hello-jni to report more ABIs
3. Fix warnings

Change-Id: I2851c42b77ef8225e32143d225edcf973633e782
2014-06-20 16:42:08 -07:00
Andrew Hsieh
e75afa6aee 64-bit in android-L
See https://android-review.googlesource.com/#/c/99021/

Change-Id: I10daf2da97aa9d3c99661b5d79080b96a0ae9f22
2014-06-20 16:34:39 -07:00
Andrew Hsieh
1b1f01913c Refresh 64-bit headers/libs (WW25)
To bionic: 06366724d572ef005f5bc0ddd8ad46794cbfad3b

Change-Id: I4c676127d357445fc5d09a2c82c5664238105b90
2014-06-20 15:32:42 -07:00
Andrew Hsieh
e577c6b4e3 Merge "Fix ssize_t, WCHAR_MIN and WCHAR_MAX" 2014-06-10 21:55:12 +00:00
Andrew Hsieh
a5c12d1936 Update libm_hard.a
1) Add ldexp.  ldexp used to co-exist in both libc.so and libm.so until
   the removal from libm.so in ICS.  Unfortunately the sole copy of libm_hard.a
   in NDK was compiled from JB source and miss ldexp.  Code compiled with
   hard-float using ldexp may use libc.so which follows soft-float and misbehave
2) Turns out the following (all in fpclassify.o) also exists in recent libc.so
   too.  Add them in libm_hard.a as well:

    __fpclassifyd
    __fpclassifyf
    __fpclassifyl
    __isfinitef
    __isfinite
    __isfinitel
    __isinff
    __isinf
    __isinfl
    __isnanl
    __isnormalf
    __isnormal
    __isnormall
    isinf
    isnan
    isnanf

Change-Id: Ia157fb2911341988de102e55d0c6f6141a9c3dda
2014-06-10 10:58:37 +08:00
Andrew Hsieh
9983b467e5 Fix ssize_t, WCHAR_MIN and WCHAR_MAX
1) ssize_t is int, instead of long int
2) WCHAR_MIN and WCHAR_MAX be consistent with bionic's:
   respond to __WCHAR_UNSIGNED__, work for both signed (X86/MIPS)
   and unsigned (ARM) wchar_t, and work for -fshort-wchar too

Change-Id: Ief1be007571b50c5d63a819df489f9d3f9b47bc8
2014-06-10 10:51:46 +08:00
Andrew Hsieh
2ae52388f3 Add missing mips64 lib-bootstrap
Such that the following can correctly populate sysroot just enough to rebuild
mips64el toolchain

  ./build/tools/gen-platforms.sh --minimal --dst-dir=$NDK --ndk-dir=$NDK --arch=mips64

Change-Id: Ib37516bfe4c4b6a0c5b479d7cec8764c161f02c8
2014-06-09 17:37:46 +08:00
Andrew Hsieh
ecfe9d0946 Merge "64-bit mips64el-* multilib sysroot" 2014-06-09 01:06:34 +00:00
Jesse Hall
2433ffdef5 ndk: Remove extra GLES symbols on 64-bit platforms
The original arch-arm libGLESv1_CM.so and libGLESv2.so symbols in
android-4 and android-5 were correct. They didn't include some vendor
extension symbols that are in the platform library but that apps
should query at runtime rather than link against.

When arch-x86 and arch-mips were added in android-9, they mistakenly
included these extension symbols. Oh well, for compatibility we can't
fix that now.

The android-20 symbols for all architectures were copied from x86 or
mips, and include the extension symbols. To avoid spreading the
mistake, this change:

(a) Removes the symbol files for architectures that existed in earlier
versions of the platform, since they shouldn't change in android-20.

(b) Removes the extension symbols on 64-bit platforms, so they match
the symbols in arch-arm.

Change-Id: Ib227d9d163bfe2859b13eb57dc19518d3a3f90d0
2014-06-05 18:36:32 -07:00
Andrew Hsieh
f77a689ffd 64-bit mips64el-* multilib sysroot
Change-Id: I88fb4492d16eece4347589da75fe1ed2ed7d2254
2014-06-04 23:42:16 +08:00
Andrew Hsieh
80bc93153d Merge "Fix warning about undefined __LP64__" 2014-06-03 07:33:17 +00:00
Andrew Hsieh
7f4142f25e Merge "Refresh 64-bit headers/libs (WW22)" 2014-06-03 07:25:05 +00:00
Andrew Hsieh
e85f942ec6 Fix warning about undefined __LP64__
See b.android.com/69975

Change-Id: If7f2b6fa29c36221b1a0d31a334cb34cecb4e8bc
2014-06-02 14:44:19 +08:00
Pavel Chupin
2e807e16dc Add lib symlink to x86_64 so that 32-bit static libs are available
When multilib toolchain in NDK is used in -m32 mode we need 32-bit static libs
available for static compilation.

Change-Id: Ie7b5659f05338565fd19550ae4368934422e8b86
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-06-01 18:52:16 +04:00
Andrew Hsieh
727ac63f0a Refresh 64-bit headers/libs (WW22)
Change-Id: Ic49750508a4c825e6ac222d8cd417e71dae53cbd
2014-05-30 23:21:02 +08:00
Andrew Hsieh
19f647e8a7 Refresh 64-bit headers/libs (WW21)
Change-Id: I013af3ae4adac17d7b2ef5680d41d75dc9799d19
2014-05-28 21:07:45 +08:00
Andrew Hsieh
2c91491806 Refresh 64-bit headers/libs (WW20)
Change-Id: I91c4a89635a075d2264e43c51f56b70fe999152f
2014-05-17 06:37:26 +08:00
Andrew Hsieh
67dc50cbbb Merge changes Ie67acf11,Ia9c03558
* changes:
  Remove non-existanec functions/variables from libc.so
  Restore stdint.h for android-3..19 to the original headers
2014-05-16 03:17:19 +00:00
Andrew Hsieh
abc6d891a0 Merge "Update lib-boostrape for 64-bit libraries built with GCC toolchain" 2014-05-16 03:16:21 +00:00
Arseniy Antonov
4e1ef36772 Update android-20 wchar.h up to bionic state.
Corresponding changes in bionic:
Ia9bd0785bc42c7b46e2bb6c3d9b9a9d3f769d983
I5abdc7cc3c27c109b7900c94b112f18a95c35763

Change-Id: Ie86fd15226fe552b6f0e60c24debbe1d79f7a332
Signed-off-by: Arseniy Antonov <arseniy.antonov@intel.com>
2014-05-15 18:48:19 +04:00
Andrew Hsieh
1e61663835 Remove non-existanec functions/variables from libc.so
See b.android.com/69319

android-9+
  __evOptMonoTime
  _nres
  __p_default_section_syms
  __p_update_section_syms
  _rand48_add
  _rand48_mult
  _rand48_seed
  _res_opcodes
  __sFext

android-12+
  copy_tm_to_TM
  copy_TM_to_tm
  __dtoa
  _endhtent
  __fremovelock
  _gethtbyaddr
  _gethtbyname
  _gethtbyname2
  _gethtent
  __libc_android_abort
  _mktemp                 # mktemp already exist in header
  __pread64               # add pread64, pwrite64 and ftruncate64 to API >= 12
  __pwrite64
  res_need_init
  __res_ourserver_p
  _sethtent
  __set_syscall_errno
  __sfvwrite
  __timer_table_start_stop
  valid_tm_mon
  valid_tm_wday

android-14+
  __libc_android_log_assert
  __libc_android_log_print
  __libc_android_log_vprint

android-17+
  dlmalloc_walk_free_pages
  dlmalloc_walk_heap
  __get_pc

android-18+
  __get_res_cache
  __libc_init_common
  __libc_preinit

Change-Id: Ie67acf115427e808dde0e33411671b07a888a9b6
2014-05-12 19:22:17 +08:00
Andrew Hsieh
7986b0872e Fixes samples Teapot/MoreTeapots armeabi-v7a-hard; native-audio debug build
Fixes two issues:
1. Remove redundant check for hard-float in Teapot/MoreTeapots and ndk_helper
   they depend.  The ndk-build system add those flags already for armeabi-v7a-hard
2. native-audio in debug build: assert on the non-existance var

Change-Id: Id6b2d38a264c2f2d0e0c7fe625991fcee1762800
2014-05-12 15:53:37 +08:00
Andrew Hsieh
154e19fda6 Restore stdint.h for android-3..19 to the original headers
$NDK/tests/standalone/run.sh fail to run with last update on stdint.h
to android-20 level.  Restore stdint.h for fear of the new one breaking
the existing apps

Also fix signal_portable.h to use SIGRTMIN/MAX in old headers
(which got renamed to __SIGRTMIN in new header)

Also change _JBLEN to 1024 which shall be large enough to store CPU
states for forseable future.

Change-Id: Ia9c03558a258c10434eb8e6985adc122532feaa3
2014-05-12 12:14:33 +08:00
Andrew Hsieh
b1111100fc Update lib-boostrape for 64-bit libraries built with GCC toolchain
Change-Id: Icdc4bf924f660eb137e70ad80c91f68efd30824f
2014-05-12 12:04:58 +08:00
Andrew Hsieh
f81cdeba6a Refresh android-20 headers/libs
bionic: adfc007dbf936bd021d79ba2d2c360a3cfc77be9  5/19 2014

Change-Id: I4836f04d9b5b68abe7896e246c9dffa2e175e4ca
2014-05-09 20:08:02 +08:00
Andrew Hsieh
b769dcb815 Merge "Update signal.h from bionic with transition from SIGRTMIN to __SIGRTMIN" 2014-05-09 02:38:01 +00:00
Pavel Chupin
4120ceca07 Update signal.h from bionic with transition from SIGRTMIN to __SIGRTMIN
Update signal.c for build with old platforms

Change-Id: Ica87465a73004c0885d51e384acd4f42947cc19b
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-05-08 15:34:45 +04:00
Pavel Chupin
9973b9197f Update epoll.h from bionic
Change-Id: I0c1c8180bcfab5022d5dcdcb5c768a17b9d77f16
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-05-07 19:06:03 +04:00
Andrew Hsieh
b280e72a97 Bump __clang_minor__ check to 6 for __builtin_isnan
It appears that upstream 3.5 still can't accept __builtin_isnan redeclared
with calling convention, eg.

cat > isnan.c <<EOF
int __builtin_isnan(double) __attribute__((pcs("aapcs")));
EOF

  clang  -target armv5te-none-linux-androideabi -c isnan.c
  isnan.c:1:5: error: function declared 'aapcs' here was previously declared without calling convention
  int __builtin_isnan(double) __attribute__((pcs("aapcs")));
      ^
  isnan.c:1:5: note: previous declaration is here

Change-Id: Iff466fd913c3deec27aa3ff355a208543028d368
2014-04-25 09:55:31 -07:00
Andrew Hsieh
fec8b6eb28 Update arch-x86/lib-bootstrap/lib64
Note that this is only used (symlinked) by android-20/arch-x86/lib-bootstrap
for x86_64 build

Change-Id: I9ab023b0383f406fd5b05debf2dd75ea9f2243d8
2014-04-24 12:26:29 -07:00
Andrew Hsieh
79d3fcb11e Add android-20 bionic headers/symbols for 32-bit
Note that this is for bionic headers to be consistent with 64-bit
headers tentatively placed at android-20. ie.

1. bionic headers in all the existing 32-bit headers android-3 .. 19
   are consistent, and don't track any new development in bionic/
   since JB (the time when significant refactoring work starts in bionic/)
   unless bug fixes.
2. bionic headers in android-20 tracks bionic/

Change-Id: Ia07f04ac03ffaef6a6ddcea5f0e6b891e21a869a
2014-04-20 22:18:57 -07:00
Andrew Hsieh
ea0a954826 Merge "Rename lib64 to lib in arch-arm64 and arch-arm64" 2014-04-14 16:14:24 +00:00
Andrew Hsieh
1c0b98603a Remove _GLOBAL_OFFSET_TABLE_ from mips' libstdc++.so.variables.txt
Change-Id: Ie74d6ece0a76eceb41bfc83b2652b50c7e8be159
2014-04-14 08:09:49 -07:00
Pavel Chupin
f09f860b12 Add libstdc++ symbols for 64-bit archs
Done by ndk/build/tools/gen-system-symbols.sh script

Change-Id: I6804e059468f755e18212df43a05a8ec7c3d5a79
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-04-14 18:38:39 +04:00
Andrew Hsieh
a209207504 Rename lib64 to lib in arch-arm64 and arch-arm64
Rename lib64 to lib until both aarch64 and mips64el compiler are
built to look for sysroot/usr/lib64.

Change-Id: Ib9b40a432f7b27c25990e5bdba6ab11db6b2fb6a
2014-04-12 00:47:18 -07:00
Andrew Hsieh
8326e0edba Update 64-bit headers/libs
Also
1) rename lib -> lib64
2) add src/ for android-20/arch-arm64 and arch-mips64
3) delete android-9/arch-arm64 and arch-mips64

Change-Id: I4958c4e52946e29e57b910f39ff0104200853a06
2014-04-10 15:28:53 -07:00
Andrew Hsieh
6db591b98c Merge "Directories/symlinks changes for x86_64 support" 2014-04-10 20:20:02 +00:00
Andrew Hsieh
497b94df02 Merge "Headers update from bionic for x86_64 support" 2014-04-02 08:21:49 +00:00
Andrew Hsieh
0123d3496a Merge "Move _types.h to 32-bit arch dirs to avoid impact on 64-bits" 2014-03-29 03:12:46 +00:00
Andrew Hsieh
ac982541a9 Merge "Refresh locale.h from bionic" 2014-03-29 03:07:31 +00:00
Pavel Chupin
cd9dfd0ffd Refresh locale.h from bionic
Change-Id: I2dfa05f13f6e6e92a5ca238504bd7ee7c511640c
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-03-28 16:55:51 +04:00
Pavel Chupin
e54e92427d Headers update from bionic for x86_64 support
* Add i386/elf_machdep.h, it is used during the build of 32-bit part of
multilib compiler;
* Remove page.h. See https://android-review.googlesource.com/#/c/83299;
* Update other x86 headers from bionic for compatibility which are
required for successful build;

Change-Id: Ia66301849e699b79c657146424a806d0aa22342b
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-03-25 19:22:22 +04:00
Pavel Chupin
ac612d2495 Move _types.h to 32-bit arch dirs to avoid impact on 64-bits
This change moves _types.h from common area to all 32-bits archs.
Required for successful NDK build.

Change-Id: Ife676a285f4b77aef4c33e465a0dbc7cab1481a3
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-03-25 19:21:34 +04:00
Pavel Chupin
94006ac982 Directories/symlinks changes for x86_64 support
* Cleaned up obsolete link in android-9
* Add symlink to lib-bootstrap in android-9
* Add symlink to crt* files sources so that we can build crt*.o for x86_64
* Moved static libs from lib to lib64 so that they can coexist with 32-bit libs
and automatically picked up by multilib compiler. Just plain move, nothing
changes;

Change-Id: Iba580f59f0538db9bc8484afd10e9cfd8b53913a
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-03-25 19:11:40 +04:00
Andrew Hsieh
523abc09f0 Add 64-bit libc.so/libm.so/libdl.so
Generated via
  $NDK/build/tools/gen-system-symbols.sh \
    out.aosp_arm64-eng/target/product/generic_arm64/obj/lib \
    /tmp/ndk-$USER

Change-Id: Ie8e9b8fe1b7c4eb2bd6ed6052f52806885544378
2014-03-25 18:47:13 +08:00
Andrew Hsieh
bf78262845 Merge "Generate x86_64 symbols based on bionic 2014-03-19" 2014-03-25 10:29:52 +00:00
Andrew Hsieh
3000c633ef Merge "Disable for a while extra warnings when using [v]sprintf" 2014-03-25 10:17:05 +00:00
Andrew Hsieh
70537fd9ea Merge "Fix x86_64 alignment in crtbegin" 2014-03-25 10:06:44 +00:00
Andrew Hsieh
d8118ba51b Refresh 64-bit headers and libs
Change-Id: I300537b883705cedbcb6f21fe616f187b54c4afd
2014-03-22 17:45:39 +08:00
Pavel Chupin
fa5250051f Fix x86_64 alignment in crtbegin
Sync from bionic

Change-Id: Ic2b5f1cf87c4c89f75571f76b6a078990bfcb1e4
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-03-21 15:23:07 +04:00