[Pixman] 'AV_386_SSSE3' undeclared when building pixman0.34.1 with Solaris10-u2
Yike Zhang
ykzhang at vmware.com
Tue Apr 5 00:56:43 UTC 2016
Hello there,
May I know if anyone hit the similar issue and guide me how to work around it?
I am trying to build and pixman library for Solaris10, but get the following error
2016-03-30 18:15:32 gobuilds.Compile : 18:15:32.994 make INFO CC pixman-x86.lo
2016-03-30 18:15:33 gobuilds.Compile : 18:15:33.023 make INFO pixman-x86.c: In function 'detect_cpu_features':
2016-03-30 18:15:33 gobuilds.Compile : 18:15:33.023 make INFO pixman-x86.c:68: error: 'AV_386_SSSE3' undeclared (first use in this function)
2016-03-30 18:15:33 gobuilds.Compile : 18:15:33.023 make INFO pixman-x86.c:68: error: (Each undeclared identifier is reported only once
2016-03-30 18:15:33 gobuilds.Compile : 18:15:33.023 make INFO pixman-x86.c:68: error: for each function it appears in.)
2016-03-30 18:15:33 gobuilds.Compile : 18:15:33.025 make INFO make[2]: *** [pixman-x86.lo] Error 1
Double check and found that AV_386_SSSE3 is not defined in the solaris10-u2 header file,
...
#define AV_386_FPU 0x00001 /* x87-style floating point */
#define AV_386_TSC 0x00002 /* rdtsc insn */
#define AV_386_CX8 0x00004 /* cmpxchg8b insn */
#define AV_386_SEP 0x00008 /* sysenter and sysexit */
#define AV_386_AMD_SYSC 0x00010 /* AMD's syscall and sysret */
#define AV_386_CMOV 0x00020 /* conditional move insns */
#define AV_386_MMX 0x00040 /* MMX insns */
#define AV_386_AMD_MMX 0x00080 /* AMD's MMX insns */
#define AV_386_AMD_3DNow 0x00100 /* AMD's 3Dnow! insns */
#define AV_386_AMD_3DNowx 0x00200 /* AMD's 3Dnow! extended insns */
#define AV_386_FXSR 0x00400 /* fxsave and fxrstor */
#define AV_386_SSE 0x00800 /* SSE insns and regs */
#define AV_386_SSE2 0x01000 /* SSE2 insns and regs */
#define AV_386_PAUSE 0x02000 /* use pause insn (in spin loops) */
#define AV_386_SSE3 0x04000 /* SSE3 insns and regs */
#define AV_386_MON 0x08000 /* monitor/mwait insns */
#define AV_386_CX16 0x10000 /* cmpxchg16b insn */...
However, I could find related definition in the header file for Solaris11, see
cat ./solaris11_1111/usr/include/sys/auxv_386.h |grep AV_386_SS*E3
#define AV_386_SSE3 0x04000 /* SSE3 insns and regs */
#define AV_386_SSSE3 0x400000 /* Intel SSSE3 insns */
May I know do I have to manipulate the 10u2 header file by including related definition, or I need to update the pixman source code like
diff --git a/pixman/pixman-x86.c b/pixman/pixman-x86.c
index 05297c4..32b4018 100644
--- a/pixman/pixman-x86.c
+++ b/pixman/pixman-x86.c
@@ -65,8 +65,10 @@ detect_cpu_features (void)
features |= X86_SSE;
if (result & AV_386_SSE2)
features |= X86_SSE2;
+#ifdef USE_SSSE3
if (result & AV_386_SSSE3)
features |= X86_SSSE3;
+#endif
}
Thanks
Yike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pixman/attachments/20160405/21e0e76b/attachment-0001.html>
More information about the Pixman
mailing list