2009-01-27 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Tue, 27 Jan 2009 17:07:34 +0000 (17:07 -0000)
committerZoltan Varga <vargaz@gmail.com>
Tue, 27 Jan 2009 17:07:34 +0000 (17:07 -0000)
* mini-arm.c: Fix the android build, which doesn't have
__aeabi_read_tp.

svn path=/trunk/mono/; revision=124674

mono/mini/ChangeLog
mono/mini/mini-arm.c

index 1d477b89bd63d873661e5a498bf41db08504fa60..ff7fc45c03054d72ab617164add278d5741b039b 100644 (file)
@@ -1,3 +1,8 @@
+2009-01-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-arm.c: Fix the android build, which doesn't have
+       __aeabi_read_tp.
+
 2009-01-26  Zoltan Varga  <vargaz@gmail.com>
 
        * mini-s390x.c: Remove a stray declaration of emit_sig_cookie () to fix
index d05a91723c7675c76cb9142b60a3f38ed77b4044..0e915e1955a45501a3262a1ad7e8b2410709886d 100644 (file)
 #include "mono/arch/arm/arm-vfp-codegen.h"
 #endif
 
+#if defined(__ARM_EABI__) && defined(__linux__) && !defined(PLATFORM_ANDROID)
+#define HAVE_AEABI_READ_TP 1
+#endif
+
 static gint lmf_tls_offset = -1;
 static gint lmf_addr_tls_offset = -1;
 
@@ -2433,7 +2437,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                case OP_MEMORY_BARRIER:
                        break;
                case OP_TLS_GET:
-#if defined(__ARM_EABI__) && defined(__linux__)
+#ifdef HAVE_AEABI_READ_TP
                        mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD, 
                                                                 (gpointer)"__aeabi_read_tp");
                        code = emit_call_seq (cfg, code);
@@ -3475,7 +3479,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
 
 #endif /* DISABLE_JIT */
 
-#if defined(__ARM_EABI__) && defined(__linux__)
+#ifdef HAVE_AEABI_READ_TP
 void __aeabi_read_tp (void);
 #endif
 
@@ -3485,7 +3489,7 @@ mono_arch_register_lowlevel_calls (void)
        /* The signature doesn't matter */
        mono_register_jit_icall (mono_arm_throw_exception, "mono_arm_throw_exception", mono_create_icall_signature ("void"), TRUE);
 
-#if defined(__ARM_EABI__) && defined(__linux__)
+#ifdef HAVE_AEABI_READ_TP
        mono_register_jit_icall (__aeabi_read_tp, "__aeabi_read_tp", mono_create_icall_signature ("void"), TRUE);
 #endif
 }
@@ -3854,7 +3858,7 @@ mono_arch_emit_prolog (MonoCompile *cfg)
        if (method->save_lmf) {
                gboolean get_lmf_fast = FALSE;
 
-#if defined(__ARM_EABI__) && defined(__linux__)
+#ifdef HAVE_AEABI_READ_TP
                gint32 lmf_addr_tls_offset = mono_get_lmf_addr_tls_offset ();
 
                if (lmf_addr_tls_offset != -1) {