Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/3c9d63042da2a1aa6874562e5d3abb4c88fafdb9 >--------------------------------------------------------------- commit 3c9d63042da2a1aa6874562e5d3abb4c88fafdb9 Author: Nathan <nathan.hues...@posteo.de> Date: Wed Jan 23 18:07:19 2013 +0100 Added support to cross-compile to android Signed-off-by: David Terei <davidte...@gmail.com> >--------------------------------------------------------------- aclocal.m4 | 6 ++++++ compiler/llvmGen/LlvmCodeGen/Ppr.hs | 3 +++ compiler/utils/Platform.hs | 2 ++ 3 files changed, 11 insertions(+), 0 deletions(-) diff --git a/aclocal.m4 b/aclocal.m4 index 57e35a2..edbe389 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -251,6 +251,9 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS], dragonfly|osf1|hpux|linuxaout|freebsd2|cygwin32|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix) test -z "[$]2" || eval "[$]2=OSUnknown" ;; + linux-android) + test -z "[$]2" || eval "[$]2=OSAndroid" + ;; *) echo "Unknown OS '[$]1'" exit 1 @@ -1821,6 +1824,9 @@ AC_DEFUN([GHC_CONVERT_VENDOR],[ # converts os from gnu to ghc naming, and assigns the result to $target_var AC_DEFUN([GHC_CONVERT_OS],[ case "$1" in + linux-android*) + $2="linux-android" + ;; linux-*|linux) $2="linux" ;; diff --git a/compiler/llvmGen/LlvmCodeGen/Ppr.hs b/compiler/llvmGen/LlvmCodeGen/Ppr.hs index 218870a..5d9fb23 100644 --- a/compiler/llvmGen/LlvmCodeGen/Ppr.hs +++ b/compiler/llvmGen/LlvmCodeGen/Ppr.hs @@ -58,6 +58,9 @@ moduleLayout = sdocWithPlatform $ \platform -> Platform { platformArch = ArchARM {}, platformOS = OSLinux } -> text "target datalayout = \"e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:64-n32\"" $+$ text "target triple = \"arm-unknown-linux-gnueabi\"" + Platform { platformArch = ArchARM {}, platformOS = OSAndroid } -> + text "target datalayout = \"e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:64-n32\"" + $+$ text "target triple = \"arm-unknown-linux-androideabi\"" _ -> -- FIX: Other targets empty diff --git a/compiler/utils/Platform.hs b/compiler/utils/Platform.hs index 661e03a..090ce41 100644 --- a/compiler/utils/Platform.hs +++ b/compiler/utils/Platform.hs @@ -70,6 +70,7 @@ data OS | OSHaiku | OSOsf3 | OSQNXNTO + | OSAndroid deriving (Read, Show, Eq) -- | ARM Instruction Set Architecture, Extensions and ABI @@ -112,6 +113,7 @@ osElfTarget OSHaiku = True osElfTarget OSOsf3 = False -- I don't know if this is right, but as -- per comment below it's safe osElfTarget OSQNXNTO = False +osElfTarget OSAndroid = True osElfTarget OSUnknown = False -- Defaulting to False is safe; it means don't rely on any -- ELF-specific functionality. It is important to have a default for _______________________________________________ ghc-commits mailing list ghc-commits@haskell.org http://www.haskell.org/mailman/listinfo/ghc-commits