Error compiling/building PCEM-Unofficial

Support and general discussion.
Post Reply
rflego
Posts: 18
Joined: Thu 12 Mar, 2015 7:39 am

Error compiling/building PCEM-Unofficial

Post by rflego »

Hi, when trying to compile the PCEM-Unofficial, am getting the following error:

Code: Select all

gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -I./dx9mgw/include -I./dx9mgw/lib -c vid_voodoo.c
In file included from vid_voodoo_codegen_x86.h:18:0,
                 from vid_voodoo.c:1712:
d:\emupc\pcem-unofficial-master\src\mingw32\lib\gcc\i686-w64-mingw32\4.8.1\include\xmmintrin.h:31:3: error: #error "SSE instruction set not enabled"
 # error "SSE instruction set not enabled"
   ^
In file included from vid_voodoo.c:1712:0:
vid_voodoo_codegen_x86.h:63:1: error: unknown type name '__m128i'
 static __m128i xmm_01_w;// = 0x0001000100010001ull;
 ^
vid_voodoo_codegen_x86.h:64:1: error: unknown type name '__m128i'
 static __m128i xmm_ff_w;// = 0x00ff00ff00ff00ffull;
 ^
vid_voodoo_codegen_x86.h:65:1: error: unknown type name '__m128i'
 static __m128i xmm_ff_b;// = 0x00000000ffffffffull;
 ^
vid_voodoo_codegen_x86.h:70:1: error: unknown type name '__m128i'
 static __m128i alookup[257], aminuslookup[256];
 ^
vid_voodoo_codegen_x86.h:71:1: error: unknown type name '__m128i'
 static __m128i minus_254;// = 0xff02ff02ff02ff02ull;
 ^
vid_voodoo_codegen_x86.h:72:1: error: unknown type name '__m128i'
 static __m128i bilinear_lookup[256*4];
 ^
vid_voodoo_codegen_x86.h: In function 'voodoo_generate':
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:323:17: note: in expansion of macro 'addlong'
                 addlong(&const_1_48);
                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:367:17: note: in expansion of macro 'addlong'
                 addlong(logtable);
                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:558:33: note: in expansion of macro 'addlong'
                                 addlong(&zero);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:571:33: note: in expansion of macro 'addlong'
                                 addlong(&zero);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:625:33: note: in expansion of macro 'addlong'
                                 addlong(&zero);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:764:25: note: in expansion of macro 'addlong'
                         addlong(bilinear_lookup);
                         ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:777:33: note: in expansion of macro 'addlong'
                                 addlong(rgb332);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:790:33: note: in expansion of macro 'addlong'
                                 addlong(rgb332);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:807:33: note: in expansion of macro 'addlong'
                                 addlong(rgb332);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:829:33: note: in expansion of macro 'addlong'
                                 addlong(rgb332);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1095:33: note: in expansion of macro 'addlong'
                                 addlong(ai44);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1108:33: note: in expansion of macro 'addlong'
                                 addlong(ai44);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1125:33: note: in expansion of macro 'addlong'
                                 addlong(ai44);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1147:33: note: in expansion of macro 'addlong'
                                 addlong(ai44);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1301:33: note: in expansion of macro 'addlong'
                                 addlong(rgb565);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1307:33: note: in expansion of macro 'addlong'
                                 addlong(rgb565);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1331:33: note: in expansion of macro 'addlong'
                                 addlong(rgb565);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1350:33: note: in expansion of macro 'addlong'
                                 addlong(rgb565);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1402:33: note: in expansion of macro 'addlong'
                                 addlong(argb1555);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1408:33: note: in expansion of macro 'addlong'
                                 addlong(argb1555);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1432:33: note: in expansion of macro 'addlong'
                                 addlong(argb1555);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1451:33: note: in expansion of macro 'addlong'
                                 addlong(argb1555);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1501:33: note: in expansion of macro 'addlong'
                                 addlong(argb4444);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1507:33: note: in expansion of macro 'addlong'
                                 addlong(argb4444);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1531:33: note: in expansion of macro 'addlong'
                                 addlong(argb4444);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1550:33: note: in expansion of macro 'addlong'
                                 addlong(argb4444);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1600:33: note: in expansion of macro 'addlong'
                                 addlong(ai88);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1606:33: note: in expansion of macro 'addlong'
                                 addlong(ai88);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1630:33: note: in expansion of macro 'addlong'
                                 addlong(ai88);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1649:33: note: in expansion of macro 'addlong'
                                 addlong(ai88);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1869:33: note: in expansion of macro 'addlong'
                                 addlong(&zero);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1895:33: note: in expansion of macro 'addlong'
                                 addlong(&zero);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:1943:33: note: in expansion of macro 'addlong'
                                 addlong(rgb332);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:2044:33: note: in expansion of macro 'addlong'
                                 addlong(rgb565);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:2053:33: note: in expansion of macro 'addlong'
                                 addlong(argb1555);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:2060:33: note: in expansion of macro 'addlong'
                                 addlong(argb4444);
                                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:2616:25: note: in expansion of macro 'addlong'
                         addlong(&xmm_ff_w);
                         ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:2622:17: note: in expansion of macro 'addlong'
                 addlong(&xmm_01_w);
                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:2665:17: note: in expansion of macro 'addlong'
                 addlong(&xmm_ff_b);
                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:2931:17: note: in expansion of macro 'addlong'
                 addlong(rgb565);
                 ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:2955:25: note: in expansion of macro 'addlong'
                         addlong(alookup);
                         ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:3019:25: note: in expansion of macro 'addlong'
                         addlong(aminuslookup);
                         ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:3049:25: note: in expansion of macro 'addlong'
                         addlong(&xmm_ff_w);
                         ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:3093:25: note: in expansion of macro 'addlong'
                         addlong(&minus_254);
                         ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:3133:25: note: in expansion of macro 'addlong'
                         addlong(alookup);
                         ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:3197:25: note: in expansion of macro 'addlong'
                         addlong(aminuslookup);
                         ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:3227:25: note: in expansion of macro 'addlong'
                         addlong(&xmm_ff_w);
                         ^
