From 87f736c0f346e5cc946063a4e97a97ffe8c109b9 Mon Sep 17 00:00:00 2001 From: jchzhou Date: Tue, 5 Nov 2024 12:00:37 +0800 Subject: [PATCH] Sync patch for fixing building issues with clang; replace %patchN with %patch -P N Src: https://gitee.com/openeuler/gcc/pulls/239 Signed-off-by: YunQiang Su Signed-off-by: jchzhou --- ...k-value-for-print-multi-os-directory.patch | 105 ++++ ...ix-enum-INPUT-MIDDLE-FINAL-aes_stage.patch | 108 +++++ gcc.spec | 453 +++++++++--------- 3 files changed, 444 insertions(+), 222 deletions(-) create mode 100644 0119-Set-fallback-value-for-print-multi-os-directory.patch create mode 100644 0120-Fix-enum-INPUT-MIDDLE-FINAL-aes_stage.patch diff --git a/0119-Set-fallback-value-for-print-multi-os-directory.patch b/0119-Set-fallback-value-for-print-multi-os-directory.patch new file mode 100644 index 0000000..2032f6b --- /dev/null +++ b/0119-Set-fallback-value-for-print-multi-os-directory.patch @@ -0,0 +1,105 @@ +From 0d157b14f361f8319f4694c54c6e01ac8f59d278 Mon Sep 17 00:00:00 2001 +From: YunQiang Su +Date: Tue, 8 Oct 2024 17:56:23 +0800 +Subject: [PATCH 1/2] Set fallback value for -print-multi-os-directory + +Clang doesn't support -print-multi-os-directory option. +So let's set the fallback value (../lib64) if it is empty. + +This is only needed for the projects built by hostcc: + gcc, libcc1, libiberty + +The projects for targets only, will always built by gcc itself. +--- + gcc/configure | 3 +++ + libcc1/configure | 6 ++++++ + libcc1/configure.ac | 3 +++ + libiberty/Makefile.in | 5 ++++- + libtool.m4 | 3 +++ + 5 files changed, 19 insertions(+), 1 deletion(-) + +diff --git a/gcc/configure b/gcc/configure +index 7e64599b0..ef0449edd 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -18598,6 +18598,9 @@ if test "$GCC" = yes; then + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` ++ if [ -z "$lt_multi_os_dir" ];then ++ lt_multi_os_dir=../lib64 ++ fi + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" +diff --git a/libcc1/configure b/libcc1/configure +index 01cfb2806..3c437d690 100755 +--- a/libcc1/configure ++++ b/libcc1/configure +@@ -9701,6 +9701,9 @@ if test "$GCC" = yes; then + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` ++ if [ -z "$lt_multi_os_dir" ];then ++ lt_multi_os_dir=../lib64 ++ fi + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" +@@ -14865,6 +14868,9 @@ libsuffix= + if test "$GXX" = yes; then + libsuffix=`$CXX -print-multi-os-directory` + fi ++if [ -z "$libsuffix" ];then ++ libsuffix=../lib64 ++fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket libraries" >&5 +diff --git a/libcc1/configure.ac b/libcc1/configure.ac +index 36f5a7e09..acd7c4c04 100644 +--- a/libcc1/configure.ac ++++ b/libcc1/configure.ac +@@ -72,6 +72,9 @@ libsuffix= + if test "$GXX" = yes; then + libsuffix=`$CXX -print-multi-os-directory` + fi ++if [ -z "$libsuffix" ];then ++ libsuffix=../lib64 ++fi + AC_SUBST(libsuffix) + + dnl Test for -lsocket and -lnsl. Copied from libgo/configure.ac. +diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in +index 1b17c2e3a..2bfa00de5 100644 +--- a/libiberty/Makefile.in ++++ b/libiberty/Makefile.in +@@ -385,7 +385,10 @@ install-strip: install + # multilib-specific flags, it's overridden by FLAGS_TO_PASS from the + # default multilib, so we have to take CFLAGS into account as well, + # since it will be passed the multilib flags. +-MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory` ++MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory 2>/dev/null` ++ifeq ($(MULTIOSDIR),) ++ MULTIOSDIR = ../lib64 ++endif + install_to_libdir: all + if test -n "${target_header_dir}"; then \ + ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \ +diff --git a/libtool.m4 b/libtool.m4 +index 17f8e5f30..86fc1e705 100644 +--- a/libtool.m4 ++++ b/libtool.m4 +@@ -2059,6 +2059,9 @@ if test "$GCC" = yes; then + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` ++ if [ -z "$lt_multi_os_dir" ];then ++ lt_multi_os_dir=../lib64 ++ fi + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" +-- +2.47.0 + diff --git a/0120-Fix-enum-INPUT-MIDDLE-FINAL-aes_stage.patch b/0120-Fix-enum-INPUT-MIDDLE-FINAL-aes_stage.patch new file mode 100644 index 0000000..a16e937 --- /dev/null +++ b/0120-Fix-enum-INPUT-MIDDLE-FINAL-aes_stage.patch @@ -0,0 +1,108 @@ +From 1624bdceb341e0034c22ce46bc2e422726f76cce Mon Sep 17 00:00:00 2001 +From: YunQiang Su +Date: Tue, 8 Oct 2024 17:59:56 +0800 +Subject: [PATCH 2/2] Fix enum { INPUT, MIDDLE, FINAL } aes_stage + +The FINAL is defined in ansidecl.h. +Let's rename the elements to + aesINPUT, aseMIDDLE, aseFINAL +to avoid conflits. + +I find this problem when trying to build gcc with clang. +In fact FINAL is defined to empty for clang, and `final` for gcc. +So it coincidentally worked for gcc. +--- + gcc/crypto-accel.cc | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/gcc/crypto-accel.cc b/gcc/crypto-accel.cc +index e7766a585..716c4a38b 100644 +--- a/gcc/crypto-accel.cc ++++ b/gcc/crypto-accel.cc +@@ -1251,7 +1251,7 @@ public: + + /* AES stage description. Required for some specializations + for curtain rounds. */ +-typedef enum { INPUT, MIDDLE, FINAL } aes_stage; ++typedef enum { aesINPUT, aesMIDDLE, aesFINAL } aes_stage; + + /* AES entity description. It can be both round or state inside round. + It provides interface for unified analysis between blocks of 4 parts: +@@ -1356,7 +1356,7 @@ struct state_input + + /* Input round state uses special input. */ + template<> +-struct state_input ++struct state_input + { + typedef std::pair type; + +@@ -1389,7 +1389,7 @@ struct state_output + + /* Final round state generates special output. */ + template<> +-struct state_output ++struct state_output + { + typedef std::pair type; + +@@ -1409,7 +1409,7 @@ struct round_input + + /* Input round uses special input just as its state. */ + template<> +-struct round_input ++struct round_input + { + typedef std::pair type; + }; +@@ -1437,7 +1437,7 @@ struct round_output + AES encryption. */ + template<> + template<> +-void round_output::reorder (type &out) ++void round_output::reorder (type &out) + { + gcc_assert (out.size () == 4); + std::swap (out[1], out[3]); +@@ -1445,14 +1445,14 @@ void round_output::reorder (type &out) + + template<> + template<> +-void round_output::reorder (type &out) ++void round_output::reorder (type &out) + { +- round_output::reorder (out); ++ round_output::reorder (out); + } + + /* Final round generates special output. */ + template<> +-struct round_output : state_output ++struct round_output : state_output + { + template + static void finalize (type &out, const T &v) +@@ -1644,14 +1644,14 @@ public: + typedef std::map > table_ref_map; + + /* AES states typedefs. */ +- typedef aes_state aes_input_state; +- typedef aes_state, MIDDLE, T> aes_body_state; +- typedef aes_state, FINAL, T> aes_final_state; ++ typedef aes_state aes_input_state; ++ typedef aes_state, aesMIDDLE, T> aes_body_state; ++ typedef aes_state, aesFINAL, T> aes_final_state; + + /* AES rounds typedefs. */ +- typedef aes_round aes_input_round; +- typedef aes_round, MIDDLE, T> aes_body_round; +- typedef aes_round, FINAL, T> aes_final_round; ++ typedef aes_round aes_input_round; ++ typedef aes_round, aesMIDDLE, T> aes_body_round; ++ typedef aes_round, aesFINAL, T> aes_final_round; + + bool run (); + +-- +2.47.0 + diff --git a/gcc.spec b/gcc.spec index d07dc9c..225b366 100644 --- a/gcc.spec +++ b/gcc.spec @@ -2,7 +2,7 @@ %global gcc_major 12 # Note, gcc_release must be integer, if you want to add suffixes to # %%{release}, append them after %%{gcc_release} on Release: line. -%global gcc_release 37 +%global gcc_release 38 %global _unpackaged_files_terminate_build 0 %global _performance_build 1 @@ -224,6 +224,8 @@ Patch115: 0115-aarch64-Make-stack-smash-canary-protect-saved-registers.patch Patch116: 0116-aarch64-Fix-return-register-handling-in-untyped_call.patch Patch117: 0117-aarch64-Fix-loose-ldpstp-check.patch Patch118: 0118-RISC-V-Install-libstdc-libcc1-etc-to-lib64-instead-o.patch +Patch119: 0119-Set-fallback-value-for-print-multi-os-directory.patch +Patch120: 0120-Fix-enum-INPUT-MIDDLE-FINAL-aes_stage.patch # Part 3000 ~ 4999 %ifarch loongarch64 @@ -827,230 +829,232 @@ not stable, so plugins must be rebuilt any time GCC is updated. %prep %setup -q -n gcc-12.3.0 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 -%patch18 -p1 -%patch19 -p1 -%patch20 -p1 -%patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 -%patch25 -p1 -%patch26 -p1 -%patch27 -p1 -%patch28 -p1 -%patch29 -p1 -%patch30 -p1 -%patch31 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p1 -%patch39 -p1 -%patch40 -p1 -%patch41 -p1 -%patch42 -p1 -%patch43 -p1 -%patch44 -p1 -%patch45 -p1 -%patch46 -p1 -%patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 -%patch51 -p1 -%patch52 -p1 -%patch53 -p1 -%patch54 -p1 -%patch55 -p1 -%patch56 -p1 -%patch57 -p1 -%patch86 -p1 -%patch87 -p1 -%patch88 -p1 -%patch89 -p1 -%patch90 -p1 -%patch91 -p1 -%patch92 -p1 -%patch93 -p1 -%patch94 -p1 -%patch95 -p1 -%patch96 -p1 -%patch97 -p1 -%patch98 -p1 -%patch99 -p1 -%patch100 -p1 -%patch101 -p1 -%patch102 -p1 -%patch103 -p1 -%patch104 -p1 -%patch105 -p1 -%patch106 -p1 -%patch107 -p1 -%patch108 -p1 -%patch109 -p1 -%patch110 -p1 -%patch111 -p1 -%patch112 -p1 -%patch113 -p1 -%patch114 -p1 -%patch115 -p1 -%patch116 -p1 -%patch117 -p1 -%patch118 -p1 +%patch -P1 -p1 +%patch -P2 -p1 +%patch -P3 -p1 +%patch -P4 -p1 +%patch -P6 -p1 +%patch -P7 -p1 +%patch -P8 -p1 +%patch -P9 -p1 +%patch -P10 -p1 +%patch -P11 -p1 +%patch -P12 -p1 +%patch -P13 -p1 +%patch -P14 -p1 +%patch -P15 -p1 +%patch -P16 -p1 +%patch -P17 -p1 +%patch -P18 -p1 +%patch -P19 -p1 +%patch -P20 -p1 +%patch -P21 -p1 +%patch -P22 -p1 +%patch -P23 -p1 +%patch -P24 -p1 +%patch -P25 -p1 +%patch -P26 -p1 +%patch -P27 -p1 +%patch -P28 -p1 +%patch -P29 -p1 +%patch -P30 -p1 +%patch -P31 -p1 +%patch -P32 -p1 +%patch -P33 -p1 +%patch -P34 -p1 +%patch -P35 -p1 +%patch -P36 -p1 +%patch -P37 -p1 +%patch -P38 -p1 +%patch -P39 -p1 +%patch -P40 -p1 +%patch -P41 -p1 +%patch -P42 -p1 +%patch -P43 -p1 +%patch -P44 -p1 +%patch -P45 -p1 +%patch -P46 -p1 +%patch -P47 -p1 +%patch -P48 -p1 +%patch -P49 -p1 +%patch -P50 -p1 +%patch -P51 -p1 +%patch -P52 -p1 +%patch -P53 -p1 +%patch -P54 -p1 +%patch -P55 -p1 +%patch -P56 -p1 +%patch -P57 -p1 +%patch -P86 -p1 +%patch -P87 -p1 +%patch -P88 -p1 +%patch -P89 -p1 +%patch -P90 -p1 +%patch -P91 -p1 +%patch -P92 -p1 +%patch -P93 -p1 +%patch -P94 -p1 +%patch -P95 -p1 +%patch -P96 -p1 +%patch -P97 -p1 +%patch -P98 -p1 +%patch -P99 -p1 +%patch -P100 -p1 +%patch -P101 -p1 +%patch -P102 -p1 +%patch -P103 -p1 +%patch -P104 -p1 +%patch -P105 -p1 +%patch -P106 -p1 +%patch -P107 -p1 +%patch -P108 -p1 +%patch -P109 -p1 +%patch -P110 -p1 +%patch -P111 -p1 +%patch -P112 -p1 +%patch -P113 -p1 +%patch -P114 -p1 +%patch -P115 -p1 +%patch -P116 -p1 +%patch -P117 -p1 +%patch -P118 -p1 +%patch -P119 -p1 +%patch -P120 -p1 %ifarch loongarch64 -%patch3001 -p1 -%patch3002 -p1 -%patch3003 -p1 -%patch3004 -p1 -%patch3005 -p1 -%patch3006 -p1 -%patch3007 -p1 -%patch3008 -p1 -%patch3009 -p1 -%patch3010 -p1 -%patch3011 -p1 -%patch3012 -p1 -%patch3013 -p1 -%patch3014 -p1 -%patch3015 -p1 -%patch3016 -p1 -%patch3017 -p1 -%patch3018 -p1 -%patch3019 -p1 -%patch3020 -p1 -%patch3021 -p1 -%patch3022 -p1 -%patch3023 -p1 -%patch3024 -p1 -%patch3025 -p1 -%patch3026 -p1 -%patch3027 -p1 -%patch3028 -p1 -%patch3029 -p1 -%patch3030 -p1 -%patch3031 -p1 -%patch3032 -p1 -%patch3033 -p1 -%patch3034 -p1 -%patch3035 -p1 -%patch3036 -p1 -%patch3037 -p1 -%patch3038 -p1 -%patch3039 -p1 -%patch3040 -p1 -%patch3041 -p1 -%patch3042 -p1 -%patch3043 -p1 -%patch3044 -p1 -%patch3045 -p1 -%patch3046 -p1 -%patch3047 -p1 -%patch3048 -p1 -%patch3049 -p1 -%patch3050 -p1 -%patch3051 -p1 -%patch3052 -p1 -%patch3053 -p1 -%patch3054 -p1 -%patch3056 -p1 -%patch3057 -p1 -%patch3058 -p1 -%patch3059 -p1 -%patch3060 -p1 -%patch3061 -p1 -%patch3062 -p1 -%patch3063 -p1 -%patch3064 -p1 -%patch3065 -p1 -%patch3066 -p1 -%patch3067 -p1 -%patch3068 -p1 -%patch3069 -p1 -%patch3070 -p1 -%patch3071 -p1 -%patch3072 -p1 -%patch3073 -p1 -%patch3074 -p1 -%patch3075 -p1 -%patch3076 -p1 -%patch3077 -p1 -%patch3078 -p1 -%patch3079 -p1 -%patch3080 -p1 -%patch3081 -p1 -%patch3082 -p1 -%patch3083 -p1 -%patch3084 -p1 -%patch3085 -p1 -%patch3086 -p1 -%patch3087 -p1 -%patch3088 -p1 -%patch3089 -p1 -%patch3090 -p1 -%patch3091 -p1 -%patch3092 -p1 -%patch3093 -p1 -%patch3094 -p1 -%patch3095 -p1 -%patch3096 -p1 -%patch3097 -p1 -%patch3098 -p1 -%patch3099 -p1 -%patch3100 -p1 -%patch3101 -p1 -%patch3102 -p1 -%patch3103 -p1 -%patch3104 -p1 -%patch3105 -p1 -%patch3106 -p1 -%patch3107 -p1 -%patch3108 -p1 -%patch3109 -p1 -%patch3110 -p1 -%patch3111 -p1 -%patch3112 -p1 -%patch3113 -p1 -%patch3114 -p1 -%patch3115 -p1 -%patch3116 -p1 -%patch3117 -p1 -%patch3118 -p1 -%patch3119 -p1 -%patch3120 -p1 -%patch3121 -p1 -%patch3122 -p1 -%patch3123 -p1 -%patch3124 -p1 -%patch3125 -p1 -%patch3126 -p1 -%patch3127 -p1 -%patch3128 -p1 -%patch3129 -p1 -%patch3130 -p1 -%patch3131 -p1 -%patch3132 -p1 -%patch3133 -p1 +%patch -P3001 -p1 +%patch -P3002 -p1 +%patch -P3003 -p1 +%patch -P3004 -p1 +%patch -P3005 -p1 +%patch -P3006 -p1 +%patch -P3007 -p1 +%patch -P3008 -p1 +%patch -P3009 -p1 +%patch -P3010 -p1 +%patch -P3011 -p1 +%patch -P3012 -p1 +%patch -P3013 -p1 +%patch -P3014 -p1 +%patch -P3015 -p1 +%patch -P3016 -p1 +%patch -P3017 -p1 +%patch -P3018 -p1 +%patch -P3019 -p1 +%patch -P3020 -p1 +%patch -P3021 -p1 +%patch -P3022 -p1 +%patch -P3023 -p1 +%patch -P3024 -p1 +%patch -P3025 -p1 +%patch -P3026 -p1 +%patch -P3027 -p1 +%patch -P3028 -p1 +%patch -P3029 -p1 +%patch -P3030 -p1 +%patch -P3031 -p1 +%patch -P3032 -p1 +%patch -P3033 -p1 +%patch -P3034 -p1 +%patch -P3035 -p1 +%patch -P3036 -p1 +%patch -P3037 -p1 +%patch -P3038 -p1 +%patch -P3039 -p1 +%patch -P3040 -p1 +%patch -P3041 -p1 +%patch -P3042 -p1 +%patch -P3043 -p1 +%patch -P3044 -p1 +%patch -P3045 -p1 +%patch -P3046 -p1 +%patch -P3047 -p1 +%patch -P3048 -p1 +%patch -P3049 -p1 +%patch -P3050 -p1 +%patch -P3051 -p1 +%patch -P3052 -p1 +%patch -P3053 -p1 +%patch -P3054 -p1 +%patch -P3056 -p1 +%patch -P3057 -p1 +%patch -P3058 -p1 +%patch -P3059 -p1 +%patch -P3060 -p1 +%patch -P3061 -p1 +%patch -P3062 -p1 +%patch -P3063 -p1 +%patch -P3064 -p1 +%patch -P3065 -p1 +%patch -P3066 -p1 +%patch -P3067 -p1 +%patch -P3068 -p1 +%patch -P3069 -p1 +%patch -P3070 -p1 +%patch -P3071 -p1 +%patch -P3072 -p1 +%patch -P3073 -p1 +%patch -P3074 -p1 +%patch -P3075 -p1 +%patch -P3076 -p1 +%patch -P3077 -p1 +%patch -P3078 -p1 +%patch -P3079 -p1 +%patch -P3080 -p1 +%patch -P3081 -p1 +%patch -P3082 -p1 +%patch -P3083 -p1 +%patch -P3084 -p1 +%patch -P3085 -p1 +%patch -P3086 -p1 +%patch -P3087 -p1 +%patch -P3088 -p1 +%patch -P3089 -p1 +%patch -P3090 -p1 +%patch -P3091 -p1 +%patch -P3092 -p1 +%patch -P3093 -p1 +%patch -P3094 -p1 +%patch -P3095 -p1 +%patch -P3096 -p1 +%patch -P3097 -p1 +%patch -P3098 -p1 +%patch -P3099 -p1 +%patch -P3100 -p1 +%patch -P3101 -p1 +%patch -P3102 -p1 +%patch -P3103 -p1 +%patch -P3104 -p1 +%patch -P3105 -p1 +%patch -P3106 -p1 +%patch -P3107 -p1 +%patch -P3108 -p1 +%patch -P3109 -p1 +%patch -P3110 -p1 +%patch -P3111 -p1 +%patch -P3112 -p1 +%patch -P3113 -p1 +%patch -P3114 -p1 +%patch -P3115 -p1 +%patch -P3116 -p1 +%patch -P3117 -p1 +%patch -P3118 -p1 +%patch -P3119 -p1 +%patch -P3120 -p1 +%patch -P3121 -p1 +%patch -P3122 -p1 +%patch -P3123 -p1 +%patch -P3124 -p1 +%patch -P3125 -p1 +%patch -P3126 -p1 +%patch -P3127 -p1 +%patch -P3128 -p1 +%patch -P3129 -p1 +%patch -P3130 -p1 +%patch -P3131 -p1 +%patch -P3132 -p1 +%patch -P3133 -p1 %endif echo '%{_vendor} %{version}-%{release}' > gcc/DEV-PHASE @@ -3319,6 +3323,11 @@ end %doc rpm.doc/changelogs/libcc1/ChangeLog* %changelog +* Fri Nov 01 2024 jchzhou - 12.3.1-38 +- Type: Sync +- DESC: Sync patches for fixing building issues with clang +- Source: https://gitee.com/openeuler/gcc/pulls/239 + * Thu Oct 31 2024 YunQiang Su - 12.3.1-37 - Type: Sync - DESC: RISC-V: Install libstdc++/libcc1 etc to /lib64 instead of lib -- Gitee