Thread overview
[Issue 16295] REG since 2.069: undefined symbol that should be defined prevents separate compilation
Jul 19, 2016
Timothee Cour
Jul 27, 2016
Walter Bright
Jul 27, 2016
Timothee Cour
5 days ago
Walter Bright
July 19, 2016
https://issues.dlang.org/show_bug.cgi?id=16295

Timothee Cour <timothee.cour2@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |timothee.cour2@gmail.com
            Summary|REG since 2.069: undefined  |REG since 2.069: undefined
                   |symbol that should be       |symbol that should be
                   |defined                     |defined prevents separate
                   |                            |compilation

--- Comment #1 from Timothee Cour <timothee.cour2@gmail.com> ---
NOTE: this is very bad because it prevents separate compilation model.

this removes the undefined symbols:
$dmd -c -of$out_D/main.o main.d fund.d

this has undefined symbols:
$dmd -c -of$out_D/main.o main.d
$dmd -c -of$out_D/fun.o fun.d

_D4main8__T1AThZ1A8__T1BThZ1B5frontMFNaNbNiNfZPv is undefined in both main.o and fun.o

--
July 27, 2016
https://issues.dlang.org/show_bug.cgi?id=16295

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@digitalmars.com

--- Comment #2 from Walter Bright <bugzilla@digitalmars.com> ---
Does it work if you compile with -allinst ?

--
July 27, 2016
https://issues.dlang.org/show_bug.cgi?id=16295

--- Comment #3 from Timothee Cour <timothee.cour2@gmail.com> ---
(In reply to Walter Bright from comment #2)
> Does it work if you compile with -allinst ?

no, IIRC I had tried and that didn't work.

--
5 days ago
https://issues.dlang.org/show_bug.cgi?id=16295

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |WORKSFORME

--- Comment #4 from Walter Bright <bugzilla@digitalmars.com> ---
(In reply to Timothee Cour from comment #0)
> out_D=/tmp/
> 
> dmd=$dmd_069_X
> # dmd=$dmd_068_X
> # dmd=$ldc_X
> 
> $dmd -c -of$out_D/main.o main.d && nm $out_D/main.o | grep ' U _D4main8__'
> 
> For dmd v2.071.1 and dmd v2.069, we these undefined symbols; the ones starting with _D4main8_ should not be undefined:
> 
> U _D4main8__T1AThZ1A8__T1BThZ1B5emptyMFNaNbNdNiNfZi
> U _D4main8__T1AThZ1A8__T1BThZ1B5frontMFNaNbNiNfZPv
> U _D4main8__T1AThZ1A8__T1BThZ1B8popFrontMFNaNbNiNfZv

I see those in fun.o:

> nm fun.o
0000000000000000 t
0000000000000000 V __bzeroBytes
                 U _D15TypeInfo_Struct6__vtblZ
0000000000000000 V _D25TypeInfo_S4main__T1AThZQf6__initZ
0000000000000000 V _D35TypeInfo_S4main__T1AThZQf__T1BThZQf6__initZ
0000000000000000 R _D3fun12__ModuleInfoZ
0000000000000000 W _D3funQeFS4main__T1AThZQfZv
0000000000000000 W _D4main__T1AThZQf4testMFNaNbNiNfZv
0000000000000000 W _D4main__T1AThZQf4testMFZ14__foreachbody1MFNaNbNiNfhZi
0000000000000000 W _D4main__T1AThZQf5rangeMFNaNbNiNfZSQBh__TQBfThZQBl__T1BThZQf
0000000000000000 W _D4main__T1AThZQf7opApplyMFNaNbNiNfDFhZiZi
0000000000000000 W _D4main__T1AThZQf__T1BThZQf5emptyMFNaNbNdNiNfZi
0000000000000000 W _D4main__T1AThZQf__T1BThZQf5frontMFNaNbNiNfZPv
0000000000000000 W _D4main__T1AThZQf__T1BThZQf8popFrontMFNaNbNiNfZv
                 U _d_dso_registry
                 U __start_minfo
                 U __stop_minfo

with the current master. I'm going to resolve it as WORKSFORME. If it shows up again, we can revisit it.

--