https://gcc.gnu.org/g:352cc9b57b2cfd62e37c962b6d2a83ed6d4827d2

commit r16-3336-g352cc9b57b2cfd62e37c962b6d2a83ed6d4827d2
Author: Dimitar Dimitrov <dimi...@dinux.eu>
Date:   Sat Aug 16 21:52:52 2025 +0300

    pru: Define multilib for different core variants
    
    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 <dimi...@dinux.eu>

Diff:
---
 gcc/config.gcc            |  2 +-
 gcc/config/pru/pru.h      |  3 +++
 gcc/config/pru/t-multilib | 29 +++++++++++++++++++++++++++++
 3 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/gcc/config.gcc b/gcc/config.gcc
index 517df40e5dee..db813a7b561c 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -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
        ;;
diff --git a/gcc/config/pru/pru.h b/gcc/config/pru/pru.h
index 6c0719b5c1dc..9d547ed3bad0 100644
--- a/gcc/config/pru/pru.h
+++ b/gcc/config/pru/pru.h
@@ -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
index 000000000000..1e3c2b8abaa7
--- /dev/null
+++ b/gcc/config/pru/t-multilib
@@ -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

Reply via email to