public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug lto/96700] New: undefined reference to `failure_on_line_796'
@ 2020-08-19  6:37 sujian.liu at huawei dot com
  2020-09-23 20:25 ` [Bug target/96700] " wilson at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: sujian.liu at huawei dot com @ 2020-08-19  6:37 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96700

            Bug ID: 96700
           Summary: undefined reference to `failure_on_line_796'
           Product: gcc
           Version: 7.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: lto
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sujian.liu at huawei dot com
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---

Created attachment 49079
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49079&action=edit
the source code

When I compile without -flto, it has no errors.

riscv32-unknown-elf-gcc gcc.dg/tree-ssa/builtin-sprintf.c
-fno-optimize-sibling-calls -fstack-protector -fno-diagnostics-show-caret
-fdiagnostics-color=never -ansi -pedantic-errors -O2 -Wall -Wno-pedantic
-fprintf-return-value -lm -o ./builtin-sprintf.exe
gcc.dg/tree-ssa/builtin-sprintf.c: In function 'test_d_i':
gcc.dg/tree-ssa/builtin-sprintf.c:307:20: warning: '0' flag ignored with
precision and '%i' gnu_printf format [-Wformat=]
gcc.dg/tree-ssa/builtin-sprintf.c:128:44: note: in definition of macro 'RNG'
gcc.dg/tree-ssa/builtin-sprintf.c: In function 'test_percent':
gcc.dg/tree-ssa/builtin-sprintf.c:796:18: warning: too many arguments for
format [-Wformat-extra-args]
gcc.dg/tree-ssa/builtin-sprintf.c:114:44: note: in definition of macro 'EQL'
gcc.dg/tree-ssa/builtin-sprintf.c:797:18: warning: too many arguments for
format [-Wformat-extra-args]
gcc.dg/tree-ssa/builtin-sprintf.c:114:44: note: in definition of macro 'EQL'
gcc.dg/tree-ssa/builtin-sprintf.c:798:18: warning: too many arguments for
format [-Wformat-extra-args]
gcc.dg/tree-ssa/builtin-sprintf.c:114:44: note: in definition of macro 'EQL'

When I compile with -flto, I will get the error as follow:

riscv32-unknown-elf-gcc gcc.dg/tree-ssa/builtin-sprintf.c
-fno-optimize-sibling-calls -fstack-protector -fno-diagnostics-show-caret
-fdiagnostics-color=never -ansi -pedantic-errors -O2 -Wall -Wno-pedantic
-fprintf-return-value -lm -o ./builtin-sprintf.exe -flto
gcc.dg/tree-ssa/builtin-sprintf.c: In function 'test_d_i':
gcc.dg/tree-ssa/builtin-sprintf.c:307:20: warning: '0' flag ignored with
precision and '%i' gnu_printf format [-Wformat=]
gcc.dg/tree-ssa/builtin-sprintf.c:128:44: note: in definition of macro 'RNG'
gcc.dg/tree-ssa/builtin-sprintf.c: In function 'test_percent':
gcc.dg/tree-ssa/builtin-sprintf.c:796:18: warning: too many arguments for
format [-Wformat-extra-args]
gcc.dg/tree-ssa/builtin-sprintf.c:114:44: note: in definition of macro 'EQL'
gcc.dg/tree-ssa/builtin-sprintf.c:797:18: warning: too many arguments for
format [-Wformat-extra-args]
gcc.dg/tree-ssa/builtin-sprintf.c:114:44: note: in definition of macro 'EQL'
gcc.dg/tree-ssa/builtin-sprintf.c:798:18: warning: too many arguments for
format [-Wformat-extra-args]
gcc.dg/tree-ssa/builtin-sprintf.c:114:44: note: in definition of macro 'EQL'
/home/lsj/b014/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccvVHTzC.ltrans0.ltrans.o: in function `check':
<artificial>:(.text+0x182): undefined reference to `failure_on_line_796'
/home/lsj/b014/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccvVHTzC.ltrans0.ltrans.o: in function `test_percent':
<artificial>:(.text+0x1c6): undefined reference to `failure_on_line_797'
/home/lsj/b014/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0/../../../../riscv32-unknown-elf/bin/ld:
<artificial>:(.text+0x206): undefined reference to `failure_on_line_798'
/home/lsj/b014/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0/../../../../riscv32-unknown-elf/bin/ld:
<artificial>:(.text+0x248): undefined reference to `failure_on_line_799'
......
/home/lsj/b014/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccvVHTzC.ltrans0.ltrans.o: in function `.L576':
<artificial>:(.text+0x7744): undefined reference to `failure_on_line_164'
/home/lsj/b014/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccvVHTzC.ltrans0.ltrans.o: in function `.L577':
<artificial>:(.text+0x77a4): undefined reference to `failure_on_line_165'
/home/lsj/b014/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccvVHTzC.ltrans0.ltrans.o: in function `.L579':
<artificial>:(.text+0x7808): undefined reference to `failure_on_line_167'
/home/lsj/b014/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccvVHTzC.ltrans0.ltrans.o: in function `.L580':
<artificial>:(.text+0x7862): undefined reference to `failure_on_line_168'
/home/lsj/b014/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccvVHTzC.ltrans0.ltrans.o: in function `.L581':
<artificial>:(.text+0x78b4): undefined reference to `failure_on_line_169'
collect2: error: ld returned 1 exit status

I trited with the lastest gcc version (10.1.0),it show the same error without
the option -flto:

riscv32-unknown-elf-gcc gcc.dg/tree-ssa/builtin-sprintf.c
-fno-optimize-sibling-calls -fstack-protector -fno-diagnostics-show-caret
-fdiagnostics-color=never -ansi -pedantic-errors -O2 -Wall -Wno-pedantic
-fprintf-return-value -lm -o ./builtin-sprintf.exe
gcc.dg/tree-ssa/builtin-sprintf.c: In function 'test_d_i':
gcc.dg/tree-ssa/builtin-sprintf.c:307:20: warning: '0' flag ignored with
precision and '%i' gnu_printf format [-Wformat=]
gcc.dg/tree-ssa/builtin-sprintf.c:128:44: note: in definition of macro 'RNG'
gcc.dg/tree-ssa/builtin-sprintf.c: In function 'test_percent':
gcc.dg/tree-ssa/builtin-sprintf.c:796:18: warning: too many arguments for
format [-Wformat-extra-args]
gcc.dg/tree-ssa/builtin-sprintf.c:114:44: note: in definition of macro 'EQL'
gcc.dg/tree-ssa/builtin-sprintf.c:797:18: warning: too many arguments for
format [-Wformat-extra-args]
gcc.dg/tree-ssa/builtin-sprintf.c:114:44: note: in definition of macro 'EQL'
gcc.dg/tree-ssa/builtin-sprintf.c:798:18: warning: too many arguments for
format [-Wformat-extra-args]
gcc.dg/tree-ssa/builtin-sprintf.c:114:44: note: in definition of macro 'EQL'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccRCyJbM.o: in function `test_a_double':
builtin-sprintf.c:(.text+0x10e0): undefined reference to `failure_on_line_482'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x10ee): undefined reference to `failure_on_line_487'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x10fc): undefined reference to `failure_on_line_486'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccRCyJbM.o: in function `.L36':
builtin-sprintf.c:(.text+0x1938): undefined reference to `failure_on_line_525'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x1946): undefined reference to `failure_on_line_547'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccRCyJbM.o: in function `.L37':
builtin-sprintf.c:(.text+0x1954): undefined reference to `failure_on_line_545'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x1962): undefined reference to `failure_on_line_544'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x1970): undefined reference to `failure_on_line_543'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x197e): undefined reference to `failure_on_line_542'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x198c): undefined reference to `failure_on_line_541'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccRCyJbM.o: in function `.L38':
builtin-sprintf.c:(.text+0x199a): undefined reference to `failure_on_line_540'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x19a8): undefined reference to `failure_on_line_539'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x19b6): undefined reference to `failure_on_line_538'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x19c4): undefined reference to `failure_on_line_536'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x19d2): undefined reference to `failure_on_line_534'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccRCyJbM.o: in function `.L39':
builtin-sprintf.c:(.text+0x19e0): undefined reference to `failure_on_line_533'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x19ee): undefined reference to `failure_on_line_532'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x19fc): undefined reference to `failure_on_line_531'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x1a0a): undefined reference to `failure_on_line_530'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x1a18): undefined reference to `failure_on_line_529'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccRCyJbM.o: in function `.L40':
builtin-sprintf.c:(.text+0x1a26): undefined reference to `failure_on_line_528'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x1a34): undefined reference to `failure_on_line_527'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x1a42): undefined reference to `failure_on_line_526'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccRCyJbM.o: in function `.L58':
builtin-sprintf.c:(.text+0x1dde): undefined reference to `failure_on_line_629'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/tmp/ccRCyJbM.o: in function `test_e_long_double':
builtin-sprintf.c:(.text+0x34bc): undefined reference to `failure_on_line_588'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x34ca): undefined reference to `failure_on_line_606'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x34d8): undefined reference to `failure_on_line_605'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x34e6): undefined reference to `failure_on_line_604'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x34f4): undefined reference to `failure_on_line_603'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x3502): undefined reference to `failure_on_line_602'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x3510): undefined reference to `failure_on_line_601'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x351e): undefined reference to `failure_on_line_600'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x352c): undefined reference to `failure_on_line_599'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x353a): undefined reference to `failure_on_line_597'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x3548): undefined reference to `failure_on_line_596'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x3556): undefined reference to `failure_on_line_595'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x3564): undefined reference to `failure_on_line_594'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x3572): undefined reference to `failure_on_line_593'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x3580): undefined reference to `failure_on_line_592'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x358e): undefined reference to `failure_on_line_591'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x359c): undefined reference to `failure_on_line_590'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
builtin-sprintf.c:(.text+0x35aa): undefined reference to `failure_on_line_589'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/libgcc.a(unwind-dw2-fde.o):
in function `__register_frame_info':
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/../../open_source/hcc_riscv32_build_src/gcc-10.1.0/libgcc/unwind-dw2-fde.c:124:
undefined reference to `malloc'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/libgcc.a(unwind-dw2-fde.o):
in function `__register_frame_info_table_bases':
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/../../open_source/hcc_riscv32_build_src/gcc-10.1.0/libgcc/unwind-dw2-fde.c:173:
undefined reference to `malloc'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/libgcc.a(unwind-dw2-fde.o):
in function `__deregister_frame_info_bases':
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/../../open_source/hcc_riscv32_build_src/gcc-10.1.0/libgcc/unwind-dw2-fde.c:221:
undefined reference to `free'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/../../open_source/hcc_riscv32_build_src/gcc-10.1.0/libgcc/unwind-dw2-fde.c:244:
undefined reference to `free'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/libgcc.a(unwind-dw2-fde.o):
in function `fde_mixed_encoding_compare':
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/../../open_source/hcc_riscv32_build_src/gcc-10.1.0/libgcc/unwind-dw2-fde.c:398:
undefined reference to `malloc'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/../../open_source/hcc_riscv32_build_src/gcc-10.1.0/libgcc/unwind-dw2-fde.c:401:
undefined reference to `malloc'
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/../../../../riscv32-unknown-elf/bin/ld:
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/riscv32_elf_build_dir/hcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/10.1.0/libgcc.a(unwind-dw2-fde.o):
in function `end_fde_sort':
/home/lsj/b014/hcc_gcc_10/build/hcc_riscv32/../../open_source/hcc_riscv32_build_src/gcc-10.1.0/libgcc/unwind-dw2-fde.c:606:
undefined reference to `free'
collect2: error: ld returned 1 exit status

GCC 8.x 9.x 10.x all have the same error when compile without -flto. I will
attach the source code, and the compile command as follow:

riscv32-unknown-elf-gcc gcc.dg/tree-ssa/builtin-sprintf.c
-fno-optimize-sibling-calls -fstack-protector -fno-diagnostics-show-caret
-fdiagnostics-color=never -ansi -pedantic-errors -O2 -Wall -Wno-pedantic
-fprintf-return-value -lm -o ./builtin-sprintf.exe -flto

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug target/96700] undefined reference to `failure_on_line_796'
  2020-08-19  6:37 [Bug lto/96700] New: undefined reference to `failure_on_line_796' sujian.liu at huawei dot com
@ 2020-09-23 20:25 ` wilson at gcc dot gnu.org
  2020-09-23 22:36 ` msebor at gcc dot gnu.org
  2020-09-29 17:43 ` wilson at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: wilson at gcc dot gnu.org @ 2020-09-23 20:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96700

