Thread overview
[Issue 11251] New: Not able to link (Previous Definition Different)
Oct 14, 2013
Michal Minich
Oct 14, 2013
Walter Bright
Oct 15, 2013
Michal Minich
Oct 20, 2013
Kenji Hara
Oct 21, 2013
Walter Bright
October 14, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11251

           Summary: Not able to link (Previous Definition Different)
           Product: D
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: michal.minich@gmail.com


--- Comment #0 from Michal Minich <michal.minich@gmail.com> 2013-10-13 23:55:53 PDT ---
After building vibe.d in dmd 2.064 beta 1 as a lib I was not able to link it with application. It was working in dmd 2.063. Now I get:

Error 1: Previous Definition Different : _D12__entrypoint12__ModuleInfoZ

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 14, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11251


Walter Bright <bugzilla@digitalmars.com> changed:

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


--- Comment #1 from Walter Bright <bugzilla@digitalmars.com> 2013-10-14 15:12:22 PDT ---
Need a small test case.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11251



--- Comment #2 from Michal Minich <michal.minich@gmail.com> 2013-10-15 01:54:27 PDT ---
(In reply to comment #1)
> Need a small test case.

https://mega.co.nz/#!T5ojET6S!OSP3ezBAvRkbxTtXop7a5lpOgZo1a4MMZgVxJ4fpWko

I was not able to build absolutely minimal test case but you can download linked file where you will find prebuild libs using dmd 263 and 264, including source and .bat to rebuild them. Also small app that just links the file. You can find the build scripts for both compiler veresions are identical, yet the .lib fails to link when build and linked with dmd 264. Also invalid executable is generated.

Description of folders:

* VibeLink is test app just to link vibe*.lib file
* vibe-d is latest stable release

* VibeLink\build_263.bat
    run this to link with prebuild VibeLink\lib\vibe_dmd263_snn.lib using dmd
2.063

* VibeLink\build_264.bat
    run this to link with prebuild VibeLink\lib\vibe_dmd264beta1.lib using dmd
2.064

* vibe-d\build.bat
    run this to rebuild vibe.lib

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 20, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11251


Kenji Hara <k.hara.pg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |link-failure, pull


--- Comment #3 from Kenji Hara <k.hara.pg@gmail.com> 2013-10-19 22:51:57 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2685

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 20, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11251



--- Comment #4 from github-bugzilla@puremagic.com 2013-10-20 12:47:58 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/5a117c433d719a63e217e82232a3d0e7e83fd353 fix Issue 11251 - Not able to link (Previous Definition Different)

By #2540 , implicitly defined C main has been moved to __entrypoint module. But, the codegen generates ModuleInfo symbol for the module. And vibe.d has its own main function in library. Then, compiling uer progam with vibe.d library will cause the conflict of two ModuleInfo symbols of __entrypoint module.

Due to avoid ModuleInfo symbol generation for __entrypoint, I added a special case in Module::genobjfile function. But, I'm not sure that the change won't cause any other problems...

https://github.com/D-Programming-Language/dmd/commit/01c985ae3e5eb5f66da8dbb46ed2c1a621fbfcac Merge pull request #2685 from 9rnsr/fix11251

[REG2.064a] Issue 11251 - Not able to link (Previous Definition Different)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 20, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11251



--- Comment #5 from github-bugzilla@puremagic.com 2013-10-20 12:48:28 PDT ---
Commit pushed to 2.064 at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/9e9a329a71ab8cb7664f1b1a7bf9812231a58914 Merge pull request #2685 from 9rnsr/fix11251

[REG2.064a] Issue 11251 - Not able to link (Previous Definition Different)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 21, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11251


Walter Bright <bugzilla@digitalmars.com> changed:

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


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------