[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