Jim Wilson <wilson at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |wilson at gcc dot gnu.org

--- Comment #1 from Jim Wilson <wilson at gcc dot gnu.org> ---
The testcase is not strictly valid C code, as it has references to undefined
funtions.  The testcase was written this way to check for a specific compiler
optimization.  If the testcase is used correctly, and the optimization
succeeds, then the testcase links.  If the testcase is used correctly, and the
optimization fails, then the testcase gives link errors.  Also, if you use the
testcase incorrectly, i.e. the wrong optimziation level, it can give link
errors.  

The testcase as written can't work with -flto, but does correectly verify
whether the optimization works, so it is OK, but could probably be improved. 
This looks like more of an enhancement request than a bug.

This is not a riscv specific problem.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug target/96700] undefined reference to `failure_on_line_796'
  2020-08-19  6:37 [Bug lto/96700] New: undefined reference to `failure_on_line_796' sujian.liu at huawei dot com
  2020-09-23 20:25 ` [Bug target/96700] " wilson at gcc dot gnu.org
@ 2020-09-23 22:36 ` msebor at gcc dot gnu.org
  2020-09-29 17:43 ` wilson at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: msebor at gcc dot gnu.org @ 2020-09-23 22:36 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96700

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |msebor at gcc dot gnu.org

--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
I'm only familiar with LTO at a high level but the test links with -flto on
x86_64 and I'd expect that to be independent of the target.  The calls to all
the test_on_line_xxx functions should be eliminated before LTO.  What's
different about RISCV that keeps it from happening?  (I didn't have LTO in mind
when I wrote the test but if it can be tweaked to be usable with it even on
RISCV I'm happy to do it.)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug target/96700] undefined reference to `failure_on_line_796'
  2020-08-19  6:37 [Bug lto/96700] New: undefined reference to `failure_on_line_796' sujian.liu at huawei dot com
  2020-09-23 20:25 ` [Bug target/96700] " wilson at gcc dot gnu.org
  2020-09-23 22:36 ` msebor at gcc dot gnu.org
@ 2020-09-29 17:43 ` wilson at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: wilson at gcc dot gnu.org @ 2020-09-29 17:43 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96700

