View mode: basic / threaded / horizontal-split · Log in · Help
November 18, 2012
[Issue 9044] New: Random "Previous Definition Different" optlink failure (looks like a buffer overflow bug somewhere)
http://d.puremagic.com/issues/show_bug.cgi?id=9044

          Summary: Random "Previous Definition Different" optlink failure
                   (looks like a buffer overflow bug somewhere)
          Product: D
          Version: D2
         Platform: All
       OS/Version: Windows
           Status: NEW
         Keywords: link-failure
         Severity: regression
         Priority: P1
        Component: DMD
       AssignedTo: nobody@puremagic.com
       ReportedBy: verylonglogin.reg@gmail.com


--- Comment #0 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2012-11-18 13:57:15 MSK ---
Created an attachment (id=1162)
Testcase

Not sure if it is a dmd regression or dmd changes discovered new optlink bug.

Looks like a buffer overflow bug somewhere as removing almost any definition of
any file makes testcase linkable.

Testcase building output (launching "build.bat"):
---
OPTLINK (R) for Win32  Release 8.00.12
Copyright (C) Digital Mars 1989-2010  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
xlib.lib(object)  Offset FFD10H Record Type 0091
Error 1: Previous Definition Different :
_D64D:\D\dmd2head\windows\bin\..\..\src\druntime\import\object.di.5412__ModuleInfoZ
xlib.lib(object)  Offset FFDECH Record Type 00C3
Error 1: Previous Definition Different :
_D64D:\D\dmd2head\windows\bin\..\..\src\druntime\import\object.di.547__arrayZ
xlib.lib(object)  Offset FFE1EH Record Type 00C3
Error 1: Previous Definition Different :
_D64D:\D\dmd2head\windows\bin\..\..\src\druntime\import\object.di.548__assertFiZv
xlib.lib(object)  Offset FFE50H Record Type 00C3
Error 1: Previous Definition Different :
_D64D:\D\dmd2head\windows\bin\..\..\src\druntime\import\object.di.5415__unittest_failFiZv
---

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 10, 2012
[Issue 9044] Random "Previous Definition Different" optlink failure (looks like a buffer overflow bug somewhere)
http://d.puremagic.com/issues/show_bug.cgi?id=9044


Walter Bright <bugzilla@digitalmars.com> changed:

          What    |Removed                     |Added
----------------------------------------------------------------------------
            Status|NEW                         |RESOLVED
                CC|                            |bugzilla@digitalmars.com
        Resolution|                            |INVALID


--- Comment #1 from Walter Bright <bugzilla@digitalmars.com> 2012-12-10 04:26:01 PST ---
"previous definition different" means you have the same name defined more than
once.

http://www.digitalmars.com/ctg/OptlinkErrorMessages.html#previous_definition_different

I suspect the problem you are having stems from having a file named "object.d"
in your xlib.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 10, 2012
[Issue 9044] Random "Previous Definition Different" optlink failure (looks like a buffer overflow bug somewhere)
http://d.puremagic.com/issues/show_bug.cgi?id=9044


Denis Shelomovskij <verylonglogin.reg@gmail.com> changed:

          What    |Removed                     |Added
----------------------------------------------------------------------------
            Status|RESOLVED                    |REOPENED
        Resolution|INVALID                     |


