[Wine] Re: ntdll.dll.so: invalid ELF header

ysa wineforum-user at winehq.org
Tue Feb 9 05:20:19 CST 2010


vitamin: At least in the case of the debian source package I'm pretty sure that I have all the build dependencies, since I have run apt-get build-dep wine before compiling Wine.

However, I solved the problem by removing the line (commenting it out)

Code:

EXTRADLLFLAGS = -Wl,--image-base,0x7bc00000



from the file:
dlls/ntdll/Makefile.in

and removing (commenting out) the options -Wl, --image-base,0x7bc0000

from the line:

Code:

EXTRADLLFLAGS = -Wb,-F,KERNEL32.dll -Wl,--image-base,0x7b800000



in the file:
dlls/kernel32/Makefile.in

Afterwards I run ./configure && make depend && make again. 

Then the corresponding dll.so files were real ELF binaries and winecfg works as well as well as the game Zork Nemesis (at least it starts now).

readelf -h dlls/ntdll/ntdll.dll.so reports now:


ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           Intel 80386
  Version:                           0x1
  Entry point address:               0x1fae0
  Start of program headers:          52 (bytes into file)
  Start of section headers:          2441904 (bytes into file)
  Flags:                             0x0
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         5
  Size of section headers:           40 (bytes)
  Number of section headers:         38
  Section header string table index: 35


I had the same problem when I tried to compile the stable version 1.0.1 from the debian source package. And the same solution applies there.

I am happy that it works now but I don't understand why this linker option (--image-base 0x7b800000) I removed was there in the first place. It seems to prevent Wine from running after compilation on my machine. And without it Wine seems to run without problems. So does anybody know why it there?

Yves







More information about the wine-users mailing list