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

            Bug ID: 92374
           Summary: Unable to link relocatable object when GCC is
                    configured with "--disable-comdat"
           Product: gcc
           Version: 7.4.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: g.hoogewerf at gmail dot com
  Target Milestone: ---

Recent versions of GCC exhibit problems building relocatable objects when GCC
is configured with "--disable-comdat".  The easiest way to reproduce the
problem is to link libstdc++.a into a relocatable object:

> ./test/arm-none-eabi/bin/arm-none-eabi-ld -r --whole-archive 
> ./test/arm-none-eabi/arm-none-eabi/lib/libstdc++.a -o test.o

The following error occurs in that case:

> `.LC2' referenced in section 
> `.gnu.linkonce.t._ZNSt7__cxx1117moneypunct_bynameIwLb0EEC2EPKcj' of ./test
> /arm-none-eabi/arm-none-eabi/lib/libstdc++.a(cxx11-wlocale-inst.o): defined 
> in discarded section 
> `.gnu.linkonce.r._ZSt16__convert_from_vRKPiPciPKcz.str1.4' of 
> ./test/arm-none-eabi/arm-none-eabi/lib/libstdc++.a(cxx11-wlocale-inst.o)
> [more errors to follow]

GCC configuration info:

> ./test/arm-none-eabi/bin/arm-none-eabi-gcc -v
> Using built-in specs.
> COLLECT_GCC=./test/arm-none-eabi/bin/arm-none-eabi-gcc
> COLLECT_LTO_WRAPPER=/scratch/arm-none-eabi-newlib/test/arm-none-eabi\
> /libexec/gcc/arm-none-eabi/7.4.1/lto-wrapper
> Target: arm-none-eabi
> Configured with: /src/gcc/configure --prefix=/scratch/arm-none-eabi-newlib\
> /test/arm-none-eabi --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu \
> --target=arm-none-eabi --enable-languages=c,c++ --disable-libssp \
> --disable-multilib --disable-comdat --disable-nls --disable-fixed-point \
> --disable-decimal-float --enable-__cxa_atexit --disable-lto \
> --with-newlib --with-sysroot=/scratch/arm-none-eabi-newlib/test\
> /arm-none-eabi/arm-none-eabi/libc
> Thread model: single
> gcc version 7.4.1 20191105 (GCC)

This issue is reproducible on gcc-7-branch and gcc-8-branch.  Trunk and the
gcc-9-branch seem to be unaffected.

Reply via email to