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

            Bug ID: 99812
           Summary: [11 regression] Many libphobos.druntime_shared etc.
                    tests FAIL
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: d
          Assignee: ibuclaw at gdcproject dot org
          Reporter: ro at gcc dot gnu.org
  Target Milestone: ---
            Target: *-*-solaris2.11

Between 20210326 (6081d8994ed1a0aef6b7f5fb34f091faa3580416) and 20210328
(d21001c793e97d88013d05226a8ea93a149726b1),
many libphobos tests started to FAIL:

+FAIL: libphobos.druntime_shared/core/atomic.d (test for excess errors)
+FAIL: libphobos.druntime_shared/core/sync/barrier.d (test for excess errors)
+FAIL: libphobos.druntime_shared/core/sync/condition.d (test for excess errors)
+FAIL: libphobos.druntime_shared/core/sync/mutex.d (test for excess errors)
+FAIL: libphobos.druntime_shared/core/sync/rwmutex.d (test for excess errors)
+FAIL: libphobos.druntime_shared/core/sync/semaphore.d (test for excess errors)
+FAIL: libphobos.druntime_shared/core/thread/fiber.d (test for excess errors)
+FAIL: libphobos.druntime_shared/core/thread/osthread.d (test for excess
errors)
+FAIL: libphobos.druntime_shared/core/time.d (test for excess errors)
+FAIL: libphobos.phobos_shared/std/algorithm/comparison.d (test for excess
errors)
+FAIL: libphobos.phobos_shared/std/algorithm/iteration.d (test for excess
errors)
+FAIL: libphobos.phobos_shared/std/algorithm/mutation.d (test for excess
errors)
+FAIL: libphobos.phobos_shared/std/base64.d (test for excess errors)
+FAIL: libphobos.phobos_shared/std/concurrency.d (test for excess errors)
+FAIL: libphobos.phobos_shared/std/conv.d (test for excess errors)
+FAIL: libphobos.phobos_shared/std/datetime/date.d (test for excess errors)
+FAIL: libphobos.phobos_shared/std/datetime/interval.d (test for excess errors)
+FAIL: libphobos.phobos_shared/std/datetime/stopwatch.d (test for excess
errors)
+FAIL: libphobos.phobos_shared/std/datetime/systime.d (test for excess errors)

+FAIL:
libphobos.phobos_shared/std/experimental/allocator/building_blocks/free_list.d
(test for excess errors)

+FAIL:
libphobos.phobos_shared/std/experimental/allocator/building_blocks/stats_collector.d
(test for excess errors)
+FAIL: libphobos.phobos_shared/std/experimental/allocator/package.d (test for
excess errors)
+FAIL: libphobos.phobos_shared/std/experimental/logger/core.d (test for excess
errors)
+FAIL: libphobos.phobos_shared/std/experimental/logger/filelogger.d (test for
excess errors)
 FAIL: libphobos.phobos_shared/std/experimental/logger/filelogger.d execution
test
+FAIL: libphobos.phobos_shared/std/experimental/logger/multilogger.d (test for
excess errors)

+FAIL: libphobos.phobos_shared/std/experimental/logger/multilogger.d (test for
excess errors)

+FAIL: libphobos.phobos_shared/std/experimental/logger/nulllogger.d (test for
excess errors)
+FAIL: libphobos.phobos_shared/std/file.d (test for excess errors)

+FAIL: libphobos.phobos_shared/std/mmfile.d (test for excess errors)
+FAIL: libphobos.phobos_shared/std/net/curl.d (test for excess errors)

+FAIL: libphobos.phobos_shared/std/numeric.d (test for excess errors)

+FAIL: libphobos.phobos_shared/std/parallelism.d (test for excess errors)

+FAIL: libphobos.phobos_shared/std/path.d (test for excess errors)
+FAIL: libphobos.phobos_shared/std/process.d (test for excess errors)
+FAIL: libphobos.phobos_shared/std/range/package.d (test for excess errors)

+FAIL: libphobos.phobos_shared/std/socket.d (test for excess errors)
+FAIL: libphobos.phobos_shared/std/stdio.d (test for excess errors)

+FAIL: libphobos.phobos_shared/std/traits.d (test for excess errors)
+FAIL: libphobos.phobos_shared/std/typecons.d (test for excess errors)

+FAIL: libphobos.phobos_shared/std/zip.d (test for excess errors)

The failures happen on both Solaris/SPARC and x86, 32 and 64-bit.  The error 
is always of the same kind:

+FAIL: libphobos.druntime_shared/core/atomic.d (test for excess errors)

Excess errors:
ld: warning: symbol '_D4core6atomic12__ModuleInfoZ' has differing sizes:
        (file /var/tmp//cchXf0Ca.o value=0x1c; file
/var/gcc/regression/master/11.4-gcc-gas/build/sparc-sun-solaris2.11/libphobos/src/.libs/libgphobos.so
value=0x14);
        /var/tmp//cchXf0Ca.o definition taken

This is caused by

commit fdfcb5353cc2b06fc80205cfcb3bc5ba25556264
Author: Iain Buclaw <ibuc...@gdcproject.org>
Date:   Fri Mar 26 15:46:24 2021 +0100

    libphobos: Build all modules with -fversion=Shared when configured with
--enable-shared

which dropped -fno-moduleinfo in both
libphobos.druntime_shared/druntime_shared.exp and
libphobos.phobos_shared/phobos_shared.exp.

I've spot-checked that manually rebuilding a failing testcase with
-fno-moduleinfo added back both avoids the linker warning and lets the test
execute
successfully.

Reply via email to