From: Cooper Qu <cooper...@linux.alibaba.com> This patch has been pushed.
C-SKY previously used a forked print-sysroot-suffix.sh and define CSKY_MULTILIB_DIRNAMES to specify OS multilib directories. This patch delete the forked print-sysroot-suffix.sh and define MULTILIB_DIRNAMES to generate same directories. gcc/ * config.gcc: Don't use forked print-sysroot-suffix.sh and t-sysroot-suffix for C-SKY. * config/csky/print-sysroot-suffix.sh: Delete. * config/csky/t-csky-linux: Delete. * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES instead of CSKY_MULTILIB_DIRNAMES. --- gcc/config.gcc | 5 - gcc/config/csky/print-sysroot-suffix.sh | 147 ------------------------ gcc/config/csky/t-csky-linux | 2 +- gcc/config/csky/t-sysroot-suffix | 28 ----- 4 files changed, 1 insertion(+), 181 deletions(-) delete mode 100644 gcc/config/csky/print-sysroot-suffix.sh delete mode 100644 gcc/config/csky/t-sysroot-suffix diff --git a/gcc/config.gcc b/gcc/config.gcc index f3e94f7c0d8..93e2b3219b9 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1568,11 +1568,6 @@ csky-*-*) tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h" tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux" - if test "x${enable_multilib}" = xyes ; then - tm_file="$tm_file ./sysroot-suffix.h" - tmake_file="${tmake_file} csky/t-sysroot-suffix" - fi - case ${target} in csky-*-linux-gnu*) tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC" diff --git a/gcc/config/csky/print-sysroot-suffix.sh b/gcc/config/csky/print-sysroot-suffix.sh deleted file mode 100644 index 4840bc67d07..00000000000 --- a/gcc/config/csky/print-sysroot-suffix.sh +++ /dev/null @@ -1,147 +0,0 @@ -#! /bin/sh -# Script to generate SYSROOT_SUFFIX_SPEC equivalent to MULTILIB_OSDIRNAMES -# Arguments are MULTILIB_OSDIRNAMES, MULTILIB_OPTIONS and MULTILIB_MATCHES. - -# Copyright (C) 2018-2021 Free Software Foundation, Inc. -# Contributed by C-SKY Microsystems and Mentor Graphics. - -# 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/>. - -# This shell script produces a header file fragment that defines -# SYSROOT_SUFFIX_SPEC. It assumes that the sysroots will have the same -# structure and names used by the multilibs. - -# Invocation: -# print-sysroot-suffix.sh \ -# MULTILIB_OSDIRNAMES \ -# MULTILIB_OPTIONS \ -# MULTILIB_MATCHES \ -# > t-sysroot-suffix.h - -# The three options exactly correspond to the variables of the same -# names defined in the tmake_file fragments. - -# Example: -# sh ./gcc/config/print-sysroot-suffix.sh "a=A" "a b/c/d" "" -# => -# #undef SYSROOT_SUFFIX_SPEC -# #define SYSROOT_SUFFIX_SPEC "" \ -# "%{a:" \ -# "%{b:A/b/;" \ -# "c:A/c/;" \ -# "d:A/d/;" \ -# ":A/};" \ -# ":}" - -# The script uses temporary subscripts in order to permit a recursive -# algorithm without the use of functions. - -set -e - -dirnames="$1" -options="$2" -matches="$3" - -cat > print-sysroot-suffix3.sh <<\EOF -#! /bin/sh -# Print all the multilib matches for this option -result="$1" -EOF -for x in $matches; do - l=`echo $x | sed -e 's/=.*$//' -e 's/?/=/g'` - r=`echo $x | sed -e 's/^.*=//' -e 's/?/=/g'` - echo "[ \"\$1\" = \"$l\" ] && result=\"\$result|$r\"" >> print-sysroot-suffix3.sh -done -echo 'echo $result' >> print-sysroot-suffix3.sh -chmod +x print-sysroot-suffix3.sh - -cat > print-sysroot-suffix2.sh <<\EOF -#! /bin/sh -# Recursive script to enumerate all multilib combinations, match against -# multilib directories and output a spec string of the result. -# Will fold identical trees. - -padding="$1" -optstring="$2" -shift 2 -n="\" \\ -$padding\"" -if [ $# = 0 ]; then -EOF - -pat= -for x in $dirnames; do -# p=`echo $x | sed -e 's,=!,/$=/,'` - p=`echo $x | sed -e 's/=//g'` -# pat="$pat -e 's=^//$p='" - pat="$pat -e 's/$p/g'" -done -echo ' optstring=`echo "/$optstring" | sed '"$pat\`" >> print-sysroot-suffix2.sh -cat >> print-sysroot-suffix2.sh <<\EOF - case $optstring in - //*) - ;; - *) - echo "$optstring" - ;; - esac -else - thisopt="$1" - shift - bit= - lastcond= - result= - for x in `echo "$thisopt" | sed -e 's,/, ,g'`; do - case $x in -EOF -for x in `echo "$options" | sed -e 's,/, ,g'`; do - match=`./print-sysroot-suffix3.sh "$x"` - echo "$x) optmatch=\"$match\" ;;" >> print-sysroot-suffix2.sh -done -cat >> print-sysroot-suffix2.sh <<\EOF - esac - bit=`"$0" "$padding " "$optstring$x/" "$@"` - if [ -z "$lastopt" ]; then - lastopt="$optmatch" - else - if [ "$lastbit" = "$bit" ]; then - lastopt="$lastopt|$optmatch" - else - result="$result$lastopt:$lastbit;$n" - lastopt="$optmatch" - fi - fi - lastbit="$bit" - done - bit=`"$0" "$padding " "$optstring" "$@"` - if [ "$bit" = "$lastbit" ]; then - if [ -z "$result" ]; then - echo "$bit" - else - echo "$n%{$result:$bit}" - fi - else - echo "$n%{$result$lastopt:$lastbit;$n:$bit}" - fi -fi -EOF -chmod +x ./print-sysroot-suffix2.sh -result=`./print-sysroot-suffix2.sh \"\" \"\" $options` -echo "#undef SYSROOT_SUFFIX_SPEC" -echo "#define SYSROOT_SUFFIX_SPEC \"$result\"" -rm print-sysroot-suffix2.sh -rm print-sysroot-suffix3.sh diff --git a/gcc/config/csky/t-csky-linux b/gcc/config/csky/t-csky-linux index 0730c3a498a..9139040d31b 100644 --- a/gcc/config/csky/t-csky-linux +++ b/gcc/config/csky/t-csky-linux @@ -21,7 +21,7 @@ MULTILIB_EXCEPTIONS = -CSKY_MULTILIB_OSDIRNAMES = mfloat-abi.softfp=/soft-fp mfloat-abi.hard=/hard-fp mfloat-abi.soft=/. mcpu.ck810f=/. mcpu.ck807f=/ck807 mcpu.ck860f=/ck860 +MULTILIB_OSDIRNAMES = ./ ./ck807 ./ck860 ./ ./soft-fp ./hard-fp # Arch variants. MULTILIB_OPTIONS += mcpu=ck810f/mcpu=ck807f/mcpu=ck860f diff --git a/gcc/config/csky/t-sysroot-suffix b/gcc/config/csky/t-sysroot-suffix deleted file mode 100644 index d891f699c80..00000000000 --- a/gcc/config/csky/t-sysroot-suffix +++ /dev/null @@ -1,28 +0,0 @@ -# Makefile fragment for C-SKY sysroot suffix. -# -# Copyright (C) 2018-2021 Free Software Foundation, Inc. -# Contributed by C-SKY Microsystems and Mentor Graphics. -# -# 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/>. - -# Generate SYSROOT_SUFFIX_SPEC from MULTILIB_OSDIRNAMES. - -sysroot-suffix.h: $(srcdir)/config/csky/print-sysroot-suffix.sh - $(SHELL) $(srcdir)/config/csky/print-sysroot-suffix.sh \ - "$(CSKY_MULTILIB_OSDIRNAMES)" "$(MULTILIB_OPTIONS)" \ - "$(MULTILIB_MATCHES)" > tmp-sysroot-suffix.h - mv tmp-sysroot-suffix.h $@ -- 2.26.2