digitalmars.D.bugs - [Issue 3975] New: Misnamed main causes linker errors
- d-bugmail puremagic.com (37/37) Mar 16 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3975
- d-bugmail puremagic.com (15/15) Feb 07 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3975
- d-bugmail puremagic.com (11/11) Feb 07 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3975
- d-bugmail puremagic.com (17/17) Feb 11 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3975
http://d.puremagic.com/issues/show_bug.cgi?id=3975 Summary: Misnamed main causes linker errors Product: D Version: 1.057 Platform: Other OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: baseball.mjp gmail.com --- typo.d: void mann() { } michael michael-laptop:~/d/projects$ dmd typo.d /home/michael/dmd/linux/bin/../lib/libphobos.a(dmain2_7a_1a5.o): In function `main': internal/dmain2.d:(.text.main+0x74): undefined reference to `_Dmain' internal/dmain2.d:(.text.main+0xc5): undefined reference to `_Dmain' /home/michael/dmd/linux/bin/../lib/libphobos.a(deh2_171_525.o): In function `_D4deh213__eh_finddataFPvZPS4deh213DHandlerTable': internal/deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x4): undefined reference to `_deh_beg' internal/deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0xc): undefined reference to `_deh_beg' internal/deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x13): undefined reference to `_deh_end' internal/deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x37): undefined reference to `_deh_end' collect2: ld returned 1 exit status --- errorlevel 1 Should this be happening? Compiling with -c is fine, and produces no output. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 16 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3975 Bernard Helyer <blood.of.life gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |blood.of.life gmail.com Resolution| |INVALID 02:33:12 PST --- Yes, that is working as intended. When you compile without '-c' you are telling DMD to build you an executable -- one whose entry point is 'main'; so the linker looks for the function, and can't find it, and tells you so. This behaviour is the same as in C or C++. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 07 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3975 bearophile_hugs eml.cc changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bearophile_hugs eml.cc Yet, I'd like the front-end to catch (and show an error message) this common bug before it reaches the linker, if possible. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 07 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3975 19:53:50 PST --- Agreed, but it's not quite as simple as checking the existence of a 'main' function when compiling without -c. If object files, libraries, or anything of the sort are being used -- all those must be searched for a main function. On Linux, where linking is handled by GCC, this would lead to duplication of code and work -- all for a fairly minor issue. Another option is to merely issue a warning if we don't see one -- this would lead to spurious warnings, and as DMD has no granularity options when it comes to warnings, is not really an option. So I think the only viable option is to handle the simple case, where the only thing passed to DMD is source files (as we know Phobos doesn't have a main). Not ideal, but should catch cases where the user is genuinely confused by the linker output. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 11 2011