[Wine] Suffix or Operands invalid during AMD64 compile

Martin.Fuhrer at cggveritas.com Martin.Fuhrer at cggveritas.com
Mon Mar 12 18:23:15 CDT 2007


Hi Peter,

> Are you sure you want Win64? Normally you only need 32bit wine
> because almost all windows applications are 32bit.
> Just remove '--enable-wine64' from the above line.

Yes, good point.  I had it enabled thinking it may be required for
compiling wine on a 64-bit machine, but it appears this is not the case.

> > gcc -c -I. -I. -I../../include -I../../include  -D__WINESRC__
-D_REENTRANT
> > -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement
> > -Wwrite-strings -Wpointer-arith  -g -O2 -D__i386__  -o interlocked.o
> > interlocked.c
> As for the compile error. The problem is the -D__i386.
> No idea though how that ended up there for a win64 build.

Great, thanks! I replaced the flag with -D__x86_64__ and the compile worked
fine.  I notice that all the compile commands are executed with the
-D__i386__ flag.  Perhaps this is a configure bug?  Or do I need to
explicitly specify that I am on a 64 bit machine when running configure?

In any case, running configure without '--enable-wine64' still produces the
same errors (ie. files are compiled with the -D__i386__ flag). On a lark, I
tried modifying line 1979 of the configure script.

1972  case $host in
1973  x86_64*linux*)
1974    if test "x$enable_win64" != "xyes"
1975    then
1976      test -n "$CC" || CC="gcc -m32"
1977      test -n "$LD" || LD="ld -m elf_i386"
1978      test -n "$AS" || AS="as --32"
1979      host_cpu="x86_64"  # "i386"
1980    fi
1981    ;;
1982 esac

Now I ran configure:
./configure --prefix=/home/mfuhrer/sw/linux

and 'make depend && make'.  Compilation proceeds much further, but
eventually halts with another error:

make[2]: Entering directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32
/dlls/activeds'
../../tools/winegcc/winegcc -B../../tools/winebuild -shared ./activeds.spec
activeds_main.o -o activeds.dll.so  -lkernel32
../../libs/port/libwine_port.a
activeds.4v7l8L.s: Assembler messages:
activeds.4v7l8L.s:2: Error: cannot represent relocation type BFD_RELOC_64
activeds.4v7l8L.s:3: Error: cannot represent relocation type BFD_RELOC_64
activeds.4v7l8L.s:4: Error: cannot represent relocation type BFD_RELOC_64
activeds.4v7l8L.s:5: Error: cannot represent relocation type BFD_RELOC_64
activeds.4v7l8L.s:6: Error: cannot represent relocation type BFD_RELOC_64
activeds.4v7l8L.s:7: Error: cannot represent relocation type BFD_RELOC_64
winebuild: as --32 failed with status 256
winegcc: ../../tools/winebuild/winebuild failed.
make[2]: *** [activeds.dll.so] Error 2
make[2]: Leaving directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32
/dlls/activeds'
make[1]: *** [activeds] Error 2
make[1]: Leaving directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32/dlls'
make: *** [dlls] Error 2

Any other ideas?

Cheers,

Martin





More information about the wine-users mailing list