I am still trying to run Turbocad Le under wine (see earlier post http://groups.google.ca/group/comp.emulators.ms-windows.wine/browse_thread/thread/2abfa5ba1de237d3/05ad0098dae2ca05?q=crashedagain&rnum=8#05ad0098dae2ca05) I have discovered it will run under version 20040121 or older but has errors with later versions. 20040121 .deb package must be forced installed because of a libc6 version conflict so I am attempting to recompile hoping this will fix the problem. "make install" fails with the following message: gcc -c -I. -I. -I../../include -I../../include -DINCLUDEDIR="\"/usr/local/include/wine\"" -Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -g -O2 -o newstruc.o newstruc.c newstruc.c: In function 'handle_ani_list': newstruc.c:764: error: invalid lvalue in increment newstruc.c: In function 'new_ani_curico': newstruc.c:875: error: invalid lvalue in increment make[2]: *** [newstruc.o] Error 1 make[2]: Leaving directory `/home/crashedagain/compile/wine-20040121/tools/wrc' make[1]: *** [wrc] Error 2 make[1]: Leaving directory `/home/crashedagain/compile/wine-20040121/tools' make: *** [tools] Error 2 desktop:/home/crashedagain/compile/wine-20040121# The relevant sections of newstruc.c are: "static void handle_ani_list(riff_tag_t *lst, enum res_e type, int isswapped) { riff_tag_t *rtp = lst+1; /* Skip the "LIST" tag */ while((char *)rtp < (char *)lst + lst->size + sizeof(*lst)) { if(!memcmp(rtp->tag, info, sizeof(info))) { rtp = (riff_tag_t *)(((char *)rtp) + 4); } else if(!memcmp(rtp->tag, inam, sizeof(inam))) { /* Ignore the icon/cursor name; its a string */ rtp = NEXT_TAG(rtp); } else if(!memcmp(rtp->tag, iart, sizeof(iart))) { /* Ignore the author's name; its a string */ rtp = NEXT_TAG(rtp); } else if(!memcmp(rtp->tag, fram, sizeof(fram))) { /* This should be followed by "icon"s, but we * simply ignore this because it is pure * non-information. */ rtp = (riff_tag_t *)(((char *)rtp) + 4); } else if(!memcmp(rtp->tag, icon, sizeof(icon))) { handle_ani_icon(rtp, type, isswapped); rtp = NEXT_TAG(rtp); } else internal_error(__FILE__, __LINE__, "Unknown tag \"%c%c%c%c\" in RIFF file", isprint(rtp->tag[0]) ? rtp->tag[0] : '.', isprint(rtp->tag[1]) ? rtp->tag[1] : '.', isprint(rtp->tag[2]) ? rtp->tag[2] : '.', isprint(rtp->tag[3]) ? rtp->tag[3] : '.'); /* FIXME: This relies in sizeof(DWORD) == sizeof(pointer_type) */ if((DWORD)rtp & 1) ((char *)rtp)++; } } line 764 is the "FIXME" line near the end. line 875 is similar. anyone know how to fix this?
CrashedAgain <tedhansen@sasktel.net> wrote:> I have discovered it will run under version 20040121 or older but has > errors with later versions.Cool. You found a regression. Assuming you can get around your problem below, you can follow this [1] to find out which patch exactly caused the failure.> "make install" fails with the following message:I assume you did "./configure; make install"?> gcc -c -I. -I. -I../../include -I../../include > -DINCLUDEDIR="\"/usr/local/include/wine\"" -Wall -pipe > -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ > -Wpointer-arith -g -O2 -o newstruc.o newstruc.c > newstruc.c: In function 'handle_ani_list': > newstruc.c:764: error: invalid lvalue in increment > newstruc.c: In function 'new_ani_curico': > newstruc.c:875: error: invalid lvalue in incrementHmmph. It kinda seems like code from 2004 won't compile anymore. If this were true, it would really suck. What version of gcc are you using?> make[2]: *** [newstruc.o] Error 1 > make[2]: Leaving directory > `/home/crashedagain/compile/wine-20040121/tools/wrc' > make[1]: *** [wrc] Error 2 > make[1]: Leaving directory > `/home/crashedagain/compile/wine-20040121/tools' > make: *** [tools] Error 2 > desktop:/home/crashedagain/compile/wine-20040121#The problem appears to be confined to a rather unimportant tool. You can try to give the option "-k" to make and see how far you get along.> line 764 is the "FIXME" line near the end. > line 875 is similar.Sometimes #define's and #include's throw the line count of track. The actual problem propably is a few lines before that. Daniel [1] http://winehq.org/site/docs/winedev-guide/x1344
didn't use the official cvs because I didn'tknow about it. I'm not very experienced at this! I 'assume' apt took care of all dependencies for upgrading to unstable. I don't think this is a problem; I have always run mixed systems OK. The wine 20040121 was installed on this system from and old Ubuntu package. dpkg complained about a version conflict (libc6 was newer (3.somthing instaed of 2.2.90)) & libwine had to be installed with dpkg --force-conflict option but once install edit worked ok. apt wouldn't work any more though..it detected the conflict & wouldn't proceed until it was corrected. I don't think there is any way to install two versions of wine on a system using .deb packages.
The oldest wine version in backports is 0.9.7 so it won't help with the 20040121 version. The above attempt at compiling 0.9.12 was just to check if I was able to compile anything & was done with gcc 3.3.5 from stable. Yes,chroot is essentially having two systems sort of at the same time. I say 'sort of' because if you chroot to the other system you change over to that system entirely, so you would have to have an entire duplicate system to keep your other apps running. Even then there is issues with where is 'home' & maintaining bookmarks, address files etc on two systems. What I have been doing is just installing the wine version I want at the time...ie if I want to use turbocad i have to force install 20040121 but then I have to restore the system when I'm done or else apt won't work. I was hoping that by compiling it with libc6 2.3.xx on the system it would record it's dependencies as being libc6 2.3.xx instead of 2.2.90 which would mean I wouldn't have to force install it. I was also hoping that if I could get it to compile I could have two versions on the system at the same time.This is possible, there is some info in how to select which version to use (http://www.winehq.com/pipermail/wine-users/2001-August/003570.html) but so far I haven't figured out how to install two versions. I would also like to track down the bugs so turbocad would run on the latest versions but this is maybe more than my meagre abilities can do.