Just want to inform I've just released CrystaX NDK r7-crystax-1. See it
here: http://www.crystax.net/android/ndk/7. There are prebuilt
distributions for Windows, Mac or Linux and, for geeks, instructions how
to rebuild them from scratch.
This is Android NDK which I've rebuilt from Google's sources but with
many own additions. Main features of CrystaX NDK:
1. Wide characters.
Google's NDK doesn't support wide chars properly - neither in C or
C++. Using CrystaX NDK you get full standard compliance wide characters
support. You can easily port existing code which use wide
characters/strings/streams or write new one.
2. New 4.6.3 toolchain
Starting from r7-crystax-1, CrystaX NDK contains two versions of
compiler toolchain: 4.4.3 (old one, the same as Google use) and 4.6.3
(new one).
New toolchain contains GCC 4.6.3 with enabled Graphite framework
allowing gcc do high-level memory optimizations.
4.6.3 toolchain is not enabled by default to be compatible with
Google's NDK. To enable it for your application, just add following to
the app's Application.mk:
APP_TOOLCHAIN_VERSION := 4.6.3
3. C++11 support (formerly known as C++0x)
Google's NDK offer GCC 4.4.3 which is good compiler but doesn't
support some modern features. One of such features is support of new
International Standard known as C++11 (formerly known as C++0x). There
is very limited support of C++0x features in GCC 4.4.3.
Using CrystaX NDK you can start use many of new C++0x features right
now. Of course, there is no yet full C++11 support in GCC 4.6.3 but GCC
team works very intensively on that and it already contains many very
usable features (lambdas, decltype, auto and many others). To see full
list of C++0x features supported, look to GCC C++ Support page.
To use C++0x features in your project, just add following to the
app's Application.mk:
APP_USE_CPP0X := true
Note that in this case new 4.6.3 toolchain implicitly selected.
Hope it would be helpful to you, peoples :)
--
Dmitry Moskalchuk
What did you fix Dmitry?
1. Undefined reference to sincos - http://www.crystax.net/trac/ndk/ticket/54
2. Streaming a double into stringstream crashes under 4.6.3 ARM toolset
- http://www.crystax.net/trac/ndk/ticket/55
3. Fix build of Leopard host binaries on Snow Leopard and Lion (Mac OS X).
4. Fix wchar io functions behavior
(wprintf/swprintf/fwprintf/wscanf/swscanf/fwscanf).
5. Fix cygwin build - now windows users can work in both native windows
and cygwin environment, which is preferable.
6. Included several bug-fixes from mainline.
--
Dmitry Moskalchuk
On 12/21/2011 10:49 PM, mingw android wrote:
> What did you fix Dmitry?
>
> On Dec 21, 2011 12:07 PM, "Dmitry Moskalchuk" <cry...@gmail.com
> --
> You received this message because you are subscribed to the Google
> Groups "android-ndk" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to
> android-ndk...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/android-ndk?hl=en.
Circular dependency problem is fixed and it'll be included to the
upcoming r7-crystax-3. Anyway, this is just warning, not an error so it
doesn't affect build.
Now, lets figure out what's wrong with libcrystax.so. How you build your
app? Is it done with NDK build system or you use standalone toolchain?
There are bit different approaches used for linking with libcrystax.
--
Dmitry Moskalchuk
<NDK>/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-objdump
-x libXXXX.so | grep NEEDED
There should be displayed 'libcrystax_shared.so'. If there is just
'libcrystax.so', then just rebuild your libXXXX.so.
--
Dmitry Moskalchuk
The NEON support in your build is totally broken :(
1> Device.cpp
1> C:\Users\mxadd\AppData\Local\Temp\ccrRrgjX.s: Assembler messages:
1>C:\Users\mxadd\AppData\Local\Temp\ccrRrgjX.s(2405): error : ']'
expected -- `vld1.32 {d20-d21},[r3:64]'
1>C:\Users\mxadd\AppData\Local\Temp\ccrRrgjX.s(2423): error : ']'
expected -- `vld1.32 {d18-d19},[ip:64]'
1>C:\Users\mxadd\AppData\Local\Temp\ccrRrgjX.s(2427): error : ']'
expected -- `vld1.32 {d26-d27},[r3:64]'
1>C:\Users\mxadd\AppData\Local\Temp\ccrRrgjX.s(2433): error : ']'
expected -- `vld1.32 {d4-d5},[r3:64]'
(win32 build)
the couse of this is that there is mismatch between the syntax
expected by 'as' (the 'old' syntax in your case)
and the syntax exported to *.s by gcc (it's exportedy an the 'new'
standard) - any source files that have 'a lot' (or any ?) of neon
intrinsics are first converted by gcc to *.s, and then 'as' is invoked
on them.
Could you fix this ?
(this is related to the version of 'binutils' 2.21.53 seems to be
minimum for 'as' to interop correcly with gcc when compiling gcc 4.6.1
for android - i dont know what is the minimum for 4.6.3)
> --
> You received this message because you are subscribed to the Google Groups "android-ndk" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to android-ndk...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/android-ndk?hl=en.
>
--
--
Code it black!
I had to upgrade all the way up to 2.22 to fix this.