]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
pru: Define multilib for different core variants
authorDimitar Dimitrov <dimitar@dinux.eu>
Sat, 16 Aug 2025 18:52:52 +0000 (21:52 +0300)
committerDimitar Dimitrov <dimitar@dinux.eu>
Thu, 21 Aug 2025 18:43:05 +0000 (21:43 +0300)
Enable multilib builds for contemporary PRU core versions (AM335x and
later), and older versions present in AM18xx.

gcc/ChangeLog:

* config.gcc: Include pru/t-multilib.
* config/pru/pru.h (MULTILIB_DEFAULTS): Define.
* config/pru/t-multilib: New file.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
gcc/config.gcc
gcc/config/pru/pru.h
gcc/config/pru/t-multilib [new file with mode: 0644]

index 517df40e5deef3338a1a1fae285f3ab9062c1b40..db813a7b561c4576b4a2f1b23e071514986bd9ad 100644 (file)
@@ -3207,7 +3207,7 @@ powerpcle-*-eabi*)
        ;;
 pru*-*-*)
        tm_file="elfos.h newlib-stdint.h ${tm_file}"
-       tmake_file="${tmake_file} pru/t-pru"
+       tmake_file="${tmake_file} pru/t-multilib pru/t-pru"
        extra_objs="pru-pragma.o pru-passes.o"
        use_gcc_stdint=wrap
        ;;
index 6c0719b5c1dc78c3ded61276289250eeecf43c85..9d547ed3bad0a223761ac28d3f5c3230ab7c2f98 100644 (file)
@@ -65,6 +65,9 @@
 #undef  ENDFILE_SPEC
 #define ENDFILE_SPEC "%{!mabi=ti:-lgloss} "
 
+#undef  MULTILIB_DEFAULTS
+#define MULTILIB_DEFAULTS { "mloop", "mmul", "mfillzero" }
+
 /* TI ABI mandates that ELF symbols do not start with any prefix.  */
 #undef USER_LABEL_PREFIX
 #define USER_LABEL_PREFIX ""
diff --git a/gcc/config/pru/t-multilib b/gcc/config/pru/t-multilib
new file mode 100644 (file)
index 0000000..1e3c2b8
--- /dev/null
@@ -0,0 +1,29 @@
+# Copyright (C) 2025 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/>.
+
+MULTILIB_OPTIONS   =
+MULTILIB_OPTIONS  += mloop/mno-loop
+MULTILIB_OPTIONS  += mmul/mno-mul
+MULTILIB_OPTIONS  += mfillzero/mno-fillzero
+
+# Build two variants:
+#   - Newer PRU core versions, present in AM335x and later.
+#   - Older PRU core versions, present in AM18xx.
+MULTILIB_REQUIRED  =
+MULTILIB_REQUIRED += mloop/mmul/mfillzero
+MULTILIB_REQUIRED += mno-loop/mno-mul/mno-fillzero