Jim Wilson <wilson at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |INVALID
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #3 from Jim Wilson <wilson at gcc dot gnu.org> ---
I took another look at this.

I can get this to fail with an x86_64 gcc, but that is the system compiler
which is gcc-7.  A little testing shows that the testcase works for x86_64
gcc-8 and later and fails for gcc-7.  However, since this is a testcase for
gcc-11, there is no expectation that it should work with older gcc versions. 
We sometimes need to modify testcases to work when gcc changes.

I also tried this with rv32-elf compilers, gcc-11, gcc-10, gcc-9, and I
couldn't get the testcase to fail for any of them, with or without -flto.

So I can't reproduce the original poster's problem, which gets me back to my
original claim that I don't think that this is a gcc bug.

Actually, on second thought, I realized that I'm using the original testcase
from the gcc source tree gcc.dg/tree-ssa/buitlin-sprintf.c not the attachment. 
Looking at the attachment, I see that some numbers have been modified.  So that
is why it fails.  It is a bogus testcase.  Looking further, I see that you are
using an old version of the testcase before it was changed in 2018.  See
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86274
which both changed an optimization and changed the testcase to match the new
optimization.  The fix was put on mainlnie (gcc-9) and backported to gcc-8, so
the testcase should fail for any gcc-8 or later.

This is invalid.  You can't take a testcase from gcc-X and expect it to work
with gcc-Y.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-09-29 17:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-19  6:37 [Bug lto/96700] New: undefined reference to `failure_on_line_796' sujian.liu at huawei dot com
2020-09-23 20:25 ` [Bug target/96700] " wilson at gcc dot gnu.org
2020-09-23 22:36 ` msebor at gcc dot gnu.org
2020-09-29 17:43 ` wilson at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).