%META:TOPICINFO{author="RizwanKassim" date="1107307849" format="1.0" version="1.5"}% %META:TOPICPARENT{name="WebHome"}% Submitted to Wine-devel on Jan 31.
An update to my previous posting: Steps: 1) Install debian-stable-latest. 2) get Wine directly off the CVS server (version used Jan 31 2005 22:52p PST) 3) configure, make depend, make. The following results in dlls/oleaut32: gcc -c -I. -I. -I../../include -I../../include -D__WINESRC__ -D_OLEAUT32_ -DCOM_NO_WINDOWS_H -D_REENTRANT -fPIC -Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -g -O2 -o olepicture.o olepicture.c In file included from /usr/include/jpeglib.h:24, from olepicture.c:85: /usr/include/jconfig.h:12: warning: `HAVE_STDLIB_H' redefined ../../include/config.h:541: warning: this is the location of the previous definition olepicture.c:898: `DGifOpen' undeclared here (not in a function) olepicture.c:898: warning: type defaults to `int' in declaration of `pDGifOpen' olepicture.c: In function `_gif_inputfunc': olepicture.c:930: structure has no member named `UserData' olepicture.c: In function `OLEPictureImpl_Load': olepicture.c:1040: called object is not a function olepicture.c:1070: structure has no member named `Function' olepicture.c:1018: warning: `gif' might be used uninitialized in this function make[2]: *** [olepicture.o] Error 1 jconfig.h just seems like a "bad citizen" - #undef HAVE_STDLIB_H before it redefines it works fine. Of greater concern is the issues with DGifOpen. It seems that configure approves of vesrion 3.0.0 of libungif.so / gif_lib.h, but compile fails using 3.0.0. DGifOpen gif_lib.h 4.0.0 compiles correctly (even without updating libungif.so, but afaik thats pretty poor practice) The gif_lib.h that configure approves of is labeled version 3.0 by Eric S Raymond. (from gif_lib.h - 4.0.0 : GifFileType *DGifOpen(void *userPtr, InputFunc readFunc); /* new one Interestingly, it seems that configure DOES show the failure during the test compile: config.log: configure:15570: test -s conftest configure:15573: $? = 0 configure:15590: result: libjpeg.so.62 configure:15599: checking for -lungif soname configure:15629: gcc -o conftest -g -O2 conftest.c -lungif >&5 /tmp/ccdg49tg.o: In function `main': /home/rizwank/wine/conftest.c:155: undefined reference to `DGifOpen' collect2: ld returned 1 exit status configure:15635: $? = 1 configure: failed program was: configure:15738: result: libgif.so [[http://sources.redhat.com/ml/cygwin/1999-11/msg00232.html How GCC finds its libraries and includes]] ======= Now, looking through config.log, I noticed a number of various errors that didn't lead to compile errors in wine, but this one did. (its easy to quelch the error, copy a new lib_gif.h to dlls/oleaut32. I'd assume that new libraries would be smart; while oleauto32/tests doesn't report any errors with using 4.0 of lib_gif.h and 3.0 of libungif.so, it doesn't seem to actually test any of the olepicture calls just yet). So, whats the next step? Should it be a critical error for configure? Should configure report the incorrect gif_lib.h (and old libungif)? I'm new enough to OSS projects that I'm not sure if I should : a) attempt to patch configure to report the error and stop the configure process b) patch olepicture.c to stop using DGifOpen c) submit gif_lib.h to the tree in dlls/oleaut32 This has been (partially) reported as Bug 1730 and 2437. Any input would be totally appreciated! Rizwan (outputs of configure, make depend, make and make test, as well as config.log and config.status are available at http://www.geekymedia.com/twiki/bin/view.cgi/WineDev/LugWine )
* [[%ATTACHURL%/Jan31.cvs.txt][Jan31.cvs.txt]]: Jan 31 Wine Rebuild - CVS log * [[%ATTACHURL%/Jan31.configure.txt][Jan31.configure.txt]]: Jan 31 Wine Rebuild - Configure log * [[%ATTACHURL%/config.log][config.log]]: Jan 31 Wine Rebuild - config.log * [[%ATTACHURL%/config.status][config.status]]: Jan 31 Wine Rebuild - config.status * [[%ATTACHURL%/Jan31.depend.txt][Jan31.depend.txt]]: Jan 31 Wine Rebuild - 'make depend' log * [[%ATTACHURL%/Jan31.make-wogif.txt][Jan31.make-wogif.txt]]: Jan 31 Wine Rebuild - 'make' log * [[%ATTACHURL%/Jan31.depend2.txt][Jan31.depend2.txt]]: Jan 31 Wine Rebuild - 'make depend' log #2 - post gif_lib.h fix * [[%ATTACHURL%/Jan31.make.txt][Jan31.make.txt]]: Jan 31 Wine Rebuild - 'make' log #2 - post gif_lib.h fix OLD !!!! ============= Run the following commands in your wine source directory to be able to compile wine properly on linux.ucla.edu. This is for an in-tree build, but should work for an out-of-tree build. %begin sh% #! /bin/sh # Make sure that we are in the wine directory, basic test if [ -d dlls/oleaut32 ] ; then cd dlls/oleaut32 cp /usr/include/jconfig.h . cp /usr/include/jpeglib.h . export LD_LIBRARY_PATH=$PWD sed 's/^#define HAVE_STDLIB_H/#undef HAVE_STDLIB_H\ #define HAVE_STDLIB_H/' jconfig.h > jconfig.new rm jconfig.h mv jconfig.new jconfig.h echo "For the moment, this pollutes the oleaut32 directory" wget http://belnet.dl.sourceforge.net/sourceforge/libungif/giflib-4.1.3.tar.bz2 tar -jxvf giflib-4.1.3.tar.bz2 giflib-4.1.3/lib/gif_lib.h mv giflib-4.1.3/lib/gif_lib.h . fi; %end% Yes, I probably could have found a better way of doing the newline, but nothing sprung out at me. (http://www.computing.net/unix/wwwboard/forum/5640.html) Oh, I just found http://sed.sourceforge.net/#docs ... useful! TODO : Add install/config options. -- Main.RizwanKassim - 19 Jan 2005 %META:FILEATTACHMENT{name="Jan31.cvs.txt" attr="" comment="Jan 31 Wine Rebuild - CVS log" date="1107248758" path="C:\cygwin\home\rizwank\log\Jan31.cvs.txt" size="128886" user="RizwanKassim" version="1.1"}% %META:FILEATTACHMENT{name="Jan31.configure.txt" attr="" comment="Jan 31 Wine Rebuild - Configure log" date="1107248785" path="C:\cygwin\home\rizwank\log\Jan31.configure.txt" size="33128" user="RizwanKassim" version="1.1"}% %META:FILEATTACHMENT{name="Jan31.depend.txt" attr="" comment="Jan 31 Wine Rebuild - 'make depend' log" date="1107248821" path="C:\cygwin\home\rizwank\log\Jan31.depend.txt" size="85090" user="RizwanKassim" version="1.1"}% %META:FILEATTACHMENT{name="Jan31.depend2.txt" attr="" comment="Jan 31 Wine Rebuild - 'make depend' log #2 - post gif_lib.h fix" date="1107248931" path="C:\cygwin\home\rizwank\log\Jan31.depend2.txt" size="125060" user="RizwanKassim" version="1.1"}% %META:FILEATTACHMENT{name="Jan31.make-wogif.txt" attr="" comment="Jan 31 Wine Rebuild - 'make' log" date="1107248959" path="C:\cygwin\home\rizwank\log\Jan31.make-wogif.txt" size="155474" user="RizwanKassim" version="1.1"}% %META:FILEATTACHMENT{name="Jan31.make.txt" attr="" comment="Jan 31 Wine Rebuild - 'make' log #2 - post gif_lib.h fix" date="1107249008" path="C:\cygwin\home\rizwank\log\Jan31.make.txt" size="543213" user="RizwanKassim" version="1.1"}% %META:FILEATTACHMENT{name="config.log" attr="" comment="Jan 31 Wine Rebuild - config.log" date="1107249064" path="C:\cygwin\home\rizwank\log\config.log" size="565389" user="RizwanKassim" version="1.1"}% %META:FILEATTACHMENT{name="config.status" attr="" comment="Jan 31 Wine Rebuild - config.status" date="1107249086" path="C:\cygwin\home\rizwank\log\config.status" size="95379" user="RizwanKassim" version="1.1"}%