summaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-29 16:35:50 +0000
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-29 16:35:50 +0000
commit54bb64fbe8d743332bb0db61c134ecc15f4ebad1 (patch)
tree6dbe0080708b237eae8a1799f1ffc73557ea0f1e /gcc/config
parentc3faca2458e212d326ecabf0e6e6cd8a135a60c6 (diff)
downloadgcc-54bb64fbe8d743332bb0db61c134ecc15f4ebad1.tar.gz
gcc:
* config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all. Handle tuning for bi-arch i[34567]86-*-linux* like that for i[34567]86-*-solaris2.1[0-9]*. * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS): Define conditionally depending on TARGET_64BIT_DEFAULT. (SPEC_32, SPEC_64): Define. (LINK_SPEC): Use them. * doc/install.texi (--enable-targets=all): Document for x86-linux. libcpp: * configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux* depending on --enable-targets=all. * configure: Regenerate. fixincludes: * inclhack.def (AAB_fd_zero_asm_posix_types_h): Bypass on x86_64. * fixincl.x: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118147 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/i386/linux64.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
index cc8ed16f229..2d0c7bf90f2 100644
--- a/gcc/config/i386/linux64.h
+++ b/gcc/config/i386/linux64.h
@@ -19,7 +19,11 @@ along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
+#if TARGET_64BIT_DEFAULT
#define TARGET_VERSION fprintf (stderr, " (x86-64 Linux/ELF)");
+#else
+#define TARGET_VERSION fprintf (stderr, " (i386 Linux/ELF)");
+#endif
#define TARGET_OS_CPP_BUILTINS() \
do \
@@ -52,14 +56,22 @@ Boston, MA 02110-1301, USA. */
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
+#if TARGET_64BIT_DEFAULT
+#define SPEC_32 "m32"
+#define SPEC_64 "!m32"
+#else
+#define SPEC_32 "!m64"
+#define SPEC_64 "m64"
+#endif
+
#undef LINK_SPEC
-#define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
+#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
%{shared:-shared} \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
- %{m32:%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}} \
- %{!m32:%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}} \
+ %{" SPEC_32 ":%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}} \
+ %{" SPEC_64 ":%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}} \
%{static:-static}}"
/* Similar to standard Linux, but adding -ffast-math support. */
@@ -68,7 +80,11 @@ Boston, MA 02110-1301, USA. */
"%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
+#if TARGET_64BIT_DEFAULT
#define MULTILIB_DEFAULTS { "m64" }
+#else
+#define MULTILIB_DEFAULTS { "m32" }
+#endif
#undef NEED_INDICATE_EXEC_STACK
#define NEED_INDICATE_EXEC_STACK 1