]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: freebsd64.h: Add bits for 32-bit multilib support.
authorAndreas Tobler <andreast@gcc.gnu.org>
Sat, 11 May 2019 20:43:00 +0000 (22:43 +0200)
committerAndreas Tobler <andreast@gcc.gnu.org>
Sat, 11 May 2019 20:43:00 +0000 (22:43 +0200)
2019-05-11  Andreas Tobler <andreast@gcc.gnu.org>

Backport from mainline.
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: r271099

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

index c62f7e5ba0a65553ea3b3583697059dc00ddc28b..a0a8ae949ef4c7350cee7c00fef2127ba4e893ff 100644 (file)
@@ -1,3 +1,12 @@
+2019-05-11  Andreas Tobler <andreast@gcc.gnu.org>
+
+       Backport from mainline.
+       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-05-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
 
        Backport from mainline.
index 09fb9ecd2cdb437d07b2d825151bb38e4b257d98..c7a464c89d06a427ce5b02976068b56054936adc 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 1f99e812f015b92e2719dbcb24828a829ba9c81f..bffe19c14fff225af247d56d70b9e71da9825074 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