Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-6504

[LD BUG] Delay import library combined with __declspec(dllimport) produces bogus output files

    XMLWordPrintable

    Details

      Description

      Using a delay import library with functions which are declared in their header files as __declspec(dllimport) (e.g. ws2_32 functions) fails.
      This will cause a run-time failure when any such function is called, by jumping to the address '6'.

      This is a bug in binutils.

      A detailed test case can be found at:
      https://home.tfaber.net/~thfabba/pub/delaylib/

      Workarounds include:

      • linking the individual object files from the delay import lib
      • not using __declspec(dllimport) on such functions
      • (untested) referencing the function(s) in question at least once without using the dllimport attribute

      This has been tested with RosBE's binutils (2.20.51.20091222). Tests with later versions to come...

        Attachments

        1. binutils.diff.txt
          8 kB
          Mark Jansen
        2. delay-disable.patch
          0.5 kB
          ThFabba
        3. delay-nodllimport.patch
          2 kB
          ThFabba
        4. delay-nodllimport.patch
          1 kB
          ThFabba

          Issue Links

            Activity

              People

              • Assignee:
                bug zilla Bug Zilla
                Reporter:
                ThFabba ThFabba
              • Votes:
                7 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated: