[Bug target/87006] Stack Protection with Large File support
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87006 --- Comment #2 from Andreas Schwab --- If you are looking for help in fixing your program you should ask on gcc-h...@gcc.gnu.org.
[Bug target/86994] [9 regression] 64-bit gcc.target/i386/20040112-1.c FAILs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86994 Uroš Bizjak changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2018-08-18 CC||law at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Uroš Bizjak --- It is r263591: 2018-08-16 Vlad Lazar * expmed.h (canonicalize_comparison): New declaration. * expmed.c (canonicalize_comparison, equivalent_cmp_code): New function. * expmed.c (emit_store_flag_1): Add call to canonicalize_comparison. * optabs.c (prepare_cmp_insn): Likewise. * rtl.h (unsigned_condition_p): New function which checks if a comparison operator is unsigned. That now expands with: (insn 12 8 13 4 (set (reg:CCGC 17 flags) (compare:CCGC (reg/v:QI 87 [ status ]) (const_int -1 [0x]))) "20040112-1.c":13 9 {*cmpqi_1} (nil)) instead of: (insn 10 8 11 4 (set (reg:CCGOC 17 flags) (compare:CCGOC (reg/v:QI 87 [ status ]) (const_int 0 [0]))) "20040112-1.c":13 5 {*cmpqi_ccno_1} (nil)) The canonicalization, introduced in r263591 does not universally benefit all targets. I wonder why TARGET_CANONICALIZE_COMPARISON hook was not used instead.
[Bug tree-optimization/86844] [8/9 regression] wrong code caused by store merging pass
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86844 Eric Botcazou changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2018-08-18 CC||ebotcazou at gcc dot gnu.org Known to work||7.3.1 Target Milestone|--- |8.3 Summary|wrong code generation |[8/9 regression] wrong code |caused by store merging |caused by store merging |pass|pass Ever confirmed|0 |1 Known to fail||8.2.1, 9.0
[Bug target/86989] ICE in rs6000_output_addr_const_extra, at config/rs6000/rs6000.c:20994
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86989 Segher Boessenkool changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed|2018-08-17 00:00:00 |2018-08-18 Assignee|unassigned at gcc dot gnu.org |segher at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Segher Boessenkool --- Confirmed. I have a patch.
[Bug target/86987] ICE in simplify_binary_operation_1, at simplify-rtx.c:3515 on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86987 Segher Boessenkool changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed|2018-08-17 00:00:00 |2018-08-18 Ever confirmed|0 |1 --- Comment #1 from Segher Boessenkool --- Confirmed.
[Bug target/87007] New: [8/9 Regression] 10% slowdown with -march=skylake-avx512
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87007 Bug ID: 87007 Summary: [8/9 Regression] 10% slowdown with -march=skylake-avx512 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: hjl.tools at gmail dot com CC: skpgkp1 at gmail dot com Target Milestone: --- Target: i386,x86-64 On Intel Skylake server, r262649 caused 10% slowdown for 538.imagick_r in SPEC CPU 2017 when compiled with: gcc -Ofast -march=skylake-avx512 -mfpmath=sse -fno-associative-math -funroll-loops -flto For [hjl@gnu-cfl-1 skx-2]$ cat foo.i extern float f; extern double d; extern int i; void foo (void) { d = f; f = i; } r262649 turned on sse_partial_reg_dependency, which generates vxorpd %xmm0, %xmm0, %xmm0 vcvtss2sd f(%rip), %xmm0, %xmm0 vmovsd %xmm0, d(%rip) vxorps %xmm0, %xmm0, %xmm0 vcvtsi2ss i(%rip), %xmm0, %xmm0 vmovss %xmm0, f(%rip) ret instead of vcvtss2sd f(%rip), %xmm0, %xmm0 vmovsd %xmm0, d(%rip) vcvtsi2ss i(%rip), %xmm0, %xmm0 vmovss %xmm0, f(%rip) ret One "vxorpd %xmm0, %xmm0, %xmm0" is necessary. But both vxorps %xmm0, %xmm0, %xmm0 and vxorps %xmm0, %xmm0, %xmm0 are bad for performance.
[Bug tree-optimization/87008] New: [8/9 Regression] gimple mem-to-mem assignment badly optimized
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87008 Bug ID: 87008 Summary: [8/9 Regression] gimple mem-to-mem assignment badly optimized Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: glisse at gcc dot gnu.org Target Milestone: --- Created attachment 44554 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44554&action=edit preprocessed testcase Original testcase posted at https://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2018/08/msg00012.html #include using Vec = Eigen::Matrix; Vec f () { Vec sum = Vec::Zero(); for (int i = 0; i < 1024; ++i) { const Vec dirA = sum; const Vec dirB = dirA; sum += dirA.dot(dirB) * dirA; } return sum; } compiled on x86_64 with eigen 3.3.4, -DEIGEN_DONT_VECTORIZE -O3 . The .optimized dump contains MEM[(struct DenseStorage *)&dirA].m_data = MEM[(const struct DenseStorage &)sum_5(D)].m_data; dirA_18 = MEM[(struct plain_array *)&dirA]; dirA$8_3 = MEM[(struct plain_array *)&dirA + 8B]; MEM[(struct DenseStorage *)&dirB].m_data = MEM[(const struct DenseStorage &)&dirA].m_data; dirB_35 = MEM[(struct plain_array *)&dirB]; dirB$8_48 = MEM[(struct plain_array *)&dirB + 8B]; which translates to movdqu (%rax), %xmm1 movaps %xmm1, -40(%rsp) movsd -40(%rsp), %xmm2 movsd -32(%rsp), %xmm0 movaps %xmm1, -24(%rsp) movsd -16(%rsp), %xmm1 movsd -24(%rsp), %xmm5 This is clearly quite bad, we should for instance CSE dirA_18 and dirB_35. This is yet another case where gimple optimizers have a hard time handling mem-to-mem assignment. I think we have relevant code in vn_reference_lookup_3 (case 5 in particular). ESRA used to help. I would also have expected better from RTL optimization, but that may be too optimistic.
[Bug target/86994] [9 regression] 64-bit gcc.target/i386/20040112-1.c FAILs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86994 Andrew Pinski changed: What|Removed |Added Keywords||missed-optimization --- Comment #2 from Andrew Pinski --- >The canonicalization, introduced in r263591 does not universally benefit all >targets. As mentioned in the thread, there is no canonicalization but there a checking of the cost. If x86 cost model is incorrect, you would get the incorrect thing here.
[Bug target/87007] [8/9 Regression] 10% slowdown with -march=skylake-avx512
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87007 H.J. Lu changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2018-08-18 Assignee|unassigned at gcc dot gnu.org |hjl.tools at gmail dot com Ever confirmed|0 |1 --- Comment #1 from H.J. Lu --- Created attachment 44555 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44555&action=edit I am testing this patch
[Bug tree-optimization/87009] New: Can't find XOR pattern applying De Morgan sequentially
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87009 Bug ID: 87009 Summary: Can't find XOR pattern applying De Morgan sequentially Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: mcccs at gmx dot com Target Milestone: --- Optimization: -Ofast Suggested debugging layout: https://godbolt.org/g/ERWctt int xor_int(int a, int b) { ... } Don't work: int x = ~(a|b); return ~(x|a)|~(x|b); return ~(~(a|b)|a)|~(~(a|b)|b); int x = ~a&~b; return ~((x|a)&(x|b)); return ~(((~a&~b)|a)&((~a&~b)|b)); int x = ~a&~b; return ~(x|a)|~(x|b); return ~((~a&~b)|a)|~((~a&~b)|b); int x = ~a&~b; return (~x&~a)|(~x&~b); int x = ~a&~b; return ~x&(~a|~b); Those two work: return (~(~a&~b)&~a)|(~(~a&~b)&~b); return ~(~a&~b)&(~a|~b); A different calculation: Don't work: return ~(~(~a&b)&~(a&~b)); return ~(~(~a|~b)|~(a|b)); return ~((a&b)|~(a|b)); This works: return ~(a&b)&(a|b); Different calculation: return ~((a|~b)&(~a|b)); return ~(a|~b)|~(~a|b); return (~a&b)|~(~a|b); This works: return (~a&b)|(a&~b); SUGGESTED SOLUTTION At match.pd:774 There's the De Morgan law for bitwise AND but there isn't one for OR. https://github.com/gcc-mirror/gcc/blob/fe4311f/gcc/match.pd#L774 No one noticed this, because it can (somehow) transform ~(~a|b) to a&~b sometimes, (for example, if BMI instructions is enabled, it can use the 'andn' instruction which calculates a&~b) If I understand it correctly, it only works if it's not simplified a different way until RTL optimization comes. /* ~(~a | b) --> a & ~b */ (simplify (bit_not (bit_ior:cs (bit_not @0) @1)) (bit_and @0 (bit_not @1)))
[Bug tree-optimization/87009] Can't find XOR pattern applying De Morgan sequentially
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87009 --- Comment #1 from MCCCS --- Proposed patch: Index: gcc/match.pd === --- gcc/match.pd(revision 263646) +++ gcc/match.pd(working copy) @@ -776,6 +776,11 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (bit_not (bit_and:cs (bit_not @0) @1)) (bit_ior @0 (bit_not @1))) +/* ~(~a | b) --> a & ~b */ +(simplify + (bit_not (bit_ior:cs (bit_not @0) @1)) + (bit_and @0 (bit_not @1))) + /* Simplify (~X & Y) to X ^ Y if we know that (X & ~Y) is 0. */ #if GIMPLE (simplify Index: gcc/testsuite/g++.dg/pr87009.C === --- gcc/testsuite/g++.dg/pr87009.C (nonexistent) +++ gcc/testsuite/g++.dg/pr87009.C (working copy) @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-original" } */ +/* { dg-final { scan-tree-dump-times " ^ " 3 "original" } */ + +int f1 (int x, int s) +{ + return ~(~(x|s)|x)|~(~(x|s)|s); +} + +int f2 (int x, int s) +{ + return ~(~(~x&s)&~(x&~s)); +} + +int f3 (int x, int s) +{ + return ~((x|~s)&(~x|s)); +}
[Bug tree-optimization/87009] Can't find XOR pattern applying De Morgan sequentially
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87009 --- Comment #2 from Marc Glisse --- Yes, there are still some transformations missing to canonicalize all binary boolean functions. You mention ~(~a | b). We also need (a|~b)&(~a|b) and the same with ^ in the middle. Possibly others (ideally, this list of transformations would be generated by a computer, or at least more systematically). Posting a tested patch to the gcc-patches mailing list would be welcome.
[Bug target/87010] New: FAIL: gcc.dg/torture/20180712-1.c -O1 (test for excess errors)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87010 Bug ID: 87010 Summary: FAIL: gcc.dg/torture/20180712-1.c -O1 (test for excess errors) Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: danglin at gcc dot gnu.org Target Milestone: --- Host: hppa*-*-* Target: hppa*-*-* Build: hppa*-*-* Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/ /te st/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c -fno-diagnostics-show- caret -fno-diagnostics-show-line-numbers -fdiagnostics-color=never-O1 -fPIC -lm-o ./20180712-1.exe(timeout = 300) spawn /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/ /test/gnu/gcc/gc c/gcc/testsuite/gcc.dg/torture/20180712-1.c -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fdiagnostics-color=never -O1 -fPIC -lm -o ./20180712-1.exe /test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c: In function 'foo': /test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c:13:3: error: can't find a register in class 'R1_REGS' while reloading 'asm' /test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c:13:3: error: 'asm' operand has impossible constraints compiler exited with status 1 output is: /test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c: In function 'foo': /test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c:13:3: error: can't find a register in class 'R1_REGS' while reloading 'asm' /test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/20180712-1.c:13:3: error: 'asm' operand has impossible constraints FAIL: gcc.dg/torture/20180712-1.c -O1 (test for excess errors) Similar fails: FAIL: gcc.dg/torture/20180712-1.c -O2 (test for excess errors) UNRESOLVED: gcc.dg/torture/20180712-1.c -O2 compilation failed to produce executable FAIL: gcc.dg/torture/20180712-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for excess errors) UNRESOLVED: gcc.dg/torture/20180712-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none compilation failed to produce executable FAIL: gcc.dg/torture/20180712-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors) UNRESOLVED: gcc.dg/torture/20180712-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects compilation failed to produce executable FAIL: gcc.dg/torture/20180712-1.c -O3 -g (test for excess errors) UNRESOLVED: gcc.dg/torture/20180712-1.c -O3 -g compilation failed to produce executable FAIL: gcc.dg/torture/20180712-1.c -Os (test for excess errors) UNRESOLVED: gcc.dg/torture/20180712-1.c -Os compilation failed to produce executable Test passes at -O0. I tend to think this test needs to be skipped on hppa because it generally isn't possible for reload to handle the addresses of two or more symbols in asm.
[Bug tree-optimization/71625] missing strlen optimization on different array initialization style
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71625 Bernd Edlinger changed: What|Removed |Added CC||bernd.edlinger at hotmail dot de --- Comment #20 from Bernd Edlinger --- it is possible that the poly type returns now a different type class in __builtin_classify_type: @defmac __builtin_classify_type (@var{object}) Since each machine has its own conventions for which data types are passed in which kind of register, your implementation of @code{va_arg} has to embody these conventions. The easiest way to categorize the specified data type is to use @code{__builtin_classify_type} together with @code{sizeof} and @code{__alignof__}. @code{__builtin_classify_type} ignores the value of @var{object}, considering only its data type. It returns an integer describing what kind of type that is---integer, floating, pointer, structure, and so on. The file @file{typeclass.h} defines an enumeration that you can use to interpret the values of @code{__builtin_classify_type}. @end defmac builtins.c-/* Used by expand_builtin_classify_type and fold_builtin_classify_type. */ builtins.c- builtins.c-static enum type_class builtins.c-type_to_class (tree type) builtins.c-{ builtins.c- switch (TREE_CODE (type)) builtins.c-{ builtins.c-case VOID_TYPE: return void_type_class; builtins.c-case INTEGER_TYPE: return integer_type_class; builtins.c-case ENUMERAL_TYPE: return enumeral_type_class; builtins.c-case BOOLEAN_TYPE: return boolean_type_class; builtins.c-case POINTER_TYPE: return pointer_type_class; builtins.c-case REFERENCE_TYPE: return reference_type_class; builtins.c-case OFFSET_TYPE: return offset_type_class; builtins.c-case REAL_TYPE: return real_type_class; builtins.c-case COMPLEX_TYPE: return complex_type_class; builtins.c-case FUNCTION_TYPE: return function_type_class; builtins.c-case METHOD_TYPE: return method_type_class; builtins.c-case RECORD_TYPE: return record_type_class; builtins.c-case UNION_TYPE: builtins.c-case QUAL_UNION_TYPE: return union_type_class; builtins.c:case ARRAY_TYPE:return (TYPE_STRING_FLAG (type) builtins.c-? string_type_class : array_type_class); builtins.c-case LANG_TYPE: return lang_type_class; builtins.c-default:return no_type_class; builtins.c-} builtins.c-} builtins.c- builtins.c-/* Expand a call EXP to __builtin_classify_type. */ builtins.c- builtins.c-static rtx builtins.c-expand_builtin_classify_type (tree exp) builtins.c-{ builtins.c- if (call_expr_nargs (exp)) builtins.c-return GEN_INT (type_to_class (TREE_TYPE (CALL_EXPR_ARG (exp, 0; builtins.c- return GEN_INT (no_type_class); builtins.c-}
[Bug tree-optimization/87011] New: [9 Regression] partially dead memset before strcpy not eliminated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87011 Bug ID: 87011 Summary: [9 Regression] partially dead memset before strcpy not eliminated Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: msebor at gcc dot gnu.org Target Milestone: --- In released versions of GCC the memset call would be optimized by DSE to memset (_6, 0, 12). On trunk, however, this is not done: $ cat f.c && gcc -O2 -S -Wall -fdump-tree-optimized=/dev/stdout f.c struct S { char a[4]; void (*pf)(void); }; void f (struct S *p) { __builtin_memset (p, 0, sizeof *p); __builtin_strcpy (p->a, "123"); } ;; dump 228: optimized (enabled by -ftree-optimized) ;; Function f (f, funcdef_no=0, decl_uid=1910, cgraph_uid=1, symbol_order=0) f (struct S * p) { char[4] * _1; [local count: 1073741825]: __builtin_memset (p_3(D), 0, 16); _1 = &p_3(D)->a; __builtin_memcpy (_1, "123", 4); [tail call] return; }
[Bug tree-optimization/87011] [9 Regression] partially dead memset before strcpy not eliminated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87011 Martin Sebor changed: What|Removed |Added Keywords||missed-optimization CC||law at gcc dot gnu.org --- Comment #1 from Martin Sebor --- Bisection points to r262841: r262841 | law | 2018-07-17 19:54:10 -0400 (Tue, 17 Jul 2018) | 2 lines PR tree-optimization/86010 * tree-ssa-dse.c (compute_trims): Fix typo/thinko. The optimization was introduced in r245688 (in GCC 7).
[Bug c++/81721] precompiled header : internal compiler error: Segmentation fault
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81721 Eric Gallager changed: What|Removed |Added CC||bonzini at gnu dot org, ||geoffk at gcc dot gnu.org, ||jsm28 at gcc dot gnu.org --- Comment #4 from Eric Gallager --- (In reply to Juro Bystricky from comment #0) > > After some debugging, I found the segmentation fault was caused in > libcpp/lex.c (cpp_spell_token): > > case SPELL_IDENT: > if (forstring) > { > memcpy (buffer, NODE_NAME (token->val.node.spelling), >NODE_LEN (token->val.node.spelling)); > buffer += NODE_LEN (token->val.node.spelling); > } > svn blame for that part shows: 82199bonzini case SPELL_IDENT: 96333 geoffk if (forstring) 96333 geoffk { 217202 jsm28 memcpy (buffer, NODE_NAME (token->val.node.spelling), 217202 jsm28 NODE_LEN (token->val.node.spelling)); 217202 jsm28 buffer += NODE_LEN (token->val.node.spelling); 96333 geoffk } cc-ing them.
[Bug c++/81830] missing Wunused-local-typedef on a typedef of an unnamed enum or struct
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81830 Eric Gallager changed: What|Removed |Added CC||dmalcolm at gcc dot gnu.org, ||dodji at gcc dot gnu.org --- Comment #3 from Eric Gallager --- cc-ing diagnostics maintainers
[Bug c++/86981] Add Clang's -Wpessimizing-move warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86981 Marek Polacek changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |mpolacek at gcc dot gnu.org
[Bug c++/86982] Make -Wreturn-local-addr know about std::move and std::forward
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86982 Marek Polacek changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2018-08-18 CC||mpolacek at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |mpolacek at gcc dot gnu.org Ever confirmed|0 |1
[Bug c++/87012] New: [Regression] ICE in verify_unstripped_args_1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87012 Bug ID: 87012 Summary: [Regression] ICE in verify_unstripped_args_1 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: v.reshetnikov at gmail dot com Target Milestone: --- /* BEGIN SOURCE */ template using ref = T&; int x; template class T, T> struct X { }; struct Y : X { }; /** END SOURCE **/ : In instantiation of 'struct X': :9:12: required from here :7:10: internal compiler error: in verify_unstripped_args_1, at cp/pt.c:1155 7 | struct X { }; | ^ Compiler returned: 1 Compiles fine with GCC 8.2 and Clang.
[Bug bootstrap/87013] New: xgcc: fatal error: no input files
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87013 Bug ID: 87013 Summary: xgcc: fatal error: no input files Product: gcc Version: 8.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: mfe at live dot de Target Milestone: --- Created attachment 44556 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44556&action=edit config.log of gcc-8.2.0-compiled\sparc-linux\libgcc he exact version of GCC: gcc-8.2.0 the system type: NetgearReadyNAS Duo (http://wiki.dietpc.org/index.php/DIET-PC_on_SPARC_ReadyNAS) the options given when GCC was configured/built: ../gcc-8.2.0/configure --prefix=/opt/gcc-8.2/ --enable-languages=c,c++,go --with-mpc=/usr/local --with-mpfr=/usr/local --with-gmp=/usr/local --with-isl=/usr/local/ --disable-doc --host=sparc-linux --build=sparc-linux --disable-libstdcxx-pch --disable-linux-futex --disable-libsanitizer --disable-libcilkrts --disable-libitm --disable-libitm CC=/opt/gcc-7.3/bin/gcc CXX=/opt/gcc-7.3/bin/g++ && /usr/local/bin/make ## - ## ## Platform. ## ## - ## hostname = nas-02-90-38 uname -m = padre uname -r = 2.6.17.14ReadyNAS uname -s = Linux uname -v = #1 Wed Jun 20 20:08:20 PDT 2012 the complete command line that triggers the bug; /usr/local/bin/make the compiler output (error messages, warnings, etc.); [...] esac mv tmp2-tm.texi tmp-tm.texi /bin/sh ../../gcc-8.2.0/gcc/../move-if-change tmp-tm.texi tm.texi if [ xinfo = xinfo ]; then \ makeinfo --split-size=500 --split-size=500 --split-size=500 --no-split -I . -I ../../gcc-8.2.0/gcc/doc \ -I ../../gcc-8.2.0/gcc/doc/include -o doc/gccint.info ../../gcc-8.2.0/gcc/doc/gccint.texi; \ fi if [ xinfo = xinfo ]; then \ makeinfo --split-size=500 --split-size=500 --split-size=500 --no-split -I ../../gcc-8.2.0/gcc/doc \ -I ../../gcc-8.2.0/gcc/doc/include -o doc/gccinstall.info ../../gcc-8.2.0/gcc/doc/install.texi; \ fi if [ xinfo = xinfo ]; then \ makeinfo --split-size=500 --split-size=500 --split-size=500 --no-split -I . -I ../../gcc-8.2.0/gcc/doc \ -I ../../gcc-8.2.0/gcc/doc/include -o doc/cppinternals.info ../../gcc-8.2.0/gcc/doc/cppinternals.texi; \ fi echo timestamp > gcc.pod perl ../../gcc-8.2.0/gcc/../contrib/texi2pod.pl ../../gcc-8.2.0/gcc/doc/invoke.texi > gcc.pod echo timestamp > doc/gcc.1 (pod2man --center="GNU" --release="gcc-8.2.0" --date=2018-07-26 --section=1 gcc.pod > doc/gcc.1.T$$ && \ mv -f doc/gcc.1.T$$ doc/gcc.1) || \ (rm -f doc/gcc.1.T$$ && exit 1) cp doc/gcc.1 doc/g++.1 /media/gcc-8.2.0-compiled/./gcc/xgcc -B/media/gcc-8.2.0-compiled/./gcc/ -xc -nostdinc /dev/null -S -o /dev/null -fself-test=../../gcc-8.2.0/gcc/testsuite/selftests -fself-test: 40032 pass(es) in 7.23 seconds echo timestamp > s-selftest-c rm gcc.pod make[3]: Leaving directory '/c/media/gcc-8.2.0-compiled/gcc' mkdir -p -- sparc-linux/libgcc Checking multilib configuration for libgcc... Configuring stage 1 in sparc-linux/libgcc configure: creating cache ./config.cache checking build system type... sparc-unknown-linux-gnu checking host system type... sparc-unknown-linux-gnu checking for --enable-version-specific-runtime-libs... no checking for a BSD-compatible install... /usr/bin/install -c checking for gawk... mawk checking for sparc-linux-ar... ar checking for sparc-linux-lipo... lipo checking for sparc-linux-nm... /media/gcc-8.2.0-compiled/./gcc/nm checking for sparc-linux-ranlib... ranlib checking for sparc-linux-strip... strip checking whether ln -s works... yes checking for sparc-linux-gcc... /media/gcc-8.2.0-compiled/./gcc/xgcc -B/media/gcc-8.2.0-compiled/./gcc/ -B/opt/gcc-8.2/sparc-linux/bin/ -B/opt/gcc-8.2/sparc-linux/lib/ -isystem /opt/gcc-8.2/sparc-linux/include -isystem /opt/gcc-8.2/sparc-linux/sys-include checking for suffix of object files... configure: error: in `/media/gcc-8.2.0-compiled/sparc-linux/libgcc': configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details. make[2]: *** [Makefile:18005: configure-stage1-target-libgcc] Error 1 make[2]: Leaving directory '/c/media/gcc-8.2.0-compiled' make[1]: *** [Makefile:23279: stage1-bubble] Error 2 make[1]: Leaving directory '/c/media/gcc-8.2.0-compiled' make: *** [Makefile:941: all] Error 2