On Tue, Dec 02, 2003 at 08:02:37AM -0600, Jeremy White wrote:
> >>I'm considering getting an Opteron.  With this being a 64bit CPU I 
> >>wondered if there would be any issues with using WINE to make use of 
> >>win32 software on this 64bit CPU.
> >
> >
> >There are no issues.
> >
> >SUSE LINUX 9.0 for AMD64 is capable of running all WINE products,
> >including regular WINE, CrossOver Office, CrossOver Plugin and WineX
> >in the 32bit compat mode.
> 
> Okay, I read that to mean that you can run already built
> 32 bit binary versions of Wine.
> 
> What about compiling?  Would compiling Wine on an Opteron
> work?  Hmm.  I suppose you could cross compile to 32 bit,
> couldn't you.

Well, I do ;)

SUSE 9.0 comes with full biarch toolchain support on AMD64.

Before you start, install additionaly to the default packages:
        glibc-devel-32bit
        freetype2-devel-32bit
        XFree86-devel-32bit
        XFree86-Mesa-devel-32bit
        fontconfig-devel-32bit
        openssl-devel-32bit
        ncurses-devel-32bit
        alsa-32bit
        and any dependend rpms.

Then:
        export LD="ld -m elf_i386"

        CC="gcc -m32" AS="gcc -c -m32" \
        ./configure --prefix=/usr --x-libraries=/usr/X11R6/lib
        make depend all

The -m32 switches gcc to 32bit mode.

If you have arts-devel installed, you might need to patch
dlls/winmm/winearts/Makefile and replace lib64 by lib.

You will also need attached winebuild patch that uses "LD" from the environment.

Ciao, Marcus
diff -x CVS -ruN wine-20030217/tools/winebuild/import.c 
marcus-wine-20030217/tools/winebuild/import.c
--- wine-20030217/tools/winebuild/import.c      2002-12-20 01:36:18.000000000 +0100
+++ marcus-wine-20030217/tools/winebuild/import.c       2003-01-13 17:54:10.000000000 
+0100
@@ -569,7 +569,7 @@
 static const char *ldcombine_files( char **argv )
 {
     int i, len = 0;
-    char *cmd;
+    char *cmd, *ldcmd;
     int fd, err;
 
     if (output_file_name && output_file_name[0])
@@ -584,9 +584,11 @@
     close( fd );
     atexit( remove_ld_tmp_file );
 
+    ldcmd = getenv("LD");
+    if (!ldcmd) ldcmd="ld";
     for (i = 0; argv[i]; i++) len += strlen(argv[i]) + 1;
-    cmd = xmalloc( len + strlen(ld_tmp_file) + 10 );
-    sprintf( cmd, "ld -r -o %s", ld_tmp_file );
+    cmd = xmalloc( len + strlen(ld_tmp_file) + 10 + strlen(ldcmd)  );
+    sprintf( cmd, "%s -r -o %s", ldcmd, ld_tmp_file );
     for (i = 0; argv[i]; i++) sprintf( cmd + strlen(cmd), " %s", argv[i] );
     err = system( cmd );
     if (err) fatal_error( "ld -r failed with status %d\n", err );

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to