author Gregory Szorc <>
Thu, 28 Feb 2013 12:56:40 +0100
changeset 134481 614fb1e40f6cfb10344d5d0ea6e76032cf2db017
parent 121357 ec3ad127d56794c1c7ae88ee4dc6b0b3ee3b8e96
child 140337 ee95ad865eab29e1a4fd5903bee1d9fb9edf6389
permissions -rw-r--r--
Bug 784841 - Part 20: Fixes to support building external projects; r=glandium This is extremely hacky. It will likely need many refinements as we figure out how we want external projects to be handled.

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at */

// Android runs a fairly new Linux kernel, so signal info is there,
// but the C library doesn't have the structs defined.

// All NDK platform versions have asm/sigcontext.h for ARM
// Only NDK >= 6, platform >= 9 have asm/sigcontext.h for x86
// Only NDK >= 8, platform >= 9 have asm/sigcontext.h for MIPS
#if defined(__arm__) || defined(__thumb__) || ANDROID_VERSION >= 9
#include <asm/sigcontext.h>
#error use newer NDK or newer platform version (e.g. --with-android-version=9)

typedef uint32_t __sigset_t;
typedef struct sigcontext mcontext_t;
typedef struct ucontext {
  uint32_t uc_flags;
  struct ucontext* uc_link;
  stack_t uc_stack;
  mcontext_t uc_mcontext;
  __sigset_t uc_sigmask;
} ucontext_t;