Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 May 2019 07:56:22 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   FYI: Unable to build -r501994 ports' devel/llvm60 on clang 8 based powerpc64 system: "BFD (GNU Binutils) 2.32 assertion fail elflink.c:2935"
Message-ID:  <0743B28F-3F61-401F-BD61-B69C4B207559@yahoo.com>

next in thread | raw e-mail | index | archive | help
This was in a poudriere bulk build on a head -r347549 based powerpc64
system with system clang 8 for cc and c++ and base/binutils
for the likes of ld. (The system has the llvm libunwind patches
for powerpc64 so throwing c++ exceptions work.)

[4397/4552] : && /usr/bin/c++ -fPIC -O2 -pipe -DNDEBUG =
-fstack-protector-strong -isystem /usr/local/include =
-fno-strict-aliasing  -DNDEBUG -isystem /usr/local/include -fPIC =
-fvisibility-inlines-hidden -Werror=3Ddate-time =
-Werror=3Dunguarded-availability-new -std=3Dc++11 -Wall -W =
-Wno-unused-parameter -Wwrite-strings -Wcast-qual =
-Wmissing-field-initializers -pedantic -Wno-long-long =
-Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor =
-Wstring-conversion -fcolor-diagnostics -ffunction-sections =
-fdata-sections -O2 -pipe -DNDEBUG -fstack-protector-strong -isystem =
/usr/local/include -fno-strict-aliasing  -DNDEBUG -isystem =
/usr/local/include  -fstack-protector-strong   -Wl,-z,origin  -Wl,-O3 =
-Wl,--gc-sections  =
-Wl,--version-script,/wrkdirs/usr/ports/devel/llvm60/work/.build/tools/lto=
/LTO.exports -shared -Wl,-soname,libLTO.so.6 -o lib/libLTO.so.6.0.1 =
tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o =
tools/lto/CMakeFiles/LTO.dir/lto.cpp.o -L/usr/local/lib =
-Wl,-rpath,"\$ORIGIN/../lib:/usr/local/lib" lib/libLLVM-6.0.so && :
FAILED: lib/libLTO.so.6.0.1=20
: && /usr/bin/c++ -fPIC -O2 -pipe -DNDEBUG -fstack-protector-strong =
-isystem /usr/local/include -fno-strict-aliasing  -DNDEBUG -isystem =
/usr/local/include -fPIC -fvisibility-inlines-hidden -Werror=3Ddate-time =
-Werror=3Dunguarded-availability-new -std=3Dc++11 -Wall -W =
-Wno-unused-parameter -Wwrite-strings -Wcast-qual =
-Wmissing-field-initializers -pedantic -Wno-long-long =
-Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor =
-Wstring-conversion -fcolor-diagnostics -ffunction-sections =
-fdata-sections -O2 -pipe -DNDEBUG -fstack-protector-strong -isystem =
/usr/local/include -fno-strict-aliasing  -DNDEBUG -isystem =
/usr/local/include  -fstack-protector-strong   -Wl,-z,origin  -Wl,-O3 =
-Wl,--gc-sections  =
-Wl,--version-script,/wrkdirs/usr/ports/devel/llvm60/work/.build/tools/lto=
/LTO.exports -shared -Wl,-soname,libLTO.so.6 -o lib/libLTO.so.6.0.1 =
tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o =
tools/lto/CMakeFiles/LTO.dir/lto.cpp.o -L/usr/local/lib =
-Wl,-rpath,"\$ORIGIN/../lib:/usr/local/lib" lib/libLLVM-6.0.so && :
/usr/bin/powerpc64-unknown-freebsd13.0-ld: BFD (GNU Binutils) 2.32 =
assertion fail elflink.c:2935
/usr/bin/powerpc64-unknown-freebsd13.0-ld: BFD (GNU Binutils) 2.32 =
assertion fail elflink.c:2935

The assert is the last BFD_ASSERT shown below:

/* Fix up the flags for a symbol.  This handles various cases which
   can only be fixed after all the input files are seen.  This is
   currently called by both adjust_dynamic_symbol and
   assign_sym_version, which is unnecessary but perhaps more robust in
   the face of future changes.  */

static bfd_boolean
_bfd_elf_fix_symbol_flags (struct elf_link_hash_entry *h,
                           struct elf_info_failed *eif)
{
. . .
  if (h->is_weakalias)
    {
      struct elf_link_hash_entry *def =3D weakdef (h);

      /* If the real definition is defined by a regular object file,
         don't do anything special.  See the longer description in
         _bfd_elf_adjust_dynamic_symbol, below.  */
      if (def->def_regular)
        {
          h =3D def;
          while ((h =3D h->u.alias) !=3D def)
            h->is_weakalias =3D 0;
        }
      else
        {
          while (h->root.type =3D=3D bfd_link_hash_indirect)
            h =3D (struct elf_link_hash_entry *) h->root.u.i.link;
          BFD_ASSERT (h->root.type =3D=3D bfd_link_hash_defined
                      || h->root.type =3D=3D bfd_link_hash_defweak);
          BFD_ASSERT (def->def_dynamic);
          BFD_ASSERT (def->root.type =3D=3D bfd_link_hash_defined);
          (*bed->elf_backend_copy_indirect_symbol) (eif->info, def, h);
        }
    }

  return TRUE;
}


=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0743B28F-3F61-401F-BD61-B69C4B207559>