vid_voodoo_codegen_x86.h:3380:57: warning: pointer type mismatch in conditional expression [enabled by default]
                         addlong(dither2x2 ? dither_g2x2 : dither_g);
                                                         ^
vid_voodoo_codegen_x86.h:51:47: note: in definition of macro 'addlong'
         *(uint32_t *)&code_block[block_pos] = val;      \
                                               ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:3380:25: note: in expansion of macro 'addlong'
                         addlong(dither2x2 ? dither_g2x2 : dither_g);
                         ^
vid_voodoo_codegen_x86.h:3385:58: warning: pointer type mismatch in conditional expression [enabled by default]
                         addlong(dither2x2 ? dither_rb2x2 : dither_rb);
                                                          ^
vid_voodoo_codegen_x86.h:51:47: note: in definition of macro 'addlong'
         *(uint32_t *)&code_block[block_pos] = val;      \
                                               ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:3385:25: note: in expansion of macro 'addlong'
                         addlong(dither2x2 ? dither_rb2x2 : dither_rb);
                         ^
vid_voodoo_codegen_x86.h:3390:58: warning: pointer type mismatch in conditional expression [enabled by default]
                         addlong(dither2x2 ? dither_rb2x2 : dither_rb);
                                                          ^
vid_voodoo_codegen_x86.h:51:47: note: in definition of macro 'addlong'
         *(uint32_t *)&code_block[block_pos] = val;      \
                                               ^
vid_voodoo_codegen_x86.h:51:45: warning: assignment makes integer from pointer without a cast [enabled by default]
         *(uint32_t *)&code_block[block_pos] = val;      \
                                             ^
vid_voodoo_codegen_x86.h:3390:25: note: in expansion of macro 'addlong'
                         addlong(dither2x2 ? dither_rb2x2 : dither_rb);
                         ^
vid_voodoo.c: In function 'voodoo_half_triangle':
vid_voodoo.c:1916:40: warning: assignment from incompatible pointer type [enabled by default]
                 state->fb_mem = fb_mem = &voodoo->fb_mem[params->draw_offset + (real_y * voodoo->row_width)];
                                        ^
vid_voodoo.c:1917:42: warning: assignment from incompatible pointer type [enabled by default]
                 state->aux_mem = aux_mem = &voodoo->fb_mem[params->aux_offset + (real_y * voodoo->row_width)];
                                          ^
vid_voodoo.c: In function 'voodoo_triangle':
vid_voodoo.c:2452:21: warning: incompatible implicit declaration of built-in function 'log2' [enabled by default]
         LOD = (int)(log2((double)tempLOD / (double)(1ULL << 36)) * 256);
                     ^
Makefile.mingw:43: recipe for target 'vid_voodoo.o' failed
mingw32-make.exe: *** [vid_voodoo.o] Error 1
I tried with mingw 4.7.3 and 4.8.1.
even if the problem is not the version, what version is more appropriate to compile both the PCEM-Unofficial and the Official?

Tks.
Battler
Posts: 793
Joined: Sun 06 Jul, 2014 7:05 pm

Re: Error compiling/building PCEM-Unofficial

Post by Battler »

For PCem-Unofficial, use GCC 5.2 or later. For the mainline (official) PCem, 4.7.x should be enough. Also do not ask support for PCem-Unofficial here... either PM me or go to #pcem-x (excuse the name, it was created last year) on irc.ringoflightning.net .
User avatar
omarsis81
Posts: 945
Joined: Thu 17 Dec, 2015 6:20 pm

Re: Error compiling/building PCEM-Unofficial

Post by omarsis81 »

SarahWalker: what do you use to make the official release? Cygwin, MinGW?
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Error compiling/building PCEM-Unofficial

Post by SarahWalker »

MinGW with GCC 4.7.2.
User avatar
omarsis81
Posts: 945
Joined: Thu 17 Dec, 2015 6:20 pm

Re: Error compiling/building PCEM-Unofficial

Post by omarsis81 »

SarahWalker wrote:MinGW with GCC 4.7.2.
Thank you very much! I will give it a try
Post Reply