View mode: basic / threaded / horizontal-split · Log in · Help
October 31, 2008
[Issue 2436] New: Unexpected OPTLINK termination
http://d.puremagic.com/issues/show_bug.cgi?id=2436

          Summary: Unexpected OPTLINK termination
          Product: D
          Version: 2.020
         Platform: PC
       OS/Version: Windows
           Status: NEW
         Keywords: link-failure
         Severity: normal
         Priority: P2
        Component: DMD
       AssignedTo: bugzilla@digitalmars.com
       ReportedBy: samukha@voliacable.com


optlink fails to link an object file compiled with dmd 2.020 with -g or -gc
switch.

CL: link test,,,user32+kernel32/co/noi;


--
October 31, 2008
[Issue 2436] Unexpected OPTLINK termination
http://d.puremagic.com/issues/show_bug.cgi?id=2436





------- Comment #1 from samukha@voliacable.com  2008-10-31 09:13 -------
Created an attachment (id=277)
--> (http://d.puremagic.com/issues/attachment.cgi?id=277&action=view)
offending obj


--
October 31, 2008
[Issue 2436] Unexpected OPTLINK termination
http://d.puremagic.com/issues/show_bug.cgi?id=2436


samukha@voliacable.com changed:

          What    |Removed                     |Added
----------------------------------------------------------------------------
          Severity|normal                      |critical




--
November 06, 2008
Re: [Issue 2436] New: Unexpected OPTLINK termination
d-bugmail@puremagic.com wrote:
> http://d.puremagic.com/issues/show_bug.cgi?id=2436
> 
>            Summary: Unexpected OPTLINK termination
>            Product: D
>            Version: 2.020
>           Platform: PC
>         OS/Version: Windows
>             Status: NEW
>           Keywords: link-failure
>           Severity: normal
>           Priority: P2
>          Component: DMD
>         AssignedTo: bugzilla@digitalmars.com
>         ReportedBy: samukha@voliacable.com
> 
> 
> optlink fails to link an object file compiled with dmd 2.020 with -g or -gc
> switch.
> 
> CL: link test,,,user32+kernel32/co/noi;
> 
> 

I don't think that's an OPTLINK bug -- that obj file seems to be 
defective. And it's a really complicated obj file! Provide the source 
code for the smallest case which reproduces the problem.

Is it the same as #1439?
November 09, 2008
Re: [Issue 2436] New: Unexpected OPTLINK termination
On Thu, 06 Nov 2008 11:42:01 +0100, Don <nospam@nospam.com> wrote:

>d-bugmail@puremagic.com wrote:
>> http://d.puremagic.com/issues/show_bug.cgi?id=2436
>> 
>>            Summary: Unexpected OPTLINK termination
>>            Product: D
>>            Version: 2.020
>>           Platform: PC
>>         OS/Version: Windows
>>             Status: NEW
>>           Keywords: link-failure
>>           Severity: normal
>>           Priority: P2
>>          Component: DMD
>>         AssignedTo: bugzilla@digitalmars.com
>>         ReportedBy: samukha@voliacable.com
>> 
>> 
>> optlink fails to link an object file compiled with dmd 2.020 with -g or -gc
>> switch.
>> 
>> CL: link test,,,user32+kernel32/co/noi;
>> 
>> 
>
>I don't think that's an OPTLINK bug -- that obj file seems to be 
>defective.

Then I think it's both dmd and optlink bug. The former is buggy
because it produces invalid object file. The latter cannot gracefully
recover from invalid input, so it's buggy as well.

>And it's a really complicated obj file! Provide the source 
>code for the smallest case which reproduces the problem.
>

Changing/removing seemingly arbitrary stuff makes the error disappear.
I don't have a smaller example yet.

>Is it the same as #1439?
November 11, 2008
Re: [Issue 2436] New: Unexpected OPTLINK termination
Max Samukha wrote:
> On Thu, 06 Nov 2008 11:42:01 +0100, Don <nospam@nospam.com> wrote:
> 
>> d-bugmail@puremagic.com wrote:
>>> http://d.puremagic.com/issues/show_bug.cgi?id=2436
>>>
>>>            Summary: Unexpected OPTLINK termination
>>>            Product: D
>>>            Version: 2.020
>>>           Platform: PC
>>>         OS/Version: Windows
>>>             Status: NEW
>>>           Keywords: link-failure
>>>           Severity: normal
>>>           Priority: P2
>>>          Component: DMD
>>>         AssignedTo: bugzilla@digitalmars.com
>>>         ReportedBy: samukha@voliacable.com
>>>
>>>
>>> optlink fails to link an object file compiled with dmd 2.020 with -g or -gc
>>> switch.
>>>
>>> CL: link test,,,user32+kernel32/co/noi;
>>>
>>>
>> I don't think that's an OPTLINK bug -- that obj file seems to be 
>> defective.
> 
> Then I think it's both dmd and optlink bug. The former is buggy
> because it produces invalid object file. The latter cannot gracefully
> recover from invalid input, so it's buggy as well.

I checked again, and the obj file seems to be OK. So I'm wrong about 
that -- it's just an OPTLINK problem.
> 
>> And it's a really complicated obj file! Provide the source 
>> code for the smallest case which reproduces the problem.
>>
> 
> Changing/removing seemingly arbitrary stuff makes the error disappear.
> I don't have a smaller example yet.

Yeah. But it probably won't get fixed unless you can simplify it.
Mind you, OPTLINK is unlikely to get fixed, anyway. But maybe Walter can 
change DMD slightly to work around the optlink bug.

>> Is it the same as #1439?
#1439 shows that something bad happens when the symbol length is a 
particular length (out-by-1 error?). I think this is quite likely to be 
the same issue, since you have so many templates in there.
November 11, 2008
Re: [Issue 2436] New: Unexpected OPTLINK termination
On Tue, 11 Nov 2008 10:48:11 +0100, Don <nospam@nospam.com> wrote:

>Max Samukha wrote:
>> On Thu, 06 Nov 2008 11:42:01 +0100, Don <nospam@nospam.com> wrote:
>> 
>>> d-bugmail@puremagic.com wrote:
>>>> http://d.puremagic.com/issues/show_bug.cgi?id=2436
>>>>
>>>>            Summary: Unexpected OPTLINK termination
>>>>            Product: D
>>>>            Version: 2.020
>>>>           Platform: PC
>>>>         OS/Version: Windows
>>>>             Status: NEW
>>>>           Keywords: link-failure
>>>>           Severity: normal
>>>>           Priority: P2
>>>>          Component: DMD
>>>>         AssignedTo: bugzilla@digitalmars.com
>>>>         ReportedBy: samukha@voliacable.com
>>>>
>>>>
>>>> optlink fails to link an object file compiled with dmd 2.020 with -g or -gc
>>>> switch.
>>>>
>>>> CL: link test,,,user32+kernel32/co/noi;
>>>>
>>>>
>>> I don't think that's an OPTLINK bug -- that obj file seems to be 
>>> defective.
>> 
>> Then I think it's both dmd and optlink bug. The former is buggy
>> because it produces invalid object file. The latter cannot gracefully
>> recover from invalid input, so it's buggy as well.
>
>I checked again, and the obj file seems to be OK. So I'm wrong about 
>that -- it's just an OPTLINK problem.
>> 
>>> And it's a really complicated obj file! Provide the source 
>>> code for the smallest case which reproduces the problem.
>>>
>> 
>> Changing/removing seemingly arbitrary stuff makes the error disappear.
>> I don't have a smaller example yet.
>
>Yeah. But it probably won't get fixed unless you can simplify it.
>Mind you, OPTLINK is unlikely to get fixed, anyway. But maybe Walter can 
>change DMD slightly to work around the optlink bug.
I'll try to reduce it when I have time.
>
>>> Is it the same as #1439?
>#1439 shows that something bad happens when the symbol length is a 
>particular length (out-by-1 error?). I think this is quite likely to be 
>the same issue, since you have so many templates in there.

It may be that issue. But it seems to depend not only on the length of
a particular symbol generated by a template instantiation. For
example, the error dissapears when I remove an unreferenced
non-templated function, while other declarations can be safely removed
without affecting the bug. No clue
November 13, 2008
[Issue 2436] Unexpected OPTLINK termination
http://d.puremagic.com/issues/show_bug.cgi?id=2436





------- Comment #2 from samukha@voliacable.com  2008-11-13 00:55 -------
Probably a duplicate of #1439 or/and #424. I suggest voting for #424 as it
already has a couple of votes :)


--
February 17, 2009
[Issue 2436] Unexpected OPTLINK termination
http://d.puremagic.com/issues/show_bug.cgi?id=2436





------- Comment #3 from bugzilla@digitalmars.com  2009-02-16 19:35 -------
I tried linking this obj file, and it linked without complaint, and runs
printing "Test".

I suspect the problem may be with multithreading on a multicore system. My
system is single core. If you're running multicore, is there a way to use only
one core and try it that way?


--
February 17, 2009
[Issue 2436] Unexpected OPTLINK termination
http://d.puremagic.com/issues/show_bug.cgi?id=2436





------- Comment #4 from samukha@voliacable.com  2009-02-17 02:45 -------
It fails on a single core. Are you sure you specified /co for the linker? It
fails only with the CodeView stuff turned on. Please try to link it like this:
dmd test.obj -g


--
« First   ‹ Prev
1 2
Top | Discussion index | About this forum | D home