1 <html><body><pre>Android NDK ChangeLog: 2 3 ------------------------------------------------------------------------------- 4 android-ndk-r5 5 6 IMPORTANT BUG FIXES: 7 8 - Allow dlclose() to properly call static C++ destructors when unloading 9 a shared library. This requires changes in both the C library and the 10 build system. IMPORTANT: This feature is only available for API level 9. 11 12 - Fix packaging error for system libraries of level 5 and 8. The libraries 13 bundled with the NDK and used at link time were not the correct version, 14 and this prevented linking against certain symbols appropriately. 15 16 - ndk-gdb: do not start activity unless --start or --launch is used. 17 (the documentation was correct, the implementation wrong) 18 19 - The system headers for all API levels have been cleaned up and will 20 not provide the declarations of functions that are not available in 21 the corresponding system libraries. 22 23 IMPORTANT CHANGES: 24 25 - Support for API level 9, which adds the following native features to the 26 platform: 27 28 - Native audio API through the OpenSL ES Standard. 29 New headers <SLES/OpenSLES.h> and <SLES/OpenSLES_Android.h> are 30 provided to allow applications targetting this API level to perform 31 low-latency audio input, output and processing directly from native 32 code. 33 34 - Native activity support, i.e. the ability to build applications that 35 are coded entirely in C or C++. More precisely, such applications still 36 run inside a VM, and will have to access most of the platform's features 37 using JNI (i.e. native code calling VM methods). However, this also 38 comes with a series of headers and libraries to implement the following 39 directly from native code: 40 41 - activity lifecycle management. 42 - user input handling (touch, keyboard, trackball, ...). 43 - window management (including accessing the pixel buffer). 44 - sensor listeners (e.g. accelerometer, compass, ...). 45 - hardware configuration management. 46 - easily reading assets out of an APK from native code. 47 - access to the storage manager, a new feature of Android X.X 48 that allows one to provide Opaque Binary Objects containing 49 large amounts of data outside of the APK. 50 51 See the documentation in docs/STABLE-APIS.html for more details. 52 53 Note that most of these new features are targetted at game developers. 54 55 - Easier debuggable builds: just invoke ndk-build while defining the 56 NDK_DEBUG variable to 1, as in: 57 58 $NDK/ndk-build NDK_DEBUG=1 59 60 This will have the same result that setting the android:debuggable="true" 61 in the <application> element of your AndroidManifest.xml file. See the 62 file docs/NDK-BUILD.html for more details. 63 64 Note that you will need to use the SDKr8 build tools to use this feature 65 properly! 66 67 - Refresh of system C++ headers: 68 69 - Headers have been moved out of the platform directory hierarchy. 70 This is to prevent conflicts with other STLs like STLport or the 71 GNU libstdc++ which provide their own version of the headers, but 72 does not affect your builds. 73 74 - The list of headers has grown to include the following: 75 76 cassert, cctype, cerrno, cfloat, climits, cmath, 77 csetjmp, csignal, cstddef, cstdint, cstdio, cstdlib, 78 cstring, ctime, cwchar, new, typeinfo, utility 79 80 Note that they still correspond to our minimal C++ runtime, no new feature 81 was introduced here. 82 83 - Add support for prebuilt libraries with the PREBUILT_SHARED_LIBRARY and 84 PREBUILT_STATIC_LIBRARIES build scripts. See the new documentation 85 file named docs/PREBUILTS.html for explanations and usage examples. 86 87 - Support for module exports: A module can now define a set of compiler or 88 linker flags that will be automatically 'imported' by any other module that 89 depends on it, through LOCAL_STATIC_LIBRARIES or LOCAL_SHARED_LIBRARIES. 90 91 This is achieved with the help of new Android.mk variables named 92 LOCAL_EXPORT_CFLAGS, LOCAL_EXPORT_CPPFLAGS, LOCAL_EXPORT_C_INCLUDES and 93 LOCAL_EXPORT_LDLIBS. See docs/ANDROID-MK.html for mode documentation, and 94 a 'samples/module-exports' for a sample project that uses this. 95 96 - Add support to specify a different file name for generated files, through 97 the new LOCAL_MODULE_FILENAME variable. See docs/ANDROID-MK.html for an 98 example. 99 100 - Add support for module imports, through the NDK_MODULE_PATH environment 101 variable and the new 'import-module' function. This allows you to avoid 102 hard-coding the path of third-party modules into your project files. 103 104 See docs/IMPORT-MODULE.html for details. 105 106 - Add the content of LOCAL_C_INCLUDES to gdb.setup to make native debugging 107 easier. Also fixes an issue that prevented clean parallel builds of 108 debuggable applications to work correctly. This fixes an error message that 109 said: 110 111 /bin/sh: <project>/libs/armeabi/gdb.setup: No such file or directory 112 113 When doing a "ndk-build -j<number>", with <number> bigger than 1. 114 115 - Add support for assembly-level source filtering. See the description of 116 LOCAL_FILTER_ASM in docs/ANDROID-MK.html for more details. This can be useful 117 for certain kinds of obfuscation tasks. 118 119 - This NDK comes with a new toolchain (named arm-linux-androideabi-4.4.3) 120 which provides many benefits, including: 121 122 - Better code generation than the previous one (gcc-4.4.0) 123 - On Windows, the binaries do not depend on Cygwin anymore. 124 - The ability to use it as a stand-alone cross-compiler 125 (see docs/STANDALONE-TOOLCHAIN.html for all details). 126 127 The binaries for gcc-4.4.0 are still provided for backwards compatibility. 128 Use NDK_TOOLCHAIN=arm-eabi-4.4.0 in your environment to force its usage. 129 Note that it is now deprecated and will be removed in a future NDK release. 130 131 The binaries for the already-deprecated gcc-4.2.1 have been removed. 132 133 - This NDK comes with a port of the STLport library, provided as an import 134 module. See sources/android/stlport/README for usage instructions. 135 136 Warning: C++ exceptions and RTTI are still not supported. 137 138 - The 'cpufeatures' library has been updated to provide better architecture 139 and features detection (including a work-around for buggy ARMv6 kernels 140 which report an architecture version of 7). 141 142 The library is now also available as an import module, to simplify its 143 usage in your build scripts. See the updated docs/CPU-FEATURES.html file 144 for details. 145 146 NOTE: Please update your Android.mk to use module imports as soon as 147 possible. The location $NDK/source/cpufeatures/ is deprecated 148 and will be removed in a future NDK release. Avoid referencing 149 it directly in your build scritps! 150 151 OTHER FIXES AND CHANGES: 152 153 - Reduced the size of generated binaries by using --strip-unneeded 154 instead of --strip-debug. This gets rid of mor symbol table entries 155 in release shared libraries and executables, without impacting 156 runtime execution. 157 158 - Fix bad automatic dependency tracking when using multiple source 159 sub-directories. 160 161 - The path to system headers is now included last in the compilation command 162 line. This prevents conflicts with source code that define their own headers 163 with similar names (e.g. a custom "err.h" was ignored, because the system 164 <err.h> was used instead). 165 166 - Update documentation for 'my-dir' function to explain that, due to the 167 way GNU Make works, it really returns the path of the last included 168 Makefile (instead of the current one). Also provide examples on how 169 to deal with it. 170 171 - make-release.sh: Now has an --out-dir=<path> option to specify the 172 output directory where the packages are going to be copied. Also 173 ensure that generated packages have go+r permissions. 174 175 - ndk-build will now properly escape arguments. This means that something 176 like this: 177 178 ndk-build MY_CFLAGS="-DFOO -DBAR" 179 180 will now work correctly. 181 182 - Add --git-http option to download-toolchain-sources.sh and 183 rebuild-all-prebuilt.sh in order to download sources from 184 android.git.kernel.org through HTTP. 185 186 - ndk-gdb: properly launch activities for which name does not contain any dot. 187 188 - ndk-gdb: add --delay=<timeout> option to specify a delay in seconds between 189 activity launch and gdbserver attach. This is needed because certain 190 activities can take a long time to properly launch. The default delay is 191 also increased to 2 seconds (instead of 1). 192 193 - build/tools/build-gcc.sh: copy the sysroot to the build directory. This 194 avoids the generated toolchain binaries from hard-coding host build paths. 195 196 - Platform files are now under $NDK/platforms instead of $NDK/build/platforms 197 198 - Toolchain files are now under $NDK/toolchains instead of 199 $NDK/build/toolchains and $NDK/build/prebuilt. 200 201 - Release and debug objects are stored under two different directories now 202 (i.e. obj/local/<abi>/objs and obj/local/<abi>/objs-debug). This prevents 203 rebuilding *everything* when you switch between these two modes, which can 204 be a real time-saver for complex projects. 205 206 - Fixed a bug that duplicated the LOCAL_LDFLAGS in the final link command 207 when LOCAL_ALLOW_UNDEFINED_SYMBOLS was not set to 'true' 208 209 ------------------------------------------------------------------------------- 210 android-ndk-r4b 211 212 This release fixes a few bugs in r4 scripts. There are no new features. 213 214 OTHER FIXES & CHANGES: 215 216 - build/tools/rebuild-all-prebuilt.sh: mktemp expects 'XXXXXX' instead of 'XXX'. 217 Fix the script (and others in the same directory) to do that properly. 218 219 - ndk-gdb: check the target device's API level, and dump an error message if 220 it is not at least 8 (Android 2.2 a.k.a. Froyo). Fix script to properly 221 remove control characters like '\r' from adb shell's output. Also fix 222 script to work properly with OS X's BSD awk. 223 224 - ndk-build: Make AndroidManifest.xml optional. Now the build scripts will try 225 to look for jni/Android.mk if no manifest is found. If you don't use this, 226 you can also define NDK_PROJECT_PATH to point to your tree. 227 228 Also, on Windows, check that a Cygwin-compatible make executable is being 229 used, and dump a readable help message to solve the issue if this is not 230 the case. 231 232 - Place generated binaries under $PROJECT_PATH/obj/ instead of 233 $PROJECT_PATH/bin/ndk/. The 'bin' directory is sometimes cleaned 234 by the JDT, resulting in the inability to properly load symbol versions 235 of the shared libraries when running ndk-gdb. 236 237 - Warn when sources with unsupported extensions are used in LOCAL_SRC_FILES. 238 Previous behaviour was to silently ignore them. 239 240 - Set the optimization mode to 'debug' automatically if the manifest sets 241 android:debuggable to 'true'. You can override this by using 242 'APP_OPTIM := release' in your Application.mk, or by adding '-O2' to 243 your LOCAL_CFLAGS. 244 245 Note that even in release mode, the NDK build scripts will produce 246 binaries with symbols under obj/local/<abi>/ that will be used for 247 debugging with gdb. However, the debugger will have a harder time to 248 print proper local variable values that have been optimized out or 249 even set breakpoints properly. 250 251 ------------------------------------------------------------------------------- 252 android-ndk-r4 253 254 IMPORTANT BUG FIXES: 255 256 - The <fenv.h> header was not placed in the correct location and could not 257 be found by normal builds. 258 259 IMPORTANT CHANGES: 260 261 - On Windows, Cygwin 1.7 or higher is now required. The NDK will not 262 work properly with Cygwin 1.5 which is now officially obsolete 263 anyway. 264 265 - Simplified build system: You no longer need to run build/host-setup.sh 266 or modify anything under $NDK_ROOT/apps/. Instead, just invoke the 267 new 'ndk-build' script from your application's project directory, or 268 one of its sub-directories. 269 270 See docs/OVERVIEW.html and docs/NDK-BUILD.html for more details. 271 272 NOTE: For compatibility purpose, you can still define projects 273 through $NDK_ROOT/apps/<name> though. 274 275 However, not that sample applications have moved from 276 'apps/<name>/project' to 'samples/<name>' and now must 277 be built with 'ndk-build'. The source code of pre-existing 278 samples didn't change though. 279 280 - Easy native debugging support when running debuggable applications 281 on Android 2.2 or higher, through the new 'ndk-gdb' helper script. 282 See docs/NDK-GDB.html for details. 283 284 - Support for hardware FPU. This is through the new 'armeabi-v7a' ABI 285 corresponding to ARMv7-a class devices. 286 287 Note that by default, the NDK will still generate machine code for the old 288 'armeabi' ABI (ARMv5TE based) which is supported by all official Android 289 system images to date. 290 291 You will need to define APP_ABI in your Application.mk file to change this. 292 See docs/APPLICATION-MK.html 293 294 More details about ABIs is now available in docs/CPU-ARCH-ABIS.html 295 296 - A small static library named 'cpufeatures' is provided with source code 297 and can be used at runtime to determine the CPU features supported by the 298 target device. It should run on all Android platforms, starting from 1.5. 299 300 For more information, see docs/CPU-FEATURES.html 301 302 - Support for the optional ARM Advanced SIMD (a.k.a. NEON) instruction set 303 extension through the use the LOCAL_ARM_NEON variable in Android.mk, or 304 the '.neon' suffix when listing source files. 305 306 Neon is an *optional* instruction set extension, and not all Android ARMv7 307 devices will support it. You will need to use the 'cpufeatures' library to 308 determine if such code can be used at runtime, and provide alternate code 309 paths if this is not the case. This is similar to MMX/SSE/3DNow on x86 310 platforms. 311 312 For more information, see docs/CPU-ARM-NEON.html 313 314 - Added a new sample (hello-neon) to demonstrate usage of 'cpufeatures' 315 and NEON intrinsics and build support. 316 317 - Added <android/bitmap.h>, a new stable API available from android-8 318 (a.k.a. Android 2.2) to reliably access the pixel buffer of an 319 android.graphics.Bitmap object from native code. See docs/STABLE-API.html 320 and the new sample program under 'samples/bitmap-plasma' for details 321 and usage example. 322 323 - Support the NX (No Execute) security feature, where special sections 324 are added to the generated shared libraries to instruct the kernel 325 that code shall not be executed from the heap and stack by default. 326 327 See docs/ANDROID-MK.html to see how to disable this, plus reference 328 links for more information. 329 330 OTHER FIXES AND CHANGES: 331 332 - support the .s extension for raw assembly sources (.S is already supported 333 but the input files are parsed by the C-preprocessor before being sent to 334 the assembler). 335 336 - build/host-setup.sh has been removed. There is no need for a 'setup' step 337 when using the NDK for the first time. All host-specific autodetection and 338 basic tool sanity checking have been moved to the build scripts themselves. 339 340 - APP_MODULES in Application.mk is now optional. If not defined, the NDK 341 will simply build _all_ the modules that are declared from your Android.mk. 342 343 You can still use APP_MODULES to restrict the set of modules you want to 344 build. Note that the NDK now computes the transitive dependencies of these 345 modules for you now. See docs/APPLICATION-MK.html for details. 346 347 - docs/STABLE-APIS.html: Add missing section for Dynamic Linker Library 348 (libdl.so). It is actually supported by all API levels. 349 350 - build/tools/download-toolchain-sources.sh: Use 'master' branch by default 351 instead of the 'eclair' one. 352 353 - build-toolchain.sh: Allow ad-hoc patching of toolchain sources when rebuilding 354 them. This is primarily to ease development. All you need to do is put a patch 355 under build/tools/toolchain-patches/<foo>/<name>.patch, and it will be applied 356 with 'patch -p1' into the <foo> directory of the unpacked toolchain sources 357 before the configure step. 358 359 - docs/CPU-ARCH-ABIS.html: Mention the experimental 'x86' ABI. 360 361 - build/core/mkdeps.sh: Removed obsolete script. 362 363 - the NDK build script now only parses the Application.mk and Android.mk of 364 the applications listed by APP. The error messages when APP is empty or 365 malformed have also been improved. 366 367 - removed the annoying 'the mangling of 'va_list' has changed in GCC 4.4' 368 warning when building with GCC 4.4.0 for ARM. 369 370 - C Library header fixes: 371 372 For all platforms: 373 374 - <arpa/inet.h>: no longer includes <netinet/in6.h>. 375 - <ctype.h>: better inlining with -ansi option. 376 - <mntent.h>: add missing include for <stdio.h>. 377 - <netinet/in.h>: include <netinet/in6.h> and define in6addr_any + 378 in6addr_loopback. 379 - <netinet/in6.h>: add IPV6_JOIN_GROUP, IPV6_LEAVE_GROUP, 380 IN6ADDR_ANY_INIT, ipv6mr_interface. 381 - <sys/epoll.h>: add missing C++ inclusion guards. 382 - <sys/resource.h>: add missing rlim_t declaration. 383 - <sys/system_properties.h>: add missing C++ inclusion guards. 384 - <time64.h>: add missing C++ inclusion guards. 385 - <netdb.h>: move h_errno declaration inside C++ inclusion guards. 386 387 - C Library changes: 388 389 For android-8 (a.k.a. Android 2.2): 390 391 - <dlfcn.h>: add DL_info and dladdr(). 392 - <err.h>: add err(), warn() and other variants. 393 - <regex.h>, <fts.h>, <sys/queue.h>: added 394 - <pthread.h>: add pthread_condattr_t 395 - <sched.h>: added proper clone() declaration (and implementation). 396 - <signal.h>: added killpg(). 397 - <stdio.h>: add fdprintf() and vfdprintf(). 398 - <stdlib.h>: fix ptsname_r() signature in declaration. previous 399 implementation was broken anyway. 400 - <unistd.h>: add getusershell(), setusershell(), endusershell(), 401 ttyname(), ttyname_r(), TEMP_FAILURE_RETRY. Fix usleep() signature 402 (now returns int). 403 - <wchar.h>: add fake mbstowcs() and wcstombs(). 404 405 More details available under docs/system/libc/CHANGES.html 406 407 ------------------------------------------------------------------------------- 408 android-ndk-r3 409 410 IMPORTANT BUG FIXES: 411 412 - Fix build/host-setup.sh to execute as a Bourne shell script (again) 413 414 - Make target shared libraries portable to systems that don't use the exact 415 same toolchain. This is needed due to differences in libgcc.a implementations 416 between gcc 4.2.1 and 4.4.0. This change ensures that generated machine 417 code doesn't depend on helper functions provided by the Android platform 418 runtime. 419 420 421 IMPORTANT CHANGES: 422 423 - GCC 4.4.0 is now used by default by the NDK. It generates better code than 424 GCC 4.2.1, which was used in previous releases. However, the compiler's C++ 425 frontend is also a lot more pedantic regarding certain template constructs 426 and will even refuse to build some of them. 427 428 For this reason, the NDK also comes with GCC 4.2.1 prebuilt binaries, and 429 you can force its usage by defining NDK_TOOLCHAIN in your environment to 430 the value 'arm-eabi-4.2.1'. For example: 431 432 export NDK_TOOLCHAIN=arm-eabi-4.2.1 433 make APP=hello-jni 434 435 Note that only the 'armeabi' ABI is supported by the 4.2.1 toolchain. We 436 recommend switching to 4.2.1 *only* if you encounter compilation problems 437 with 4.4.0. 438 439 The 4.2.1 prebuilt binaries will probably be removed from a future release 440 of the Android NDK, we thus *strongly* invite you to fix your code if such 441 problems happen. 442 443 - Support for OpenGL ES 2.0. This is through the new 'android-5' platform to 444 reflect Android 2.0 (previously the Eclair branch). This is merely a copy 445 of android-4 that also includes headers and libraries for OpenGL ES 2.0. 446 447 See the sample named "hello-gl2" for a *very* basic demonstration. Note that 448 OpenGL ES 2.0 is currently *not* available from Java, and must be used 449 through native code exclusively. 450 451 IMPORTANT: OpenGL ES 2.0 is not supported in the Android emulator at this 452 time. Running/testing any native code that depends on it thus 453 requires a real device. 454 455 - The NDK build script will now remove installed binaries from the application 456 project's path before starting the build. This ensures that: 457 458 - if the build fails for some reason, a stale/obsolete file is not left in 459 your application project tree by mistake. 460 461 - if you change the target ABI, a stale/obsolete file is not left into the 462 folder corresponding to the old ABI. 463 464 465 - Updated the STABLE-APIS.html document to clarify the OpenGL ES 1.0/1.1/2.0 466 issues regarding specific devices (i.e. 1.0 supported everywhere, 1.1 and 467 2.0 on specific devices only, need for <uses-feature> tag in manifest). 468 469 470 OTHER FIXES AND CHANGES: 471 472 - Actually use the awk version detected by host-setup.sh during the build. 473 474 - Only allow undefined symbols when LOCAL_ALLOW_UNDEFINED_SYMBOLS is set 475 to 'true', just like the documentation says it works. Also fix a typo 476 in CLEAR_VARS that prevented this variable from being cleared properly. 477 478 - Simplified build/tools/make-release.sh, the --prebuilt-dir option is 479 gone, and --help will dump a clearer description of expected options 480 and input files. 481 482 - Added --prebuilt-ndk=FILE option to build/tools/make-release.sh script to 483 package a new experimental NDK package archive from the current source tree 484 plus the toolchain binaries of an existing NDK release package. E.g.: 485 486 build/tools/make-release.sh \ 487 --prebuilt-ndk=/path/to/android-ndk-1.6_r1-linux-x86.zip 488 489 will generate a new NDK package in /tmp/ndk-release that contains the most 490 up-to-date build scripts, plus the toolchain binaries from 1.6_r1 (which 491 are not in the git repository). 492 493 Also added the --no-git option to collect all sources from the current 494 NDK root directory, instead of the list given by 'git ls-files'. This can 495 be useful if you don't want to checkout the whole 'platform/development' 496 project from repo and still work on the NDK. 497 498 This change is to help people easily package experimental NDK releases to 499 test and distribute fixes and improvements. 500 501 - Remove bash-isms from build/tools/build-toolchain.sh. Now it's possible to 502 build it with the 'dash' shell on Debian-based systems (tested on Ubuntu 8.04) 503 504 - Remove bash-ism from build/tools/build-ndk-sysroot.sh 505 506 - Refresh C library headers for all platforms: 507 508 - make <endian.h> simply include <sys/endian.h> 509 - make <stdint.h> properly declare 64-bit integer types with a C99 compiler 510 - add missing <sys/types.h> to <strings.h> 511 - add GLibc-compatible macro aliases (st_atimensec, st_mtimensec and 512 st_ctimensec) to <stat.h> 513 - add missing declaration for tzset() in <time.h> 514 515 - Added build/tools/download-toolchain-sources.sh, a script that allows you 516 to download the toolchain sources from the official open-source repository 517 at android.git.kernel.org and nicely package them into a tarball that can 518 later be used by build/tools/build-toolchain.sh to rebuild the prebuilt 519 binaries for your system. 520 521 - Updated build/tools/build-toolchain.sh to support the tarballs generated 522 by download-toolchain-sources.sh with the --package=<file> option. This 523 also builds both gcc 4.2.1 and 4.4.0, adding support for armeabi-v7a to 524 gcc 4.4.0. 525 526 ------------------------------------------------------------------------------- 527 android-ndk-1.6_r1 528 529 IMPORTANT BUG FIXES: 530 531 - Fix build/host-setup.sh to: 532 * execute as a Bourne shell script 533 * remove unused host gcc dependency 534 * improve Windows host auto-detection 535 * add GNU Make version check 536 * add Nawk/Gawk check 537 * ensure that the script is run from $NDKROOT as build/host-setup.sh 538 * add --help, --verbose, --no-awk-check and --no-make-check options 539 540 - Properly add sysroot library search path at build time. This makes a line 541 in Android.mk like: 542 543 LOCAL_LDLIBS := -lz 544 545 Actually work correctly, instead of having the linker complaining that it 546 could not find the corresponding libz.so library. Also clear LOCAL_LDLIBS 547 in $(CLEAR_VARS) script. 548 549 550 IMPORTANT CHANGES: 551 552 - The 'sources' directory is gone. The NDK build system now looks for 553 $(APP_PROJECT_PATH)/jni/Android.mk by default. You can override this with 554 the new APP_BUILD_SCRIPT variable in Application.mk 555 556 For example, the 'hello-jni' sample uses the following files: 557 558 apps/hello-jni/project/jni/Android.mk 559 apps/hello-jni/project/jni/hello-jni.c 560 561 The 'apps/<name>' directory is still needed in this release though. 562 563 - Change LOCAL_CFLAGS / LOCAL_CPPFLAGS to work as in the full Android build 564 system. This means that: 565 566 - LOCAL_CFLAGS is now used for *both* C and C++ sources (was only for C) 567 - LOCAL_CPPFLAGS is now used for C++ sources only (was for both C and C++) 568 - LOCAL_CXXFLAGS is used like LOCAL_CPPFLAGS but is considered obsolete. 569 (will disappear in next release) 570 571 Also fixed APP_CPPFLAGS / APP_CFLAGS / APP_CXXFLAGS correspondingly. 572 573 - Rename build/platforms/android-1.5 to build/platforms/android-3 to match 574 the Android API level instead of the marketing speak. 575 576 Also add a new build/platforms/android-4, and make the build system select 577 which platform to use based on the content of the project file named 578 $(APP_PROJECT_PATH)/default.properties. 579 580 - Add OpenGL ES 1.x headers and libraries to the android-4 stable APIs. 581 (NOTE: they are *not* available for android-3) 582 583 Also provide a small port of the "San Angeles Observation" demo to show 584 how to make a simple Android application that uses them. 585 586 587 OTHER FIXES AND CHANGES 588 589 - Ensure that the __ANDROID__ macro is always defined when building code 590 with the NDK. Normally, the macro must be defined by the toolchain 591 automatically to indicate that you're targetting the Android runtime. 592 593 This works for the new arm-linux-androideabi toolchain, but there is 594 a bug in the way we built the arm-eabi one, so add the flag manually 595 through the NDK build script for it. 596 597 Note that the ANDROID macro, is now deprecated. While it is still defined 598 by the NDK, you should modify your code to test against __ANDROID__ instead! 599 600 - Generate thumb binaries by default. 601 602 - Add support for LOCAL_ARM_MODE in Android.mk. 603 604 - Add support for the '.arm' suffix in source file names to force the 605 compilation of a single source in arm (32-bit) mode. 606 607 - Generate proper unoptimized versions of binaries when APP_OPTIM := debug 608 609 - Add support for LOCAL_C_INCLUDES in Android.mk 610 611 - Fix compilation of assembler files (e.g. foo.S) 612 613 ------------------------------------------------------------------------------- 614 android-ndk-1.5_r1 released. 615 </pre></body></html>