This adds a minimalistic implementation of getcontext()
for Android/ARM and Android/x86. The provided code is
in assembly and only implements the bare minimum required
by Breakpad to get the current processor state.
Note that:
- The FPU state is not saved to the ucontext_t on ARM.
(that's actually the main difference with a normal
getcontext() implementation).
This is normal. On Linux/ARM, such state must be
obtained with PTRACE_GETVFPREGS instead. This will
be implemented in a future patch.
- On x86, only the 'regular' FPU state is saved, to
mimic the GLibc/i386 implementation. The state of
SSE/SSE2/etc registers is not part of the upstream
getcontext() implementation.
Review URL: https://breakpad.appspot.com/444002
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1024 4c0a9323-5329-0410-9bdc-e9ce6186880e
This patch allows 'make check' to work when performing
an Automake-based build of Breakpad for Android. This
requires to have an Android device connected, and the
'adb' tool in your path.
You can test that with something like:
configure --host=arm-linux-androideabi
make check
This is achieved by adding a new small shell script
under android/test-shell.sh, which is invoked by the
Makefile (see TESTS_ENVIRONMENT definition in
Makefile.am).
By default, this runs all unit tests, including those
for the processor and tools (which normally never run
on an Android device).
Note that the test suites fails (e.g. 11 failing tests
for the client library). This will be addressed in later
patches.
+ Modify android/run-checks.sh to run the client library
test suite on the device by default.
+ Add a new option (--all-tests) to android/run-checks.sh
which forces it to run the unit test suite for the host
binaries, and the full suite on the Android device.
+ Update README.ANDROID appropriately.
Review URL: https://breakpad.appspot.com/441002
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1023 4c0a9323-5329-0410-9bdc-e9ce6186880e
This small patch allows the build of the tools and processor
when targetting Android with the Automake/Autconf build.
Not that these necessarily work correctly at the moment,
but there is no need for --disable-tools --disable-processor
now when using --host=arm-linux-androideabi or
--host=i686-linux-android.
+ Modify android/run-checks.sh to build all binaries with
the Automake build.
+ Tiny fix for --abi=x86 in android/run-checks.sh
Review URL: https://breakpad.appspot.com/438002
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1018 4c0a9323-5329-0410-9bdc-e9ce6186880e
This patch remove many Android-specific #ifdefs from the Breakpad
source code. This is achieved by providing "fixed-up" platform
headers (e.g. <signal.h> or <sys/user,h>), in the new directory
src/common/android/include/, which masks differences between
the NDK and GLibc headers.
The old "android_link.h" and "android_ucontext.h" are moved
and renamed.
This also requires putting this directory as the first
include path during Android-hosted builds, hence the
modification of Makefile.am and configure.ac
Review URL: https://breakpad.appspot.com/434002
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1017 4c0a9323-5329-0410-9bdc-e9ce6186880e
This patch adds an option to android/run-checks.sh to specify
the target ABI. For example, by using the following line:
android/run-checks.sh --abi=x86 --no-device
One can check the Android/x86 build of Google Breakpad (which
still fails for reasons that will be fixed in later patches).
Another use is to force the 'armeabi' ABI even when an
ARMv7-A device is connected (which uses the 'armeabi-v7a'
by default, but supports 'armeabi' as well).
Review URL: https://breakpad.appspot.com/424002
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1003 4c0a9323-5329-0410-9bdc-e9ce6186880e
This patch adds a new directory named "android/" which contains
the following:
- A NDK build system module definition for the Google Breakpad
client library. This can be used by developers using the ndk-build
build system to more easily build and use the client library in
their own programs.
- A sample application demonstrating how to use the module,
as well as test that the library works properly during a
crash.
- A shell script (run-checks.sh) that will check everything
for you automatically, including:
- Rebuilding the host Google Breakpad host package with configure/make
- Rebuilding the Android client library with configure/make
- Rebuilding the Android client library and test program with ndk-build
- Running the crashing test program, extract minidump, dump symbols,
generate a stack trace and check that it has correct source file
locations.
For more details, run android/run-checks.sh --help-all
+ Updates to the README.ANDROID documentation.
Review URL: https://breakpad.appspot.com/407002
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@983 4c0a9323-5329-0410-9bdc-e9ce6186880e