diff options
author | Dimitar Dimitrov <dimitar@dinux.eu> | 2025-08-16 21:52:52 +0300 |
---|---|---|
committer | Dimitar Dimitrov <dimitar@dinux.eu> | 2025-08-21 21:43:05 +0300 |
commit | 352cc9b57b2cfd62e37c962b6d2a83ed6d4827d2 (patch) | |
tree | d0c1c4ef1122363d6c5955b011b42aff1400769b | |
parent | 7968ba80b99fa3809628fe71753909edc7ee3186 (diff) | |
download | gcc-352cc9b57b2cfd62e37c962b6d2a83ed6d4827d2.zip gcc-352cc9b57b2cfd62e37c962b6d2a83ed6d4827d2.tar.gz gcc-352cc9b57b2cfd62e37c962b6d2a83ed6d4827d2.tar.bz2 |
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 <dimitar@dinux.eu>
-rw-r--r-- | gcc/config.gcc | 2 | ||||
-rw-r--r-- | gcc/config/pru/pru.h | 3 | ||||
-rw-r--r-- | gcc/config/pru/t-multilib | 29 |
3 files changed, 33 insertions, 1 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc index 517df40..db813a7 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 6c0719b..9d547ed 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 0000000..1e3c2b8 --- /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 |