A weird bug

Andrew Pinski pinskia@gmail.com
Fri Mar 5 01:37:13 GMT 2021


On Thu, Mar 4, 2021 at 3:19 PM Gary Oblock via Gcc <gcc@gcc.gnu.org> wrote:
>
> Guys,
>
> I've been trying to debug a linker error (which I thought was a bug in
> my optimization.) Well it turns out it occurs in a brand new virgin
> version of the compiler running with binutils 2.36 which is the latest
> version. I'm posting this on both the binutils list and gcc list
> because people of either list are just as likely to have an idea about
> what's going on. Note, I tried to walk though the ld code in gdb but
> it's nontrivial trying figure out why an error occured. I can't just
> set a watch point on a flag because, at least in some places it seems
> like the default state of the flag is failure and the code then
> proceeds to try various things to see if they'll work.


I will give you a hint, pre GCC 10, defaulted to -fcommon, GCC 10+
defaults to -fno-common.

Thanks,
Andrew

>
> Regarding the compiler that I built:
>
>  $ git status
> On branch master
> Your branch is up to date with 'origin/master'.
>
> nothing to commit, working tree clean
>
> Now here is how I built it:
>
> ./my_dual_build_script gcc_virgin_build 2>build_log_virgin 1>&2
>
> where my_dual_build_script is:
>
> cd $1
> BASE=`pwd`
> echo BASE = $BASE
> touch BU_objdir objdir install
> rm -rf BU_objdir objdir install
> mkdir BU_objdir objdir install
>
> cd BU_objdir
> echo BUILDING BINUTILS IN `pwd`
> ../binutils-2.36/configure --prefix=$BASE/install
> make CFLAGS='-O2 -g' CXXFLAGS='-O2 -g' -j 12
> ##make CFLAGS='-O0 -g' CXXFLAGS='-O2 -g' -j 12
> make install
>
> cd ../objdir
> echo BUILDING GCC IN `pwd`
> ../sources/configure --prefix=$BASE/install --disable-bootstrap -enable-language=c,c++,lto --disable-multilib --enable-valgrind-annotations
> ##make CFLAGS='-O0 -g' CXXFLAGS='-O0 -g' -j 12
> make CFLAGS='-O2 -g' CXXFLAGS='-O2 -g' -j 12
> make install
>
> My installed gcc is:
>
> $ gcc -v
> Using built-in specs.
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
> OFFLOAD_TARGET_NAMES=nvptx-none
> OFFLOAD_TARGET_DEFAULT=1
> Target: x86_64-linux-gnu
> Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
> Thread model: posix
> gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
>
> My istalled binutils are:
>
> $ ld -v
> GNU ld (GNU Binutils for Ubuntu) 2.30
>
> Now the application that failing during testing is 505.x264_5 which is
> from SPEC17. Note, please don't try to duplicate this bug unless you
> have access to SPEC17 and are running an identical system because
> Martin Liska tried to do this on a different system but but he
> couldn't get it to duplicate.
>
> Now for any SPEC heads out there here's the germane parts
> from its confige file.
>
>    define  gcc_dir        /home/gary/gcc_virgin_build/install
>
>    preENV_LD_LIBRARY_PATH  = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64
>    SPECLANG                = %{gcc_dir}/bin/
>    CC                      = $(SPECLANG)gcc     --verbose  -std=c99   %{model}
>    CXX                     = $(SPECLANG)g++     -std=c++03 %{model}
>    FC                      = $(SPECLANG)gfortran           %{model}
>
>    OPTIMIZE       = -O2 -v -Wl,--verbose=11111  -Wl,-debug
>    COPTIMIZE      = -save-temps
>
> Finally here linker's part of the x264 build output:
>
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../x86_64-pc-linux-gnu/bin/ld -plugin /home/gary/gcc_virgin_build/install/libexec/gcc/x86_64-pc-linux-gnu/11.0.1/liblto_plugin.so -plugin-opt=/home/gary/gcc_virgin_build/install/libexec/gcc/x86_64-pc-linux-gnu/11.0.1/lto-wrapper -plugin-opt=-fresolution=ldecod_r.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o ldecod_r /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/crtbegin.o -L/home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1 -L/home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../x86_64-pc-linux-gnu/lib -L/home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../.. --verbose=11111 ldecod_src/nal.o ldecod_src/mbuffer_mvc.o ldecod_src/image.o ldecod_src/mb_access.o ldecod_src/memalloc.o ldecod_src/mc_prediction.o ldecod_src/mb_prediction.o ldecod_src/intra4x4_pred_mbaff.o ldecod_src/loop_filter_mbaff.o ldecod_src/context_ini.o ldecod_src/configfile.o ldecod_src/cabac.o ldecod_src/sei.o ldecod_src/leaky_bucket.o ldecod_src/filehandle.o ldecod_src/errorconcealment.o ldecod_src/decoder_test.o ldecod_src/img_process.o ldecod_src/mv_prediction.o ldecod_src/fmo.o ldecod_src/output.o ldecod_src/mc_direct.o ldecod_src/rtp.o ldecod_src/nalucommon.o ldecod_src/config_common.o ldecod_src/intra_chroma_pred.o ldecod_src/transform8x8.o ldecod_src/blk_prediction.o ldecod_src/intra8x8_pred_mbaff.o ldecod_src/erc_do_i.o ldecod_src/io_tiff.o ldecod_src/mbuffer.o ldecod_src/block.o ldecod_src/intra4x4_pred.o ldecod_src/transform.o ldecod_src/annexb.o ldecod_src/ldecod.o ldecod_src/macroblock.o ldecod_src/vlc.o ldecod_src/parset.o ldecod_src/loop_filter_normal.o ldecod_src/parsetcommon.o ldecod_src/erc_do_p.o ldecod_src/loopFilter.o ldecod_src/intra16x16_pred_mbaff.o ldecod_src/intra4x4_pred_normal.o ldecod_src/intra16x16_pred_normal.o ldecod_src/win32.o ldecod_src/intra16x16_pred.o ldecod_src/intra8x8_pred_normal.o ldecod_src/io_raw.o ldecod_src/img_io.o ldecod_src/nalu.o ldecod_src/quant.o ldecod_src/intra8x8_pred.o ldecod_src/erc_api.o ldecod_src/header.o ldecod_src/biaridecod.o ldecod_src/input.o -lm -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/crtend.o /usr/lib/x86_64-linux-gnu/crtn.o
> GNU ld (GNU Binutils) 2.36
>   Supported emulations:
>    elf_x86_64
>    elf32_x86_64
>    elf_i386
>    elf_iamcu
>    elf_l1om
>    elf_k1om
> using internal linker script:
> ==================================================
> /* Script for -z combreloc -z separate-code */
> /* Copyright (C) 2014-2021 Free Software Foundation, Inc.
>    Copying and distribution of this script, with or without modification,
>    are permitted in any medium without royalty provided the copyright
>    notice and this notice are preserved.  */
> OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
>      "elf64-x86-64")
> OUTPUT_ARCH(i386:x86-64)
> ENTRY(_start)
> SEARCH_DIR("/home/gary/gcc_virgin_build/install/x86_64-pc-linux-gnu/lib64"); SEARCH_DIR("/home/gary/gcc_virgin_build/install/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/home/gary/gcc_virgin_build/install/x86_64-pc-linux-gnu/lib"); SEARCH_DIR("/home/gary/gcc_virgin_build/install/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
> SECTIONS
> {
>   PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS;
>   .interp         : { *(.interp) }
>   .note.gnu.build-id  : { *(.note.gnu.build-id) }
>   .hash           : { *(.hash) }
>   .gnu.hash       : { *(.gnu.hash) }
>   .dynsym         : { *(.dynsym) }
>   .dynstr         : { *(.dynstr) }
>   .gnu.version    : { *(.gnu.version) }
>   .gnu.version_d  : { *(.gnu.version_d) }
>   .gnu.version_r  : { *(.gnu.version_r) }
>   .rela.dyn       :
>     {
>       *(.rela.init)
>       *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
>       *(.rela.fini)
>       *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
>       *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
>       *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
>       *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
>       *(.rela.ctors)
>       *(.rela.dtors)
>       *(.rela.got)
>       *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
>       *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
>       *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
>       *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
>       *(.rela.ifunc)
>     }
>   .rela.plt       :
>     {
>       *(.rela.plt)
>       PROVIDE_HIDDEN (__rela_iplt_start = .);
>       *(.rela.iplt)
>       PROVIDE_HIDDEN (__rela_iplt_end = .);
>     }
>   . = ALIGN(CONSTANT (MAXPAGESIZE));
>   .init           :
>   {
>     KEEP (*(SORT_NONE(.init)))
>   }
>   .plt            : { *(.plt) *(.iplt) }
> .plt.got        : { *(.plt.got) }
> .plt.sec        : { *(.plt.sec) }
>   .text           :
>   {
>     *(.text.unlikely .text.*_unlikely .text.unlikely.*)
>     *(.text.exit .text.exit.*)
>     *(.text.startup .text.startup.*)
>     *(.text.hot .text.hot.*)
>     *(SORT(.text.sorted.*))
>     *(.text .stub .text.* .gnu.linkonce.t.*)
>     /* .gnu.warning sections are handled specially by elf.em.  */
>     *(.gnu.warning)
>   }
>   .fini           :
>   {
>     KEEP (*(SORT_NONE(.fini)))
>   }
>   PROVIDE (__etext = .);
>   PROVIDE (_etext = .);
>   PROVIDE (etext = .);
>   . = ALIGN(CONSTANT (MAXPAGESIZE));
>   /* Adjust the address for the rodata segment.  We want to adjust up to
>      the same address within the page on the next page up.  */
>   . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));
>   .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
>   .rodata1        : { *(.rodata1) }
>   .eh_frame_hdr   : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }
>   .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }
>   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
>   .gnu_extab   : ONLY_IF_RO { *(.gnu_extab*) }
>   /* These sections are generated by the Sun/Oracle C++ compiler.  */
>   .exception_ranges   : ONLY_IF_RO { *(.exception_ranges*) }
>   /* Adjust the address for the data segment.  We want to adjust up to
>      the same address within the page on the next page up.  */
>   . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
>   /* Exception handling  */
>   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) }
>   .gnu_extab      : ONLY_IF_RW { *(.gnu_extab) }
>   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
>   .exception_ranges   : ONLY_IF_RW { *(.exception_ranges*) }
>   /* Thread Local Storage sections  */
>   .tdata  :
>    {
>      PROVIDE_HIDDEN (__tdata_start = .);
>      *(.tdata .tdata.* .gnu.linkonce.td.*)
>    }
>   .tbss  : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
>   .preinit_array    :
>   {
>     PROVIDE_HIDDEN (__preinit_array_start = .);
>     KEEP (*(.preinit_array))
>     PROVIDE_HIDDEN (__preinit_array_end = .);
>   }
>   .init_array    :
>   {
>     PROVIDE_HIDDEN (__init_array_start = .);
>     KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
>     KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
>     PROVIDE_HIDDEN (__init_array_end = .);
>   }
>   .fini_array    :
>   {
>     PROVIDE_HIDDEN (__fini_array_start = .);
>     KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
>     KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
>     PROVIDE_HIDDEN (__fini_array_end = .);
>   }
>   .ctors          :
>   {
>     /* gcc uses crtbegin.o to find the start of
>        the constructors, so we make sure it is
>        first.  Because this is a wildcard, it
>        doesn't matter if the user does not
>        actually link against crtbegin.o; the
>        linker won't look for a file to match a
>        wildcard.  The wildcard also means that it
>        doesn't matter which directory crtbegin.o
>        is in.  */
>     KEEP (*crtbegin.o(.ctors))
>     KEEP (*crtbegin?.o(.ctors))
>     /* We don't want to include the .ctor section from
>        the crtend.o file until after the sorted ctors.
>        The .ctor section from the crtend file contains the
>        end of ctors marker and it must be last */
>     KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
>     KEEP (*(SORT(.ctors.*)))
>     KEEP (*(.ctors))
>   }
>   .dtors          :
>   {
>     KEEP (*crtbegin.o(.dtors))
>     KEEP (*crtbegin?.o(.dtors))
>     KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
>     KEEP (*(SORT(.dtors.*)))
>     KEEP (*(.dtors))
>   }
>   .jcr            : { KEEP (*(.jcr)) }
>   .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) }
>   .dynamic        : { *(.dynamic) }
>   .got            : { *(.got) *(.igot) }
>   . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .);
>   .got.plt        : { *(.got.plt) *(.igot.plt) }
>   .data           :
>   {
>     *(.data .data.* .gnu.linkonce.d.*)
>     SORT(CONSTRUCTORS)
>   }
>   .data1          : { *(.data1) }
>   _edata = .; PROVIDE (edata = .);
>   . = .;
>   __bss_start = .;
>   .bss            :
>   {
>    *(.dynbss)
>    *(.bss .bss.* .gnu.linkonce.b.*)
>    *(COMMON)
>    /* Align here to ensure that the .bss section occupies space up to
>       _end.  Align after .bss to ensure correct alignment even if the
>       .bss section disappears because there are no input sections.
>       FIXME: Why do we need it? When there is no .bss section, we do not
>       pad the .data section.  */
>    . = ALIGN(. != 0 ? 64 / 8 : 1);
>   }
>   .lbss   :
>   {
>     *(.dynlbss)
>     *(.lbss .lbss.* .gnu.linkonce.lb.*)
>     *(LARGE_COMMON)
>   }
>   . = ALIGN(64 / 8);
>   . = SEGMENT_START("ldata-segment", .);
>   .lrodata   ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
>   {
>     *(.lrodata .lrodata.* .gnu.linkonce.lr.*)
>   }
>   .ldata   ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
>   {
>     *(.ldata .ldata.* .gnu.linkonce.l.*)
>     . = ALIGN(. != 0 ? 64 / 8 : 1);
>   }
>   . = ALIGN(64 / 8);
>   _end = .; PROVIDE (end = .);
>   . = DATA_SEGMENT_END (.);
>   /* Stabs debugging sections.  */
>   .stab          0 : { *(.stab) }
>   .stabstr       0 : { *(.stabstr) }
>   .stab.excl     0 : { *(.stab.excl) }
>   .stab.exclstr  0 : { *(.stab.exclstr) }
>   .stab.index    0 : { *(.stab.index) }
>   .stab.indexstr 0 : { *(.stab.indexstr) }
>   .comment       0 : { *(.comment) }
>   .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) }
>   /* DWARF debug sections.
>      Symbols in the DWARF debugging sections are relative to the beginning
>      of the section so we begin them at 0.  */
>   /* DWARF 1 */
>   .debug          0 : { *(.debug) }
>   .line           0 : { *(.line) }
>   /* GNU DWARF 1 extensions */
>   .debug_srcinfo  0 : { *(.debug_srcinfo) }
>   .debug_sfnames  0 : { *(.debug_sfnames) }
>   /* DWARF 1.1 and DWARF 2 */
>   .debug_aranges  0 : { *(.debug_aranges) }
>   .debug_pubnames 0 : { *(.debug_pubnames) }
>   /* DWARF 2 */
>   .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
>   .debug_abbrev   0 : { *(.debug_abbrev) }
>   .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
>   .debug_frame    0 : { *(.debug_frame) }
>   .debug_str      0 : { *(.debug_str) }
>   .debug_loc      0 : { *(.debug_loc) }
>   .debug_macinfo  0 : { *(.debug_macinfo) }
>   /* SGI/MIPS DWARF 2 extensions */
>   .debug_weaknames 0 : { *(.debug_weaknames) }
>   .debug_funcnames 0 : { *(.debug_funcnames) }
>   .debug_typenames 0 : { *(.debug_typenames) }
>   .debug_varnames  0 : { *(.debug_varnames) }
>   /* DWARF 3 */
>   .debug_pubtypes 0 : { *(.debug_pubtypes) }
>   .debug_ranges   0 : { *(.debug_ranges) }
>   /* DWARF Extension.  */
>   .debug_macro    0 : { *(.debug_macro) }
>   .debug_addr     0 : { *(.debug_addr) }
>   .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
>   /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
> }
>
>
> ==================================================
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../x86_64-pc-linux-gnu/bin/ld: mode elf_x86_64
> attempt to open /usr/lib/x86_64-linux-gnu/crt1.o succeeded
> /usr/lib/x86_64-linux-gnu/crt1.o
> attempt to open /usr/lib/x86_64-linux-gnu/crti.o succeeded
> /usr/lib/x86_64-linux-gnu/crti.o
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/crtbegin.o succeeded
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/crtbegin.o
> attempt to open ldecod_src/nal.o succeeded
> ldecod_src/nal.o
> attempt to open ldecod_src/mbuffer_mvc.o succeeded
> ldecod_src/mbuffer_mvc.o
> attempt to open ldecod_src/image.o succeeded
> ldecod_src/image.o
> attempt to open ldecod_src/mb_access.o succeeded
> ldecod_src/mb_access.o
> attempt to open ldecod_src/memalloc.o succeeded
> ldecod_src/memalloc.o
> attempt to open ldecod_src/mc_prediction.o succeeded
> ldecod_src/mc_prediction.o
> attempt to open ldecod_src/mb_prediction.o succeeded
> ldecod_src/mb_prediction.o
> attempt to open ldecod_src/intra4x4_pred_mbaff.o succeeded
> ldecod_src/intra4x4_pred_mbaff.o
> attempt to open ldecod_src/loop_filter_mbaff.o succeeded
> ldecod_src/loop_filter_mbaff.o
> attempt to open ldecod_src/context_ini.o succeeded
> ldecod_src/context_ini.o
> attempt to open ldecod_src/configfile.o succeeded
> ldecod_src/configfile.o
> attempt to open ldecod_src/cabac.o succeeded
> ldecod_src/cabac.o
> attempt to open ldecod_src/sei.o succeeded
> ldecod_src/sei.o
> attempt to open ldecod_src/leaky_bucket.o succeeded
> ldecod_src/leaky_bucket.o
> attempt to open ldecod_src/filehandle.o succeeded
> ldecod_src/filehandle.o
> attempt to open ldecod_src/errorconcealment.o succeeded
> ldecod_src/errorconcealment.o
> attempt to open ldecod_src/decoder_test.o succeeded
> ldecod_src/decoder_test.o
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../x86_64-pc-linux-gnu/bin/ld: ldecod_src/decoder_test.o:(.bss+0x0): multiple definition of `cfgparams'; ldecod_src/configfile.o:(.bss+0x0): first defined here
> attempt to open ldecod_src/img_process.o succeeded
> ldecod_src/img_process.o
> attempt to open ldecod_src/mv_prediction.o succeeded
> ldecod_src/mv_prediction.o
> attempt to open ldecod_src/fmo.o succeeded
> ldecod_src/fmo.o
> attempt to open ldecod_src/output.o succeeded
> ldecod_src/output.o
> attempt to open ldecod_src/mc_direct.o succeeded
> ldecod_src/mc_direct.o
> attempt to open ldecod_src/rtp.o succeeded
> ldecod_src/rtp.o
> attempt to open ldecod_src/nalucommon.o succeeded
> ldecod_src/nalucommon.o
> attempt to open ldecod_src/config_common.o succeeded
> ldecod_src/config_common.o
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../x86_64-pc-linux-gnu/bin/ld: ldecod_src/config_common.o:(.bss+0x0): multiple definition of `cfgparams'; ldecod_src/configfile.o:(.bss+0x0): first defined here
> attempt to open ldecod_src/intra_chroma_pred.o succeeded
> ldecod_src/intra_chroma_pred.o
> attempt to open ldecod_src/transform8x8.o succeeded
> ldecod_src/transform8x8.o
> attempt to open ldecod_src/blk_prediction.o succeeded
> ldecod_src/blk_prediction.o
> attempt to open ldecod_src/intra8x8_pred_mbaff.o succeeded
> ldecod_src/intra8x8_pred_mbaff.o
> attempt to open ldecod_src/erc_do_i.o succeeded
> ldecod_src/erc_do_i.o
> attempt to open ldecod_src/io_tiff.o succeeded
> ldecod_src/io_tiff.o
> attempt to open ldecod_src/mbuffer.o succeeded
> ldecod_src/mbuffer.o
> attempt to open ldecod_src/block.o succeeded
> ldecod_src/block.o
> attempt to open ldecod_src/intra4x4_pred.o succeeded
> ldecod_src/intra4x4_pred.o
> attempt to open ldecod_src/transform.o succeeded
> ldecod_src/transform.o
> attempt to open ldecod_src/annexb.o succeeded
> ldecod_src/annexb.o
> attempt to open ldecod_src/ldecod.o succeeded
> ldecod_src/ldecod.o
> attempt to open ldecod_src/macroblock.o succeeded
> ldecod_src/macroblock.o
> attempt to open ldecod_src/vlc.o succeeded
> ldecod_src/vlc.o
> attempt to open ldecod_src/parset.o succeeded
> ldecod_src/parset.o
> attempt to open ldecod_src/loop_filter_normal.o succeeded
> ldecod_src/loop_filter_normal.o
> attempt to open ldecod_src/parsetcommon.o succeeded
> ldecod_src/parsetcommon.o
> attempt to open ldecod_src/erc_do_p.o succeeded
> ldecod_src/erc_do_p.o
> attempt to open ldecod_src/loopFilter.o succeeded
> ldecod_src/loopFilter.o
> attempt to open ldecod_src/intra16x16_pred_mbaff.o succeeded
> ldecod_src/intra16x16_pred_mbaff.o
> attempt to open ldecod_src/intra4x4_pred_normal.o succeeded
> ldecod_src/intra4x4_pred_normal.o
> attempt to open ldecod_src/intra16x16_pred_normal.o succeeded
> ldecod_src/intra16x16_pred_normal.o
> attempt to open ldecod_src/win32.o succeeded
> ldecod_src/win32.o
> attempt to open ldecod_src/intra16x16_pred.o succeeded
> ldecod_src/intra16x16_pred.o
> attempt to open ldecod_src/intra8x8_pred_normal.o succeeded
> ldecod_src/intra8x8_pred_normal.o
> attempt to open ldecod_src/io_raw.o succeeded
> ldecod_src/io_raw.o
> attempt to open ldecod_src/img_io.o succeeded
> ldecod_src/img_io.o
> attempt to open ldecod_src/nalu.o succeeded
> ldecod_src/nalu.o
> attempt to open ldecod_src/quant.o succeeded
> ldecod_src/quant.o
> attempt to open ldecod_src/intra8x8_pred.o succeeded
> ldecod_src/intra8x8_pred.o
> attempt to open ldecod_src/erc_api.o succeeded
> ldecod_src/erc_api.o
> attempt to open ldecod_src/header.o succeeded
> ldecod_src/header.o
> attempt to open ldecod_src/biaridecod.o succeeded
> ldecod_src/biaridecod.o
> attempt to open ldecod_src/input.o succeeded
> ldecod_src/input.o
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libm.so failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libm.a failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libm.so failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libm.a failed
> attempt to open /lib/x86_64-linux-gnu/libm.so failed
> attempt to open /lib/x86_64-linux-gnu/libm.a failed
> attempt to open /lib/../lib64/libm.so failed
> attempt to open /lib/../lib64/libm.a failed
> attempt to open /usr/lib/x86_64-linux-gnu/libm.so succeeded
> opened script file /usr/lib/x86_64-linux-gnu/libm.so
> /usr/lib/x86_64-linux-gnu/libm.so
> opened script file /usr/lib/x86_64-linux-gnu/libm.so
> attempt to open /lib/x86_64-linux-gnu/libm.so.6 succeeded
> /lib/x86_64-linux-gnu/libm.so.6
> attempt to open /usr/lib/x86_64-linux-gnu/libmvec_nonshared.a succeeded
> /usr/lib/x86_64-linux-gnu/libmvec_nonshared.a
> attempt to open /lib/x86_64-linux-gnu/libmvec.so.1 succeeded
> /lib/x86_64-linux-gnu/libmvec.so.1
> /usr/lib/x86_64-linux-gnu/libmvec_nonshared.a
> /lib/x86_64-linux-gnu/libmvec.so.1
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc.so failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc.a succeeded
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc.a
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc_s.so failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc_s.a failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libgcc_s.so succeeded
> opened script file /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libgcc_s.so
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libgcc_s.so
> opened script file /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libgcc_s.so
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libgcc_s.so.1 succeeded
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libgcc_s.so.1
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc.so failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc.a succeeded
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc.a
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libc.so failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libc.a failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libc.so failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libc.a failed
> attempt to open /lib/x86_64-linux-gnu/libc.so failed
> attempt to open /lib/x86_64-linux-gnu/libc.a failed
> attempt to open /lib/../lib64/libc.so failed
> attempt to open /lib/../lib64/libc.a failed
> attempt to open /usr/lib/x86_64-linux-gnu/libc.so succeeded
> opened script file /usr/lib/x86_64-linux-gnu/libc.so
> /usr/lib/x86_64-linux-gnu/libc.so
> opened script file /usr/lib/x86_64-linux-gnu/libc.so
> attempt to open /lib/x86_64-linux-gnu/libc.so.6 succeeded
> /lib/x86_64-linux-gnu/libc.so.6
> attempt to open /usr/lib/x86_64-linux-gnu/libc_nonshared.a succeeded
> /usr/lib/x86_64-linux-gnu/libc_nonshared.a
> (/usr/lib/x86_64-linux-gnu/libc_nonshared.a)elf-init.oS
> attempt to open /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 succeeded
> /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
> /usr/lib/x86_64-linux-gnu/libc_nonshared.a
> /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc.so failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc.a succeeded
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc.a
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc_s.so failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc_s.a failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libgcc_s.so succeeded
> opened script file /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libgcc_s.so
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libgcc_s.so
> opened script file /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libgcc_s.so
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libgcc_s.so.1 succeeded
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../lib64/libgcc_s.so.1
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc.so failed
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc.a succeeded
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/libgcc.a
> attempt to open /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/crtend.o succeeded
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/crtend.o
> attempt to open /usr/lib/x86_64-linux-gnu/crtn.o succeeded
> /usr/lib/x86_64-linux-gnu/crtn.o
> ld-linux-x86-64.so.2 needed by /lib/x86_64-linux-gnu/libm.so.6
> found ld-linux-x86-64.so.2 at /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
> /home/gary/gcc_virgin_build/install/lib/gcc/x86_64-pc-linux-gnu/11.0.1/../../../../x86_64-pc-linux-gnu/bin/ld: link errors found, deleting executable `ldecod_r'
> collect2: error: ld returned 1 exit status
> specmake: *** [/home/gary/spec/cpu2017/benchspec/Makefile.defaults:337: ldecod_r] Error 1
>
> Thanks
>
> Gary
>
>
> CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and contains information that is confidential and proprietary to Ampere Computing or its subsidiaries. It is to be used solely for the purpose of furthering the parties' business relationship. Any unauthorized review, copying, or distribution of this email (or any attachments thereto) is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email and any attachments thereto.


More information about the Gcc mailing list