[Wine] unable to compile

CrashedAgain tedhansen at sasktel.net
Sun Apr 30 23:00:23 CDT 2006


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?



More information about the wine-users mailing list