A hard to duplicate bug

Gary Oblock gary@amperecomputing.com
Thu Mar 4 22:07:50 GMT 2021


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.

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 Binutils mailing list