AMD64 compilation successful; still not working

Alexander K. Seewald alex at
Tue Oct 3 02:10:37 CDT 2006

On Mon, Oct 02, 2006 at 03:05:25PM -0700, Scott Ritchie wrote:
> On latest Debian (or at least Ubuntu), you have to force compile without
> the stack protector on by doing -fno-stack-protector.
Thanks for the tip.

* I compiled with gcc-4.0 (GCC) 4.0.3 20051201 (prerelease) (Debian 4.0.2-5),
  which does not have the stack-protector options. But it might
  still insert similar code...
* I updated to gcc-4.1 (GCC) 4.1.2 20060901 (prerelease) (Debian 4.1.1-13),
  and binutils 2.17-2 from Debian testing. In the process, I got all
  kinds of errors, so I updated from CVS. However, it currently
  seems broken, as configure says:
  config.status: error: cannot find input file: dlls/resutils/

So I switched back to wine-0.9.22 from

First I get the error:
In file included from ../../include/windef.h:234,
                 from ../../include/wine/library.h:27,
                 from ./config.c:36:
../../include/winnt.h:881: error: conflicting types for 'CONTEXT'
../../include/winnt.h:722: error: previous declaration of 'CONTEXT'
was here

When I change the #ifdef in windef.h to something other than
__x86_64_ (was mentioned in one HowTo), it runs a bit longer,
but then I get the error:

{standard input}: Assembler messages:
{standard input}:1586: Error: suffix or operands invalid for `push'
{standard input}:1589: Error: suffix or operands invalid for `pop'
{standard input}:2532: Error: suffix or operands invalid for `push'
{standard input}:2533: Error: suffix or operands invalid for `mov'
{standard input}:2535: Error: suffix or operands invalid for `pop'
{standard input}:2780: Error: suffix or operands invalid for `push'
{standard input}:2781: Error: suffix or operands invalid for `mov'
{standard input}:2783: Error: suffix or operands invalid for `pop'

.. which indicates that some assembly code is not compatible with
the latest binutils. Compilation with gcc-4.0 works without
problems, except of course that the binary does not work (see my
last EMail).

Just compiling the whole loader subdir with -fno-stack-protector and
gcc-4.1 runs successfully. Now ./wine-kthread and ./wine-pthread
both work, while ./wine-preloader exits with code 2. ./wine still
exits with the same error code. Seems to be a small step forward.

I'll keep trying to compile all of it under gcc-4.1. The most likely
explanation is that the stack protector code introduces similar
problems elsewhere, so compiling all under gcc-4.1 _may_ solve this.

Dr. Alexander K. Seewald

GE Money Bank, Analytics/CRM     +43(664)1106886
         Information wants to be free;
Information also wants to be expensive (S.Brant)
--------------- ----------------

More information about the wine-devel mailing list