We don't use these since NDK r5, since we now provide
customized versions of the library under
$NDK/sources/android/libthread_db
Change-Id: I2e3103b85c14e75a00ba9cece7a872d2156f5ef9
This patch updates the Khronos headers with updated version.
This mostly brings definitions (constants and types) related to
a bunch of new extensions. Since each extension is optional and
must be actively probed at runtime by the client program, this
doesn't change the NDK ABI at all. Moreover, which extension is
available depends on the specific hardware, not the Android system
version.
+ Define GLchar and GLvoid and adjust function signatures to
use them instead of 'char' and 'void'
List of new extensions supported:
GLES 1.x
--------
GL_OES_vertex_array_object
GL_OES_EGL_image_external
GL_APPLE_texture_2D_limited_npot
GL_EXT_blend_minmax
GL_EXT_discard_framebuffer
GL_EXT_multi_draw_arrays
GL_EXT_read_format_bgra
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_format_BGRA8888
GL_EXT_texture_lod_bias
GL_IMG_read_format
GL_IMG_texture_compression_pvrtc
GL_IMG_texture_env_enhanced_fixed_function
GL_IMG_user_clip_plane
GL_IMG_multisampled_render_to_texture
GL_NV_fence
GL_QCOM_driver_control
GL_QCOM_extended_get
GL_QCOM_extended_get2
GL_QCOM_perfmon_global_mode
GL_QCOM_writeonly_rendering
GL_QCOM_tiled_rendering
GLES 2.0
--------
GL_OES_element_index_uint
GL_OES_get_program_binary
GL_OES_mapbuffer
GL_OES_packed_depth_stencil
GL_OES_texture_3D
GL_OES_texture_float
GL_OES_texture_float_linear
GL_OES_texture_half_float_linear
GL_OES_texture_npot
GL_OES_vertex_array_object
GL_OES_EGL_image_external
GL_AMD_program_binary_Z400
GL_EXT_blend_minmax
GL_EXT_discard_framebuffer
GL_EXT_multi_draw_arrays
GL_EXT_read_format_bgra
GL_EXT_texture_format_BGRA8888
GL_EXT_texture_compression_dxt1
GL_IMG_program_binary
GL_IMG_read_format
GL_IMG_shader_binary
GL_IMG_texture_compression_pvrtc
GL_IMG_multisampled_render_to_texture
GL_NV_coverage_sample
GL_NV_depth_nonlinear
GL_QCOM_extended_get
GL_QCOM_extended_get2
GL_QCOM_writeonly_rendering
GL_QCOM_tiled_rendering
EGL:
----
EGL_ANDROID_recordable
EGL_NV_system_time
Change-Id: I26ae2aeb499539017cc35d0271f13bcfbf6f8a65
The previous header and implementation were incorrect and didn't produce
correct results. This has been fixed in the internal Gingerbread branch.
Technically, this could result in ABI breakage, but the chances are very
low, and there are no official x86 Gingerbread release yet.
Change-Id: I0b2d857399358775d1490b72a1b75baac362f839
Remove the prebuilt system shared libraries and unified symbol files
from development/ndk. We don't need them anymore:
- the unified symbol files are replaced by separate functions/variables
symbol list, which were added in a previous commit, i.e.:
libc.so.txt --> libc.so.functions.txt
libc.so.variables.txt
- the shared libraries are now generated on the fly by the NDK
gen-platforms.sh script, from the functions/variables symbol lists.
Note that we need to keep the static libraries and runtime objects,
they are required to build the cross-toolchains and target binaries.
Change-Id: Ifa0a7f2d741ed32b80216561ca3f17e67df06ce9
This change introduces separate symbol lists for functions
and variables of each NDK system shared library.
Note that we don't remove the unified symbol files yet. This
will be done later when we complete other changes under ndk/,
namely the ability to generate platforms trees containing shell
libraries generated directly from them.
These files were generated using the following:
cd development/ndk
for DIR in platforms/*/*/lib; do
for ARCH in arm x86; do
$NDK/build/tools/gen-system-symbols $DIR $DIR/../symbols
done
done
This means that the symbol lists were generated by parsing the
existing prebuilt shared libraries under platforms/ and extracting
their function and variable names.
Change-Id: Ie1e791d98260a7f0d8d2e9f71323a7ea448f2dd4
* commit '3374f8ad2cd4fcff7ab40bd80672b8b380242c84':
NDK: x86 header file has incorrect definition for ptrdiff_t
Fix size_t definition in x86 NDK header file
This updates the platform files for API level 9 on x86 to
the binaries built from the internal Gingerbread branch
containing the back-ported AOSP x86 support patches.
Change-Id: I5bc43b4a5c346f7fab8eb57289803edc0c0f2d75
This change sanitizes the x86-specific platform headers and libraries.
It does two things:
- Remove the stuff under android-3/arch-x86
- Update the content of android-9/arch-x86 from a recent AOSP
full_x86-eng build (see caveats below).
Some files appear to move because they didn't change (e.g. kernel headers).
This change was generated by following these steps:
1/ Build full_x86-eng from the AOSP tree
2/ From $ANDROID_ROOT/ndk, run:
build/tools/dev-system-import.sh --direct --arch=x86 9
3/ Under $ANDROID_ROOT/development/ndk, do:
git rm -r android-3/arch-x86
git add android-9/arch-x86
git checkout -- android-9/include
git ls-files -o | xargs rm
git commit
IMPORTANT:
The AOSP tip-of-tree used to generate these files
includes post-Gingerbread changes !!
The final version of the android-9/arch-x86 files will have to
be generated from the gingerbread branch after we back-port all
x86-support changes to it.
These binaries are thus not final, but can be used to generate
working experimental NDK packages, including prebuilt GNU libstdc++
and STLport binaries that implement -fstack-protector correctly.
Change-Id: I260896185a098b9b356bd26f492692e4a4f66f8f
The C library was updated in Gingerbread to support. The corresponding
headers were updated, but the change was missing an updated library,
used for proper linking of new functions (e.g. pthread_rwlock_init).
Fix for http://code.google.com/p/android/issues/detail?id=12990
For the record, this binary was simply pulled from an AVD created
with the standard SDK platform image for Gingerbread.
Change-Id: Ic30921582f143adfc4bcfe3f70a6293530fe0202
This patch updates the system C and C++ libraries used for
the x86 ABI. We remove the old binary targetting API level 5
(Eclair) since we don't support x86 on it anyway, and put new ones
generated from the AOSP tree with the full_x86-eng build product.
This is necessary to be able to prebuild STLport binaries for
the x86 NDK.
The binaries corresponding to the AOSP platform/bionic.git tree
using the following SHA-1, when building full_x86-eng:
4c090434a4fcffb3a8bb7ebee7cc6e52befceeae
Change-Id: I63c71554c655f18a6a6f9135074792a8681098bb
The <android/input.h> header file provided with the NDK contained
two invalid function declarations. This patch fixes them.
Note that this breaks the API, but fixes the ABI (which was previously
broken). It is likely that any application developer that tried to use
these function had problems with them anyway.
Another patch to ndk.git will add a note to the changelog and to
the documentation to explain the issue.
+ Fix some documentation typos.
Change-Id: I0f4517458257ff3242127de9f9099f39948c0a56
The platform headers use the ANDROID macro as a platform test.
This macro is set by the NDK build script explicitely, but it
is better to use __ANDROID__, which is also set by our toolchain
as a compiler prebuilt macro.
This allows usage of these headers with our standalone toolchain.
Change-Id: I431c54e29e502bb9da7a52ef7a58a6341211b4db
This is the preferred way of selecting config starting in
gingerbread, this procedure guarantees forward compatibility.
Change-Id: Iff55b545e722205bd029b92da33368129253b8a3
there is no reason to set a depth buffer. this is somewhat confusing.
also, it's better to always specify EGL_SURFACE_TYPE.
Change-Id: Ieff499b0b69a3812773cf3fe08b8bf1ca57a82d9
Update the header file to match the platform change.
Also add an Android.mk so I can actually build this sample when I want to.
Change-Id: I30c3c43fba7c233c59005d916888a46dc7049651
Includes bitmap.h which was missing from v9 but was previously in v8.
Also includes new obb stuff and other things that have gotten out of sync.
Change-Id: I6cf9ccdbc9d3271a34a1cf8a1de78aa8a1757276
This commit removes duplication of system headers per platform, i.e. remove
copies of common headers like <stdlib.h> from arch-arm/usr/include and arch-x86/usr/include
and move them to a common include directory. More specifically:
- common headers: android-N/arch-A/usr/include --> android-N/include
- arch-specific headers: android-N/arch-A/usr-include --> android-N/arch-A/include
- arch-specific libs: android-N/arch-A/usr/lib --> android-N/arch-A/lib
Change-Id: Ifdba5038d108901931f3e3a7c14ebe6270d2d276
NOTE: This also contains careful separation of API-level-specific headers.
For example, platforms/android-5/include/pthread.h contains new function
declarations that are not available when using platforms/android-3/include/pthread.h
NOTE: The NDK's build-platforms.sh script has been updated to understand the new
layout. This change in develeopment/ndk does not change the layout of
platform files under $NDK/platforms after build-platforms.sh is called.
Also the native-activity sample also has some very simple code showing
how to listen to the accelerometer.
Change-Id: I0629b8bc40cddd66233c1675cd5e8b42a9b722d8
Update to include newest headers and library, tweak glue code to
work better with state saving and add support for config changes.
Change-Id: I4d27bd4a0f542f217efaec86cf4f219aca020426
Remove all duplicate platform files, i.e development/ndk/platforms/android-N now
only contains files that are introduced in API level 'N' and not found in level 'N-1'
(This makes it easier to manage independent platform release branches, and makes
platform additions trivial to examine and maintain).
Move samples that depends on features of API level 'N' into platforms/android-N/samples
+ update tests/run-all.sh accordingly
Change-Id: I04c4c67c6c674c1714d5812d461d0524a4f4cfd9
Make the "glue library" part of the NDK as an importable module,
this has several benefits:
- no need to distribute a binary here with no easy way to regenerate it
- no need to explicitely list -lthreaded_app in your LOCAL_LDLIBS
(this is handled automatically by the module import capability)
- allows easier native debugging of what's really happening.
Note that the header is renamed <threaded_native_app.h>
+ Modify the native-activity sample to use and import the new module
+ Start documenting usage in the header file. We probably need something
better, and will probably put it under development/ndk/docs/ at some
point.
After this patch, we should be able to get rid of the code under
framework/base/native/{include.glue}
Change-Id: I6e81d70a225a6ca006beabf6e8b42529e8f371b9