--- Comment #2 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2012-12-10 19:06:57 MSK ---
(In reply to comment #1)
> I suspect the problem you are having stems from having a file named "object.d"
> in your xlib.

Are you writing it seriously? I'm not a newbie, I know linker error messages
and I think of what I'm reporting.

Have you looked at testcase? It consists of a.d, b.d, c.d, d.d, and main.d.

Have you read the description? The error disappear if almost any definition of
any file is removed.

Probably you are very tired and need some rest...

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 23, 2012
[Issue 9044] Random "Previous Definition Different" optlink failure (looks like a buffer overflow bug somewhere)
http://d.puremagic.com/issues/show_bug.cgi?id=9044



--- Comment #3 from Walter Bright <bugzilla@digitalmars.com> 2012-12-22 18:54:07 PST ---
Attempting to extract your test case:

------------------------------
7z l linker-error.7z

7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Error:
7-Zip cannot find the code that works with archives.
------------------------------

Please use ordinary zip files or just upload the files themselves.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 23, 2012
[Issue 9044] Random "Previous Definition Different" optlink failure (looks like a buffer overflow bug somewhere)
http://d.puremagic.com/issues/show_bug.cgi?id=9044



--- Comment #4 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2012-12-23 12:11:51 MSK ---
(In reply to comment #3)
> Attempting to extract your test case:
> 
> ------------------------------
> 7z l linker-error.7z
> 
> 7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
> 
> Error:
> 7-Zip cannot find the code that works with archives.
> ------------------------------
> 
> Please use ordinary zip files or just upload the files themselves.

Common! 7-Zip has [one of] the best compression ratio, small compression time,
good GUI and explorer integration, so why not to use it?

Also why not to use the installer? If you really want to do everything
manually, why are you complaining about errors? It is you decision to not use
installer and user-friendly GUI.

But if you for some reason need to use 7z.exe, you also need 7z.dll for "code
that works with archives".

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 23, 2012
[Issue 9044] Random "Previous Definition Different" optlink failure (looks like a buffer overflow bug somewhere)
http://d.puremagic.com/issues/show_bug.cgi?id=9044



--- Comment #5 from Walter Bright <bugzilla@digitalmars.com> 2012-12-23 12:13:04 PST ---
(In reply to comment #4)
> Common! 7-Zip has [one of] the best compression ratio, small compression time,
> good GUI and explorer integration, so why not to use it?

Who cares? File size simply no longer matters, especially not 5K. I've already
spend magnitudes more time trying to get it uncompressed than any microseconds
it supposedly saves. I'm not spending any more time on it.


> Also why not to use the installer? If you really want to do everything
> manually, why are you complaining about errors? It is you decision to not use
> installer and user-friendly GUI.

If it's my fault that 7z.exe does not work with 7z files, that makes me even
less interested in 7z.


> But if you for some reason need to use 7z.exe, you also need 7z.dll for "code
> that works with archives".

That's exactly why I don't care to use it. It does not work without mucking
about with it. .zip works everywhere, no issues.

Please upload the files in a usable format. I'm interested in fixing the bug in
this issue. I couldn't be less interested in wrestling with 7z.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 23, 2012
[Issue 9044] Random "Previous Definition Different" optlink failure (looks like a buffer overflow bug somewhere)
http://d.puremagic.com/issues/show_bug.cgi?id=9044


Max Samukha <samukha@voliacable.com> changed:

          What    |Removed                     |Added
----------------------------------------------------------------------------
                CC|                            |samukha@voliacable.com


--- Comment #6 from Max Samukha <samukha@voliacable.com> 2012-12-23 12:29:03 PST ---
That's not funny any more, really. Walter, is it really hard to install 7-zip
extractor? It is ubiquitous and free. There is hardly a single non-lame
programmer who doesn't have it installed. Why irritate an already irritated
user that cares to file bug reports for your half-working thing?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 23, 2012
[Issue 9044] Random "Previous Definition Different" optlink failure (looks like a buffer overflow bug somewhere)
http://d.puremagic.com/issues/show_bug.cgi?id=9044


bearophile_hugs@eml.cc changed:

          What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #1162|0                           |1
       is obsolete|                            |


--- Comment #7 from bearophile_hugs@eml.cc 2012-12-23 13:51:37 PST ---
Created an attachment (id=1172)
The same files in zip archive

(In reply to comment #6)

> That's not funny any more, really. Walter, is it really hard to install 7-zip
> extractor? It is ubiquitous and free. There is hardly a single non-lame
> programmer who doesn't have it installed. Why irritate an already irritated
> user that cares to file bug reports for your half-working thing?

I agree with Walter that Bugzilla entries should have attachments in the most
common and user-friendly formats, like zip, unless the file is huge or there
are special situations. So a 7 kb archive does not justify the usage of a less
common archiver.

On the other hand 7z is an archiver better than zip, and progress in computer
science requires a little of extra work to phase out older technologies to
replace them with newer and better. So today installing a working and free
version of 7z should be considered expected by serious computer users.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 23, 2012
[Issue 9044] Random "Previous Definition Different" optlink failure (looks like a buffer overflow bug somewhere)
http://d.puremagic.com/issues/show_bug.cgi?id=9044


Andrej Mitrovic <andrej.mitrovich@gmail.com> changed:

          What    |Removed                     |Added
----------------------------------------------------------------------------
                CC|                            |andrej.mitrovich@gmail.com


--- Comment #8 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2012-12-23 13:59:57 PST ---
Please let's not go off-topic.

I can't recreate the linker failure with git-head. I get the obj, lib, map and
exe file with no errors.

This might also be related to Issue 3094, which doesn't have source test-cases
but only object file test-cases. In 3094 linking fails with optlink but it
works with Unilink (minus the missing entry function error which is expected as
none were provided).

Denis do you know which DMD commit you were on when testing this?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 24, 2012
[Issue 9044] Random "Previous Definition Different" optlink failure (looks like a buffer overflow bug somewhere)
http://d.puremagic.com/issues/show_bug.cgi?id=9044



--- Comment #9 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2012-12-24 22:31:26 MSK ---
(In reply to comment #8)
> Please let's not go off-topic.
> 
> I can't recreate the linker failure with git-head. I get the obj, lib, map and
> exe file with no errors.
> 
> This might also be related to Issue 3094, which doesn't have source test-cases
> but only object file test-cases. In 3094 linking fails with optlink but it
> works with Unilink (minus the missing entry function error which is expected as
> none were provided).
> 
> Denis do you know which DMD commit you were on when testing this?

I confirm that test-case links fine with
04cbe5d8a76186d8327c50eb46a02eb5633d7835 but it is only because this is a
"random" failure. Original code (from my hooking project) still fails to link
with the same error. I don't want to reduce my sources every time dmd changes
so you can use e01eb59f842dfe7a5275d96c420691c4a64f57f4 where provided
test-case triggers the bug or find later one using `git bisect`.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
« First   ‹ Prev
1 2 3
Top | Discussion index | About this forum | D home