Jump to page: 1 24  
Page
Thread overview
[Issue 424] New: Unexpected OPTLINK Termination at EIP=0044C37B
Oct 10, 2006
d-bugmail
Oct 15, 2006
d-bugmail
Oct 16, 2006
d-bugmail
Oct 16, 2006
Walter Bright
Oct 16, 2006
d-bugmail
Oct 16, 2006
Walter Bright
Oct 16, 2006
d-bugmail
Nov 08, 2006
d-bugmail
Dec 27, 2006
d-bugmail
Mar 23, 2007
d-bugmail
Apr 07, 2007
d-bugmail
Sep 12, 2007
d-bugmail
Nov 15, 2007
d-bugmail
Nov 15, 2007
d-bugmail
Mar 05, 2008
d-bugmail
[Issue 424] Unexpected OPTLINK Termination at EIP=0044C37B (too many fixups)
Jun 26, 2008
d-bugmail
Nov 13, 2008
d-bugmail
Nov 13, 2008
d-bugmail
Nov 13, 2008
d-bugmail
Nov 21, 2008
d-bugmail
Nov 21, 2008
d-bugmail
Nov 21, 2008
d-bugmail
Feb 10, 2009
d-bugmail
Feb 11, 2009
d-bugmail
Feb 11, 2009
d-bugmail
Feb 11, 2009
d-bugmail
Feb 17, 2009
d-bugmail
Feb 17, 2009
d-bugmail
Mar 07, 2009
d-bugmail
Nov 03, 2009
Walter Bright
Nov 06, 2009
Walter Bright
October 10, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=424

           Summary: Unexpected OPTLINK Termination at EIP=0044C37B
           Product: D
           Version: unspecified
          Platform: PC
               URL: http://www.digitalmars.com/d/archives/digitalmars/D/bugs
                    /306.html
        OS/Version: Windows
            Status: NEW
          Severity: blocker
          Priority: P1
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: someanon@yahoo.com


I have some generated D code in a single source file ~ 30K LOC. On Windows I can compile it but cannot link it. (On Linux, there's no problem.)

Some web search leads me to the following, which seems related to the problem. I wonder if OPTLINK can be fixed now.

http://www.digitalmars.com/d/archives/digitalmars/D/bugs/306.html

Sun, 30 May 2004 20:54:18 -0700 "Walter" <newshound xx digitalmars.com> writes:

This happens when there are more than 16,000 fixups in a single .obj. Unfortunately, this isn't fixable at the moment.


http://www.digitalmars.com/d/archives/digitalmars/D/bugs/8283.html http://www.digitalmars.com/d/archives/digitalmars/D/bugs/306.html http://www.digitalmars.com/d/archives/digitalmars/D/41323.html


-- 

October 15, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=424


bugzilla@digitalmars.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|blocker                     |normal




------- Comment #1 from bugzilla@digitalmars.com  2006-10-14 23:17 -------
While important, I don't think it's a blocker. 30,000 lines of code in one module is unusually large, and can be split into smaller source files.


-- 

October 16, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=424





------- Comment #2 from someanon@yahoo.com  2006-10-15 22:07 -------
(In reply to comment #1)
> While important, I don't think it's a blocker. 30,000 lines of code in one module is unusually large, and can be split into smaller source files.
> 

It is a blocker at least for one user :-)

OK, let me elaborate a little more where I come from, and all the problems I've encountered:

When I started to use D on a hobby project, I organize the source code into modules as everyone typically does, but because of bug 386:

http://d.puremagic.com/issues/show_bug.cgi?id=386

I was so frustrated that I cannot get my code compile separately, and the compiler error message is useless, each time I spent hours and hours on them and cannot get them fixed. So I write some script to concat all my source files (togather with some generated ones) into a single huge .d file, and comment out all the 'module' and 'import' statements.  Then everything works.

After bug 386 is fixed. I tried to compile each source file separately again, now I no longer have 'import conflicts' problems, but I still cannot get many of the file compiled, the compiler just hangs: I guess it run into some infinite loop.  But unfortunately I cannot isolate the issue to send you a test case.

(search "infinite loop" on digitalmars.com will show some user report: e.g. http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D&artnum=42668 But I'm not sure, it's the same issue as mine.)

Then I went back to my original approach to generate a huge source file (and it
works); but maybe as my project grows, at certain point, it stops to link on
Windows.  (On Linux, it's fine).

And this is a OPTLINK problem. I hope you can fix it. Or as a workaround: if the generate obj is too large (> 16,000 fixups, I really don't understand what does it mean), can the compiler split the obj into several obj files? e.g. foo1.obj, foo2.obj, ...

If you ask the user the split the generated source files, first it's tedious, and it maybe run into some compiler problem, like the import one again.

So please fix this issue:

1) remove the (> 16,000 fixups) constraint.  It is a bug anyway.
2) or, the compiler automatically generate multiple .obj files, if (> 16,000
fixups)

Thanks.


-- 

October 16, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=424





------- Comment #3 from someanon@yahoo.com  2006-10-15 22:09 -------
Another "infinite loop" user report, maybe related:

http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=D.gnu&artnum=2134


-- 

October 16, 2006
d-bugmail@puremagic.com wrote:
> ------- Comment #3 from someanon@yahoo.com  2006-10-15 22:09 -------
> Another "infinite loop" user report, maybe related:
> 
> http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=D.gnu&artnum=2134

Doesn't infinite loop on current dmd.
October 16, 2006
d-bugmail@puremagic.com wrote:
> After bug 386 is fixed. I tried to compile each source file separately again,
> now I no longer have 'import conflicts' problems, but I still cannot get many
> of the file compiled, the compiler just hangs: I guess it run into some
> infinite loop.  But unfortunately I cannot isolate the issue to send you a test
> case.

Here's how to do it. Make a copy of your project. Create a .bat file that compiles it. Verify that it hangs. Now, keep deleting code until you have the minimum that produces the hang.

I've never seen one yet that couldn't be isolated down this way, including from people who swore it couldn't be done <g>. Don't worry about intelligently deciding what lines to delete. Delete something, even if it's just one line.
October 16, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=424





------- Comment #4 from braddr@puremagic.com  2006-10-16 02:11 -------
Let's not clutter this report up with more than one issue.  Please make sure a seprate bug is filed for the infinite loop issue.  This report is strictly about th eoptlink fixup limit.

Walter, can you please clarify where the limit exists and if it's authored by you or microsoft?  I don't do any windows development so I'm unfamiliar with the pieces.

Filer, would you please attach to this report an example .d file that fails with the error message?

Rather than discussing why or how this programming practice might be ill advised, can we talk about where the problem is and how or if it can be fixed. Each barrier to the use of D, whatever the reason, is a barrier that should at least be addressed in a FAQ and not dismissed as a bad practice.

Thanks,
Brad


-- 

November 08, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=424





------- Comment #5 from someanon@yahoo.com  2006-11-07 21:09 -------
any chance this will be fixed soon? it's a bug anyways.


-- 

December 27, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=424





------- Comment #6 from someanon@yahoo.com  2006-12-27 12:48 -------
can this one be fixed before 1.0 (Jan 01 2007)?


-- 

March 23, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=424





------- Comment #7 from someanon@yahoo.com  2007-03-22 22:32 -------
No update?


-- 

« First   ‹ Prev
1 2 3 4