[csw-users] wine 0.9.10 on solaris 10 (solaris express nv b28)

ishikawa at yk.rim.or.jp ishikawa at yk.rim.or.jp
Sun Apr 2 11:04:39 CEST 2006


(Sorry this is a little bit lengthy)

I tried to compile the latest wine-0.9.10 available from winehq web
page.

I referenced the wine-patch-kit web page at blasware and
it was very informative.

Obviously, there are newer files in wine-0.9.10 which are not
addressed by the patches in wine-patch-kit and so here are some
patches that I created for your reference.

In the end, there were a couple of link errors and
I appreciate helpful tips.
	
Here is the list of comments and questions and finally the patch
itself.

(0) Suggested Improvement to wine-patch-kit web page.

	Before running maintain command,
	we need to run "cvs login".

	This may be too obvious to write in the
	guide, but it might help some people.

	e.g.
	export CVSROOT=:pserver:cvs at cvs.winehq.org:/home/wine
	cvs login

(1) Patches to compile latest wine-0.9.10 from www.winehq.org

    See the patch output at the end.

(2) Link error?

    I got the following link error at the end.

    Compiler problem? I am not sure.
    (Please note that due to a certain compatibility problem
    I have overwritten /usr/ccs/bin/ld with gnu ld. Well,
    original ld is saved under /usr/ccs/bin/ld.old)

This is the compiler I used. (note that ld is actually gnu ld as noted above.)
gcc -v
Reading specs from /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/specs
Configured with: /builds/sfwnv-gate/usr/src/cmd/gcc/gcc-3.4.3/configure --prefix=/usr/sfw --with-as=/usr/sfw/bin/gas --with-gnu-as --with-ld=/usr/ccs/bin/ld --without-gnu-ld --enable-languages=c,c++,f77 --enable-shared
Thread model: posix
gcc version 3.4.3 (csl-sol210-3_4-20050802)
bash-3.00$ 

Linker problem? This is the version of ld I use. (Again, please note
that /usr/ccs/bin/ld is actually gnu ld).


    /usr/ccs/bin/ld --version
    GNU ld version 2.15
    Copyright 2002 Free Software Foundation, Inc.
    This program is free software; you may redistribute it under the terms of
    the GNU General Public License.  This program has absolutely no warranty.
    bash-3.00$ 

Or solaris express nevada b28 problem?
    
Or my wine configure process problem?
I have somehow -lrt and -lthread through all my Makefile.
These additional libraries might be the cause of the problem.

The link error I got at the end of "make -k".

make -k
gcc -o wine-kthread -Wl,--export-dynamic -Wl,--section-start,.interp=0x7bf00400 -Wl,--rpath,\$ORIGIN/`../tools/relpath /usr/local/bin /usr/local/lib` kthread.o main.o -L../libs/wine -lwine -L../libs/port -lwine_port  
../libs/wine/libwine.so: undefined reference to `write at SUNW_0.9'
../libs/wine/libwine.so: undefined reference to `read at SUNW_0.9'
collect2: ld returned 1 exit status
*** Error code 1
make: Warning: Target `all' not remade because of errors
Current working directory /home/ishikawa/local-src/wine-sources/wine-0.9.10/wine/loader
*** Error code 1
The following command caused the error:
cd loader && make
`libdinput.def.a' is up to date.
gcc -o wineserver -Wl,--rpath,\$ORIGIN/`../tools/relpath /usr/local/bin /usr/local/lib` atom.o  change.o  class.o  clipboard.o  console.o  context_alpha.o  context_i386.o  context_powerpc.o  context_sparc.o  context_x86_64.o  debugger.o  directory.o  event.o  fd.o  file.o  handle.o  hook.o  mailslot.o  main.o  mapping.o  mutex.o  named_pipe.o  object.o  process.o  ptrace.o  queue.o  region.o  registry.o  request.o  semaphore.o  serial.o  signal.o  snapshot.o  sock.o  symlink.o  thread.o  timer.o  token.o  trace.o  unicode.o  user.o  window.o  winstation.o sunptrace.o  -L../libs/wine -lwine -L../libs/unicode -lwine_unicode -L../libs/port -lwine_port  -lrt -lthread -lsocket -lnsl
../libs/wine/libwine.so: undefined reference to `write at SUNW_0.9'
../libs/wine/libwine.so: undefined reference to `read at SUNW_0.9'
collect2: ld returned 1 exit status
*** Error code 1
make: Warning: Target `all' not remade because of errors
Current working directory /home/ishikawa/local-src/wine-sources/wine-0.9.10/wine/server
*** Error code 1
The following command caused the error:
cd server && make
make: Warning: Target `all' not remade because of errors


