freebsd64.h: Add bits for 32-bit multilib support.
authorAndreas Tobler <andreast@gcc.gnu.org>
Thu, 25 Apr 2019 20:03:35 +0000 (22:03 +0200)
committerAndreas Tobler <andreast@gcc.gnu.org>
Thu, 25 Apr 2019 20:03:35 +0000 (22:03 +0200)
2019-04-25  Andreas Tobler  <andreast@gcc.gnu.org>

        * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
        * config/i386/t-freebsd64: New file.
        * config.gcc: Add the t-freebsd64 for multilib support.

From-SVN: r270586

gcc/ChangeLog
gcc/config.gcc
gcc/config/i386/freebsd64.h
gcc/config/i386/t-freebsd64 [new file with mode: 0644]

index 7cd02c8..3a927ed 100644 (file)
@@ -1,3 +1,9 @@
+2019-04-25  Andreas Tobler  <andreast@gcc.gnu.org>
+
+       * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
+       * config/i386/t-freebsd64: New file.
+       * config.gcc: Add the t-freebsd64 for multilib support.
+
 2019-04-25  Uroš Bizjak  <ubizjak@gmail.com>
 
        * doc/extend.texi (vector_size): Add missing comma after @xref.
index 09fb9ec..c7a464c 100644 (file)
@@ -4927,7 +4927,10 @@ case ${target} in
                ;;
        i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
                ;;
-       i[34567]86-*-freebsd* | x86_64-*-freebsd*)
+       i[34567]86-*-freebsd*)
+               ;;
+       x86_64-*-freebsd*)
+               tmake_file="${tmake_file} i386/t-freebsd64"
                ;;
        ia64*-*-linux*)
                ;;
index 1f99e81..bffe19c 100644 (file)
@@ -31,7 +31,7 @@ along with GCC; see the file COPYING3.  If not see
 
 #undef LINK_SPEC
 #define LINK_SPEC "\
-  %{m32:-m elf_i386_fbsd} \
+  %{m32:-m elf_i386_fbsd}%{!m32:-m elf_x86_64_fbsd} \
   %{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \
   %{v:-V} \
   %{assert*} %{R*} %{rpath*} %{defsym*} \
@@ -42,3 +42,6 @@ along with GCC; see the file COPYING3.  If not see
        -dynamic-linker %(fbsd_dynamic_linker) } \
     %{static:-Bstatic}} \
   %{symbolic:-Bsymbolic}"
+
+#undef MULTILIB_DEFAULTS
+#define MULTILIB_DEFAULTS { "m64" }
diff --git a/gcc/config/i386/t-freebsd64 b/gcc/config/i386/t-freebsd64
new file mode 100644 (file)
index 0000000..0dd05d4
--- /dev/null
@@ -0,0 +1,30 @@
+# Copyright (C) 2019 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+
+# The 32-bit libraries are found in /usr/lib32
+
+# To support i386 and x86-64, the directory structrue
+# should be:
+#
+#      /lib has x86-64 libraries.
+#      /lib32 has i386 libraries.
+#
+
+MULTILIB_OPTIONS    = m32
+MULTILIB_DIRNAMES   = 32
+MULTILIB_OSDIRNAMES = ../lib32