xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/config/linux-android.h (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
11debfc3dSmrg /* Configuration file for Linux Android targets.
2*8feb0f0bSmrg    Copyright (C) 2008-2020 Free Software Foundation, Inc.
31debfc3dSmrg    Contributed by Doug Kwan (dougkwan@google.com)
41debfc3dSmrg    Rewritten by CodeSourcery, Inc.
51debfc3dSmrg 
61debfc3dSmrg    This file is part of GCC.
71debfc3dSmrg 
81debfc3dSmrg    GCC is free software; you can redistribute it and/or modify it
91debfc3dSmrg    under the terms of the GNU General Public License as published
101debfc3dSmrg    by the Free Software Foundation; either version 3, or (at your
111debfc3dSmrg    option) any later version.
121debfc3dSmrg 
131debfc3dSmrg    GCC is distributed in the hope that it will be useful, but WITHOUT
141debfc3dSmrg    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
151debfc3dSmrg    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
161debfc3dSmrg    License for more details.
171debfc3dSmrg 
181debfc3dSmrg    You should have received a copy of the GNU General Public License
191debfc3dSmrg    along with GCC; see the file COPYING3.  If not see
201debfc3dSmrg    <http://www.gnu.org/licenses/>.  */
211debfc3dSmrg 
221debfc3dSmrg #define ANDROID_TARGET_OS_CPP_BUILTINS()			\
231debfc3dSmrg     do {							\
241debfc3dSmrg 	if (TARGET_ANDROID)					\
251debfc3dSmrg 	  builtin_define ("__ANDROID__");			\
261debfc3dSmrg     } while (0)
271debfc3dSmrg 
28c0a68be4Smrg #define ANDROID_TARGET_D_OS_VERSIONS()				\
29c0a68be4Smrg     do {							\
30c0a68be4Smrg 	if (TARGET_ANDROID)					\
31c0a68be4Smrg 	  builtin_version ("Android");				\
32c0a68be4Smrg     } while (0)
33c0a68be4Smrg 
341debfc3dSmrg #if ANDROID_DEFAULT
351debfc3dSmrg # define NOANDROID "mno-android"
361debfc3dSmrg #else
371debfc3dSmrg # define NOANDROID "!mandroid"
381debfc3dSmrg #endif
391debfc3dSmrg 
401debfc3dSmrg #define LINUX_OR_ANDROID_CC(LINUX_SPEC, ANDROID_SPEC) \
411debfc3dSmrg   "%{" NOANDROID "|tno-android-cc:" LINUX_SPEC ";:" ANDROID_SPEC "}"
421debfc3dSmrg 
431debfc3dSmrg #define LINUX_OR_ANDROID_LD(LINUX_SPEC, ANDROID_SPEC) \
441debfc3dSmrg   "%{" NOANDROID "|tno-android-ld:" LINUX_SPEC ";:" ANDROID_SPEC "}"
451debfc3dSmrg 
461debfc3dSmrg #define ANDROID_LINK_SPEC \
471debfc3dSmrg   "%{shared: -Bsymbolic}"
481debfc3dSmrg 
491debfc3dSmrg #define ANDROID_CC1_SPEC						\
501debfc3dSmrg   "%{!mglibc:%{!muclibc:%{!mbionic: -mbionic}}} "			\
511debfc3dSmrg   "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC}}}}"
521debfc3dSmrg 
531debfc3dSmrg #define ANDROID_CC1PLUS_SPEC						\
541debfc3dSmrg   "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} "		\
551debfc3dSmrg   "%{!frtti:%{!fno-rtti: -fno-rtti}}"
561debfc3dSmrg 
571debfc3dSmrg #define ANDROID_LIB_SPEC \
581debfc3dSmrg   "%{!static: -ldl}"
591debfc3dSmrg 
601debfc3dSmrg #define ANDROID_STARTFILE_SPEC						\
611debfc3dSmrg   "%{shared: crtbegin_so%O%s;:"						\
621debfc3dSmrg   "  %{static: crtbegin_static%O%s;: crtbegin_dynamic%O%s}}"
631debfc3dSmrg 
641debfc3dSmrg #define ANDROID_ENDFILE_SPEC \
651debfc3dSmrg   "%{shared: crtend_so%O%s;: crtend_android%O%s}"
66