(3) Question: solaris 10 (actually nevada b28) freetype2 library issue.

    Configure doesn't pick up freetype2 library/header.
    So there are messages to that effect.
    Why?

    They *are* in 
    /usr/sfw/include/freetype2/freetype/
    /usr/sfw/lib/libfreetype.so.6

    Maybe due to the fact that there is
    
    /usr/sfw/bin/freetype-config

    but, not

    /usr/sfw/bin/freetype2-config ?

    Still, it prints version 2.1.10
    bash-3.00$ freetype-config --ftversion
    2.1.10

    Or do we need to pass special argument(s) to configure?

(4) Finally the patches.

The patch to compile wine-0.9.10 at winehq.com

Due to the fact that I have (somehow) configured to use -lrt -lthread,
most Makefiles had the additional -lrt and -lthread.
(I am not sure why I have -lrt and -lthread. It seems that
the wine-patch-kit doesn't handle these libraries.)

e.g. Makefile or Make.rules contain these
     -lt -lthread in LIBS make variable. 

Ugh. I just noticed that I have date string in Japanese character code
in diff output..  So I removed them to save trouble for some mail
readers. If these cause problems, please let me know.

diff -cibwr wine-0.9.10/wine/Make.rules wine-0.9.10-local-mods//wine/Make.rules
*** wine-0.9.10/wine/Make.rules	original date
--- wine-0.9.10-local-mods//wine/Make.rules	newer date.
***************
*** 25,31 ****
  CC        = gcc
  CFLAGS    = -g -O2
  CPPFLAGS  = 
! LIBS      = -lsocket -lnsl 
  BISON     = bison
  LEX       = flex
  LEXLIB    = -ll
--- 25,31 ----
  CC        = gcc
  CFLAGS    = -g -O2
  CPPFLAGS  = 
! LIBS      = -lrt -lthread -lsocket -lnsl 
  BISON     = bison
  LEX       = flex
  LEXLIB    = -ll

I omit these.

I may have introduced more incompatibility problems than
usual, but here goes the patch.



dlls/iphlpapi 

	      Linking requires -lresolve to
	      satisfy unresolved symbols.

diff -cibwr wine-0.9.10/wine/dlls/iphlpapi/Makefile wine-0.9.10-local-mods//wine/dlls/iphlpapi/Makefile
*** wine-0.9.10/wine/dlls/iphlpapi/Makefile	today
--- wine-0.9.10-local-mods//wine/dlls/iphlpapi/Makefile	today
***************
*** 71,77 ****
  CC        = gcc
  CFLAGS    = -g -O2
  CPPFLAGS  = 
! LIBS      = -lsocket -lnsl 
  BISON     = bison
  LEX       = flex
  LEXLIB    = -ll
--- 71,78 ----
  CC        = gcc
  CFLAGS    = -g -O2
  CPPFLAGS  = 
! # add -lresolv
! LIBS      = -lrt -lthread -lresolv -lsocket -lnsl 
  BISON     = bison
  LEX       = flex
  LEXLIB    = -ll




dlls/msvcrt/time.c:

	I don't know for sure whether other systems require this, but
	solaris asctime_r() obviously takes the third argument.


diff -cibwr wine-0.9.10/wine/dlls/msvcrt/time.c wine-0.9.10-local-mods//wine/dlls/msvcrt/time.c
*** wine-0.9.10/wine/dlls/msvcrt/time.c	2006年  old date
--- wine-0.9.10-local-mods//wine/dlls/msvcrt/time.c	today
***************
*** 466,472 ****
  
      /* FIXME: may want to map from Unix codepage to CP_ACP */
  #ifdef HAVE_ASCTIME_R
!     asctime_r( &tm, data->asctime_buffer );
  #else
      strcpy( data->asctime_buffer, asctime(&tm) );
  #endif
--- 466,472 ----
  
      /* FIXME: may want to map from Unix codepage to CP_ACP */
  #ifdef HAVE_ASCTIME_R
!     asctime_r( &tm, data->asctime_buffer, 30 /* TODO/FIXME: CI */ );
  #else
      strcpy( data->asctime_buffer, asctime(&tm) );
  #endif
***************
*** 487,493 ****
      if (!data->wasctime_buffer)
          data->wasctime_buffer = MSVCRT_malloc( 30*sizeof(MSVCRT_wchar_t) ); /* ought to be enough */
  #ifdef HAVE_ASCTIME_R
!     asctime_r( &tm, buffer );
  #else
      strcpy( buffer, asctime(&tm) );
  #endif
--- 487,493 ----
      if (!data->wasctime_buffer)
          data->wasctime_buffer = MSVCRT_malloc( 30*sizeof(MSVCRT_wchar_t) ); /* ought to be enough */
  #ifdef HAVE_ASCTIME_R
!     asctime_r( &tm, buffer, 30 * sizeof(MSVCRT_wchar_t) /* TODO/FIXME: CI */ );
  #else
      strcpy( buffer, asctime(&tm) );
  #endif




dlls/ntdll/directory.c

	We need to include limits.h since PATH_MAX is
	defined there.
	Also, I added one volatile specifier to
	a line to shut up warning.
	(Actually there is another place a warning is
	generated, too.)


diff -cibwr wine-0.9.10/wine/dlls/ntdll/directory.c wine-0.9.10-local-mods//wine/dlls/ntdll/directory.c
*** wine-0.9.10/wine/dlls/ntdll/directory.c	old date
--- wine-0.9.10-local-mods//wine/dlls/ntdll/directory.c	today
***************
*** 57,62 ****
--- 57,66 ----
  # include <unistd.h>
  #endif
  
+ /* TODO/FIXME: PATH_MAX */
+ #include <limits.h>
+ 
+ 
  #define NONAMELESSUNION
  #define NONAMELESSSTRUCT
  #include "ntstatus.h"
***************
*** 316,322 ****
  {
  
      volatile struct mnttab mntentry;
!     struct mnttab *entry=&mntentry;
      struct stat st;
      char *device;
  
--- 320,327 ----
  {
  
      volatile struct mnttab mntentry;
!     /* Added volatile below CI */
!     volatile struct mnttab *entry=&mntentry;
      struct stat st;
      char *device;
  


dlls/ntdll/tape.c:
	Solaris 10 mt ioctl differences.

diff -cibwr wine-0.9.10/wine/dlls/ntdll/tape.c wine-0.9.10-local-mods//wine/dlls/ntdll/tape.c
*** wine-0.9.10/wine/dlls/ntdll/tape.c	old date
--- wine-0.9.10-local-mods//wine/dlls/ntdll/tape.c	today
***************
*** 163,170 ****
   */
  static NTSTATUS TAPE_GetDriveParams( int fd, TAPE_GET_DRIVE_PARAMETERS *data )
  {
! #ifdef HAVE_SYS_MTIO_H
      struct mtget get;
      NTSTATUS status;
  
      TRACE( "fd: %d\n", fd );
--- 163,176 ----
   */
  static NTSTATUS TAPE_GetDriveParams( int fd, TAPE_GET_DRIVE_PARAMETERS *data )
  {
! #if defined(HAVE_SYS_MTIO_H) || defined(MTIOCGETDRIVETYPE)
! #ifdef  MTIOCGETDRIVETYPE
!     /* Solaris 10- actullay. */
!     struct mtdrivetype get;
! #else
      struct mtget get;
+ #endif
+ 
      NTSTATUS status;
  
      TRACE( "fd: %d\n", fd );
***************
*** 171,177 ****
--- 177,188 ----
  
      memset( data, 0, sizeof(TAPE_GET_DRIVE_PARAMETERS) );
  
+ #ifdef MTIOCGETDRIVETYPE
+     /* Solaris 10- actually. */
+     status = TAPE_GetStatus( ioctl( fd, MTIOCGETDRIVETYPE, &get ) );
+ #else
      status = TAPE_GetStatus( ioctl( fd, MTIOCGET, &get ) );
+ #endif
      if (status != STATUS_SUCCESS)
          return status;
  
***************
*** 179,189 ****
--- 190,205 ----
      data->Compression = FALSE;
      data->DataPadding = FALSE;
      data->ReportSetmarks = FALSE;
+ #ifdef MTIOCGETDRIVETYPE
+     /* Solaris 10- actually. */
+     data->DefaultBlockSize = get.bsize;
+ #else
  #ifdef HAVE_STRUCT_MTGET_MT_BLKSIZ
      data->DefaultBlockSize = get.mt_blksiz;
  #else
      data->DefaultBlockSize = get.mt_dsreg & MT_ST_BLKSIZE_MASK;
  #endif
+ #endif
      data->MaximumBlockSize = data->DefaultBlockSize;
      data->MinimumBlockSize = data->DefaultBlockSize;
      data->MaximumPartitionCount = 1;
***************
*** 200,207 ****
   */
  static NTSTATUS TAPE_GetMediaParams( int fd, TAPE_GET_MEDIA_PARAMETERS *data )
  {
! #ifdef HAVE_SYS_MTIO_H
      struct mtget get;
      NTSTATUS status;
  
      TRACE( "fd: %d\n", fd );
--- 216,230 ----
   */
  static NTSTATUS TAPE_GetMediaParams( int fd, TAPE_GET_MEDIA_PARAMETERS *data )
  {
! #if defined(HAVE_SYS_MTIO_H) || defined(MTIOCGETDRIVETYPE)
! 
! #if defined(MTIOCGETDRIVETYPE)
!     /* Actually solaris 10- */
!     struct mtdrivetype get;
! #else
      struct mtget get;
+ #endif
+ 
      NTSTATUS status;
  
      TRACE( "fd: %d\n", fd );
***************
*** 208,224 ****
--- 231,258 ----
  
      memset( data, 0, sizeof(TAPE_GET_MEDIA_PARAMETERS) );
  
+ #ifdef MTIOCGETDRIVETYPE
+     /* Actually solaris 10- */
+     status = TAPE_GetStatus( ioctl( fd, MTIOCGETDRIVETYPE, &get ) );
+ #else
      status = TAPE_GetStatus( ioctl( fd, MTIOCGET, &get ) );
+ #endif
      if (status != STATUS_SUCCESS)
          return status;
  
      data->Capacity.u.LowPart = 1024 * 1024 * 1024;
      data->Remaining.u.LowPart = 1024 * 1024 * 1024;
+ #ifdef MTIOCGETDRIVETYPE
+     /* Actually solaris 10- */
+     data->BlockSize = get.bsize;
+ #else
  #ifdef HAVE_STRUCT_MTGET_MT_BLKSIZ
      data->BlockSize = get.mt_blksiz;
  #else
      data->BlockSize = get.mt_dsreg & MT_ST_BLKSIZE_MASK;
  #endif
+ #endif
+ 
      data->PartitionCount = 1;
  #ifdef HAVE_STRUCT_MTGET_MT_GSTAT
      data->WriteProtected = GMT_WR_PROT(get.mt_gstat);
***************
*** 375,381 ****
--- 409,420 ----
  
      TRACE( "fd: %d blocksize: 0x%08lx\n", fd, data->BlockSize );
      
+ #ifdef MTSRSZ
+     /* Actually solaris 10- */
+     cmd.mt_op = MTSRSZ;
+ #else
      cmd.mt_op = MTSETBLK;
+ #endif
      cmd.mt_count = data->BlockSize;
  
      return TAPE_GetStatus( ioctl( fd, MTIOCTOP, &cmd ) );





dlls/x11drv/winpos.c:

	I am not sure why, but the header files supplied
	under openwindows directory is a little
	old?

	In any case, unless I add xuti.h before extensions/shape.h
	include, compilation failed.

diff -cibwr wine-0.9.10/wine/dlls/x11drv/winpos.c wine-0.9.10-local-mods//wine/dlls/x11drv/winpos.c
*** wine-0.9.10/wine/dlls/x11drv/winpos.c	old date
--- wine-0.9.10-local-mods//wine/dlls/x11drv/winpos.c	today
***************
*** 21,28 ****
--- 21,33 ----
  
  #include "config.h"
  
+ 
  #include <X11/Xlib.h>
  #ifdef HAVE_LIBXSHAPE
+ 
+ /*ci*/
+ #include <X11/Xutil.h>
+ 
  #include <X11/extensions/shape.h>
  #endif /* HAVE_LIBXSHAPE */
  #include <stdarg.h>


include/config.h:

	This is for reference-purposes only.
	This will be overwritten by everyone's local configure.

diff -cibwr wine-0.9.10/wine/include/config.h wine-0.9.10-local-mods//wine/include/config.h
*** wine-0.9.10/wine/include/config.h	2006年  4月  2日 (日)
--- wine-0.9.10-local-mods//wine/include/config.h	2006年  3月 28日 (火)
***************
*** 300,308 ****
--- 300,314 ----
  /* Define to 1 if you have the `resolv' library (-lresolv). */
  /* #undef HAVE_LIBRESOLV */
  
+ /* Define to 1 if you have the `rt' library (-lrt). */
+ #define HAVE_LIBRT 1
+ 
  /* Define to 1 if you have the `socket' library (-lsocket). */
  #define HAVE_LIBSOCKET 1
  
+ /* Define to 1 if you have the `thread' library (-lthread). */
+ #define HAVE_LIBTHREAD 1
+ 
  /* Define if you have the libxml2 library */
  #define HAVE_LIBXML2 1
  
***************
*** 417,422 ****
--- 423,431 ----
  /* Define to 1 if the system has the type `mode_t'. */
  #define HAVE_MODE_T 1
  
+ /* Define to 1 if you have the `nanosleep' function. */
+ /* #undef HAVE_NANOSLEEP */
+ 
  /* Define if you have NAS including devel headers */
  /* #undef HAVE_NAS */
  
***************
*** 486,491 ****
--- 495,503 ----
  /* Define to 1 if you have the `pread' function. */
  #define HAVE_PREAD 1
  
+ /* Define if you have processor_info */
+ #define HAVE_PROCESSOR_INFO 1
+ 
  /* Define to 1 if you have the <process.h> header file. */
  /* #undef HAVE_PROCESS_H */
  
***************
*** 535,541 ****
  #define HAVE_SCHED_H 1
  
  /* Define to 1 if you have the `sched_yield' function. */
! /* #undef HAVE_SCHED_YIELD */
  
  /* Define to 1 if `cmd' is member of `scsireq_t'. */
  /* #undef HAVE_SCSIREQ_T_CMD */
--- 547,553 ----
  #define HAVE_SCHED_H 1
  
  /* Define to 1 if you have the `sched_yield' function. */
! #define HAVE_SCHED_YIELD 1
  
  /* Define to 1 if `cmd' is member of `scsireq_t'. */
  /* #undef HAVE_SCSIREQ_T_CMD */
***************
*** 675,680 ****
--- 687,695 ----
  /* Define to 1 if you have the <syscall.h> header file. */
  /* #undef HAVE_SYSCALL_H */
  
+ /* Define if you have sysconf */
+ #define HAVE_SYSCONF 1
+ 
  /* Define to 1 if you have the <sys/asoundlib.h> header file. */
  /* #undef HAVE_SYS_ASOUNDLIB_H */
  
***************
*** 693,698 ****
--- 708,716 ----
  /* Define to 1 if you have the <sys/exec_elf.h> header file. */
  /* #undef HAVE_SYS_EXEC_ELF_H */
  
+ /* Define if you have sys/filio.h */
+ #define HAVE_SYS_FILIIO_H 1
+ 
  /* Define to 1 if you have the <sys/filio.h> header file. */
  #define HAVE_SYS_FILIO_H 1
  
***************
*** 732,737 ****
--- 750,758 ----
  /* Define to 1 if you have the <sys/poll.h> header file. */
  #define HAVE_SYS_POLL_H 1
  
+ /* Define if you have processor.h */
+ #define HAVE_SYS_PROCESSOR_H 1
+ 
  /* Define to 1 if you have the <sys/ptrace.h> header file. */
  /* #undef HAVE_SYS_PTRACE_H */
  
***************
*** 810,815 ****
--- 831,842 ----
  /* Define to 1 if you have the <termios.h> header file. */
  #define HAVE_TERMIOS_H 1
  
+ /* Define if you have thr* funcs */
+ #define HAVE_THR 1
+ 
+ /* Define if you have thread.h (Solaris) */
+ #define HAVE_THREAD_H 1
+ 
  /* Define to 1 if you have the `timegm' function. */
  /* #undef HAVE_TIMEGM */
  
***************
*** 915,920 ****
--- 942,953 ----
  /* Define if we have __va_copy */
  #define HAVE___VA_COPY 1
  
+ /* Define major Os vesion */
+ #define OS_MAJOR $system_major
+ 
+ /* Define minor Os Version */
+ #define OS_MINOR $system_minor
+ 
  /* Define to the address where bug reports for this package should be sent. */
  #define PACKAGE_BUGREPORT "wine-devel at winehq.org"
  



loader/kthread.c :

		 macro ERR conflicts with a system-supplied macro.
		 So I renamed it to ERRPRINT.


diff -cibwr wine-0.9.10/wine/loader/kthread.c wine-0.9.10-local-mods//wine/loader/kthread.c
*** wine-0.9.10/wine/loader/kthread.c	old date
--- wine-0.9.10-local-mods//wine/loader/kthread.c	today
***************
*** 115,121 ****
  #endif
  
  #define TRACE printf
! #define ERR printf
  
  int threadmode =0;
  struct pthread_descr_struct
--- 115,122 ----
  #endif
  
  #define TRACE printf
! /* #define ERR printf */
! #define ERRPRINTF printf
  
  int threadmode =0;
  struct pthread_descr_struct
***************
*** 242,248 ****
              thr_setspecific(key, data);
                }
  	      else
! 	      ERR("Thread private data already set !\n");
          thr_getspecific(key, &tsd);
  	return((void *) tsd);
  }  
--- 243,249 ----
              thr_setspecific(key, data);
                }
  	      else
! 	      ERRPRINTF("Thread private data already set !\n");
          thr_getspecific(key, &tsd);
  	return((void *) tsd);
  }  
***************
*** 423,441 ****
     			switch(err)
     			{
        			case EAGAIN:
!         			ERR("Thread creation failed EAGAIN - System is out of threads or lwps\n");
          			break;
        			case EINVAL:
!         			ERR("Thread creation failed EINVAL - The stack_base argument is not NULL and stack_size  is  less  than the value returned by thr_min_stack,  or the stack_base argument is NULL and  stack_size  is   not   0  and  is  less  than  the  value  returned  by          thr_min_stack\n");
          			break;
        			case ENOMEM:
!         			ERR("Thread creation failed ENOMEM - here is not enough memory to allocate the stack for the thread\n");
          			break;
         			case -1:
!         			ERR("Thread creation failed (-1) - Application is not linked with threading libraryn");
          			break;
        			default:
!         			ERR("Thread creation failed Unknown %d - Possible mmap failure check mmap results\n",err);
          			break;
     			}
      			return -1;
--- 424,442 ----
     			switch(err)
     			{
        			case EAGAIN:
!         			ERRPRINTF("Thread creation failed EAGAIN - System is out of threads or lwps\n");
          			break;
        			case EINVAL:
!         			ERRPRINTF("Thread creation failed EINVAL - The stack_base argument is not NULL and stack_size  is  less  than the value returned by thr_min_stack,  or the stack_base argument is NULL and  stack_size  is   not   0  and  is  less  than  the  value  returned  by          thr_min_stack\n");
          			break;
        			case ENOMEM:
!         			ERRPRINTF("Thread creation failed ENOMEM - here is not enough memory to allocate the stack for the thread\n");
          			break;
         			case -1:
!         			ERRPRINTF("Thread creation failed (-1) - Application is not linked with threading libraryn");
          			break;
        			default:
!         			ERRPRINTF("Thread creation failed Unknown %d - Possible mmap failure check mmap results\n",err);
          			break;
     			}
      			return -1;



programs/wintest/maketest:

	We need to add dummy variable to shell built-in "read"

diff -cibwr wine-0.9.10/wine/programs/winetest/maketest wine-0.9.10-local-mods//wine/programs/winetest/maketest
*** wine-0.9.10/wine/programs/winetest/maketest	old date
--- wine-0.9.10-local-mods//wine/programs/winetest/maketest	today
***************
*** 19,25 ****
  for dir in dlls/*/tests; do
      sed -ne "s|^/\([^.]*.c\)/\([^/]*\).*|$dir/\1:\2|p" $dir/CVS/Entries 2>/dev/null
  done |\
! while read; do
      echo "REV_INFO+$i \"$REPLY\""
      i=`expr $i + 1`
  done
--- 19,25 ----
  for dir in dlls/*/tests; do
      sed -ne "s|^/\([^.]*.c\)/\([^/]*\).*|$dir/\1:\2|p" $dir/CVS/Entries 2>/dev/null
  done |\
! while read dummy; do
      echo "REV_INFO+$i \"$REPLY\""
      i=`expr $i + 1`
  done



programs/wineconsole :

		     We need to link -lcurses (due to unresolved
		     symbols)


diff -cibwr wine-0.9.10/wine/programs/wineconsole/Makefile wine-0.9.10-local-mods//wine/programs/wineconsole/Makefile
*** wine-0.9.10/wine/programs/wineconsole/Makefile	old date
--- wine-0.9.10-local-mods//wine/programs/wineconsole/Makefile	today
***************
*** 66,72 ****
  CC        = gcc
  CFLAGS    = -g -O2
  CPPFLAGS  = 
! LIBS      = -lsocket -lnsl 
  BISON     = bison
  LEX       = flex
  LEXLIB    = -ll
--- 66,72 ----
  CC        = gcc
  CFLAGS    = -g -O2
  CPPFLAGS  = 
! LIBS      = -lrt -lthread -lsocket -lnsl -lcurses
  BISON     = bison
  LEX       = flex
  LEXLIB    = -ll




More information about the users mailing list