https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104317
Bug ID: 104317 Summary: D language: rt.config module doesn't work as expected in GDC 9/10 (multiple definition linker error) Product: gcc Version: 10.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: d Assignee: ibuclaw at gdcproject dot org Reporter: siarhei.siamashka at gmail dot com Target Milestone: --- The rt.config module provides a set of configuration variables with various ways to override them as documented here: https://dlang.org/phobos/rt_config.html The following small application can be used to test it: import std.stdio; extern(C) __gshared bool rt_cmdline_enabled = false; void main(string[] args) { writeln(args); } == Expected correct result: == $ gdc test.d && ./a.out --DRT-this-cmdline-argument-should-not-be-filtered-out ["./a.out", "--DRT-this-cmdline-argument-should-not-be-filtered-out"] == Got: == $ gdc-9.3.0 test.d /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/libgdruntime.a(lt8-config.o):/var/tmp/portage/sys-devel/gcc-9.3.0-r1/work/gcc-9.3.0/libphobos/libdruntime/rt/config.d:48: multiple definition of `rt_cmdline_enabled'; /tmp/ccvDzGs7.o:(.bss+0x0): first defined here collect2: error: ld returned 1 exit status $ gdc-12.0.1 test.d && ./a.out --DRT-this-cmdline-argument-should-not-be-filtered-out ["./a.out", "--DRT-this-cmdline-argument-should-not-be-filtered-out"]