public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH, i386, Android] -mandroid support for i386 target
@ 2012-02-22 14:58 Ilya Enkovich
  2012-02-22 17:50 ` H.J. Lu
  0 siblings, 1 reply; 26+ messages in thread
From: Ilya Enkovich @ 2012-02-22 14:58 UTC (permalink / raw)
  To: gcc-patches; +Cc: pavel.v.chupin, Jing Yu, H.J. Lu

Hello,

This patch adds -mandroid support to i386 target. OK for trunk?

Thanks,
Ilya
--

2012-02-22  Enkovich Ilya  <ilya.enkovich@intel.com>

	* config/i386/gnu-user.h (LINUX_TARGET_CC1_SPEC): New.
	(CC1_SPEC): Use LINUX_OR_ANDROID_CC.
	(CC1PLUS_SPEC): Likewise.
	(LINUX_TARGET_LINK_SPEC): New.
	(LINK_SPEC): Support LINUX_OR_ANDROID_LD.
	(LIB_SPEC): New.
	(STARTFILE_SPEC): New.
	(LINUX_TARGET_ENDFILE_SPEC): New.
	(ENDFILE_SPEC): Support LINUX_OR_ANDROID_LD.

	* config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
	crtbegin_so%O%s for -shared.
	(ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.


diff --git a/gcc/config/i386/gnu-user.h b/gcc/config/i386/gnu-user.h
index 98d0a25..f114432 100644
--- a/gcc/config/i386/gnu-user.h
+++ b/gcc/config/i386/gnu-user.h
@@ -77,8 +77,15 @@ along with GCC; see the file COPYING3.  If not see
 #undef CPP_SPEC
 #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"

+#define LINUX_TARGET_CC1_SPEC "%(cc1_cpu) %{profile:-p}"
+
 #undef CC1_SPEC
-#define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
+#define CC1_SPEC \
+  LINUX_OR_ANDROID_CC (LINUX_TARGET_CC1_SPEC, \
+		       LINUX_TARGET_CC1_SPEC " " ANDROID_CC1_SPEC)
+
+#define CC1PLUS_SPEC \
+  LINUX_OR_ANDROID_CC ("", ANDROID_CC1PLUS_SPEC)

 /* Provide a LINK_SPEC appropriate for GNU userspace.  Here we provide support
    for the special GCC options -static and -shared, which allow us to
@@ -97,22 +104,42 @@ along with GCC; see the file COPYING3.  If not see
   { "link_emulation", GNU_USER_LINK_EMULATION },\
   { "dynamic_linker", GNU_USER_DYNAMIC_LINKER }

-#undef	LINK_SPEC
-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
+#define LINUX_TARGET_LINK_SPEC \
+  "-m %(link_emulation) %{shared:-shared} \
   %{!shared: \
     %{!static: \
       %{rdynamic:-export-dynamic} \
       -dynamic-linker %(dynamic_linker)} \
       %{static:-static}}"

+#undef	LINK_SPEC
+#define LINK_SPEC \
+  LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \
+		       LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
+
+#undef  LIB_SPEC
+#define LIB_SPEC \
+  LINUX_OR_ANDROID_LD (GNU_USER_TARGET_LIB_SPEC, \
+		       GNU_USER_TARGET_LIB_SPEC " " ANDROID_LIB_SPEC)
+
+#undef  STARTFILE_SPEC
+#define STARTFILE_SPEC \
+  LINUX_OR_ANDROID_LD (GNU_USER_TARGET_STARTFILE_SPEC, \
+		       ANDROID_STARTFILE_SPEC)
+
 /* Similar to standard GNU userspace, but adding -ffast-math support.  */
-#undef  ENDFILE_SPEC
-#define ENDFILE_SPEC \
+#define LINUX_TARGET_ENDFILE_SPEC \
   "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
    %{mpc32:crtprec32.o%s} \
    %{mpc64:crtprec64.o%s} \
-   %{mpc80:crtprec80.o%s} \
-   %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
+   %{mpc80:crtprec80.o%s}"
+
+#undef  ENDFILE_SPEC
+#define ENDFILE_SPEC \
+  LINUX_OR_ANDROID_LD (LINUX_TARGET_ENDFILE_SPEC " " \
+		       GNU_USER_TARGET_ENDFILE_SPEC, \
+		       LINUX_TARGET_ENDFILE_SPEC " "\
+		       ANDROID_ENDFILE_SPEC)

 /* A C statement (sans semicolon) to output to the stdio stream
    FILE the assembler definition of uninitialized global DECL named
diff --git a/gcc/config/linux-android.h b/gcc/config/linux-android.h
index 94c5274..acbc662 100644
--- a/gcc/config/linux-android.h
+++ b/gcc/config/linux-android.h
@@ -53,8 +53,8 @@
   "%{!static: -ldl}"

 #define ANDROID_STARTFILE_SPEC						\
-  "%{!shared:"								\
+  "%{shared: crtbegin_so%O%s;:"						\
   "  %{static: crtbegin_static%O%s;: crtbegin_dynamic%O%s}}"

 #define ANDROID_ENDFILE_SPEC \
-  "%{!shared: crtend_android%O%s}"
+  "%{shared: crtend_so%O%s;: crtend_android%O%s}"

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2012-04-12 11:19 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-22 14:58 [PATCH, i386, Android] -mandroid support for i386 target Ilya Enkovich
2012-02-22 17:50 ` H.J. Lu
2012-02-24 15:57   ` Ilya Enkovich
2012-02-24 16:17     ` H.J. Lu
2012-02-27 15:19       ` Ilya Enkovich
2012-03-13 11:13         ` Ilya Enkovich
2012-03-27 13:56           ` Ilya Enkovich
2012-03-28 22:58             ` Jing Yu
2012-03-29  4:21         ` Maxim Kuvyrkov
2012-04-01 15:23           ` Ilya Enkovich
2012-04-01 16:13             ` H.J. Lu
2012-04-01 19:33             ` Maxim Kuvyrkov
2012-04-02 14:16               ` Ilya Enkovich
2012-04-02 14:27                 ` H.J. Lu
2012-04-02 17:06                 ` Maxim Kuvyrkov
2012-04-03 10:50                   ` Ilya Enkovich
2012-04-03 14:56                     ` H.J. Lu
2012-04-03 19:42                       ` Maxim Kuvyrkov
2012-04-03 21:13                         ` Ilya Enkovich
2012-04-03 21:02                       ` Ilya Enkovich
2012-04-10 12:42                         ` Ilya Enkovich
2012-04-11 16:24                         ` H.J. Lu
2012-04-12 11:19                           ` Ilya Enkovich
2012-03-29 17:49         ` Jan Hubicka
2012-04-01 15:39           ` Ilya Enkovich
2012-04-01 19:40           ` Maxim Kuvyrkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).