Paul Floyd wrote:
> hajma wrote:
> 
>> I don't really have a clue, but I'd check if the sun studio and os is 
>> completely patched and that you followed all the steps at the wiki
> 
> 
> Yes, everything is patched and as far as I can tell I followed all of 
> the steps.

And a bit more.

I tried cutting all of the -xsoup options from

/opt/SUNWspro/bin/cc -DHAVE_CONFIG_H -I. -I../../../include -I../../.. 
-I../../../include -I../../../include -I../../../src 
-I../../../src/xine-engine -I../../../src/xine-engine 
-I../../../src/xine-utils -I../../../src/input -I../../../src/input 
-I../../../lib -I../../../lib -I/opt/foss/include -DXINE_COMPILE 
-I/opt/foss/include/ffmpeg -I/usr/X/include -I/usr/X11/include -mt 
-fvisibility=hidden -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DXINE_COMPILE 
-Xa -errshort=full -errfmt=error -errwarn=%none -s -xcsi 
-xustr=ascii_utf16_ushort -features=extinl -xalias_level=std -mt 
-xF=%none -xbuiltin=%all -xinline=%auto -xprefetch=auto 
-xprefetch_auto_type=indirect_array_access -xprefetch_level=3 
-xthreadvar=%all -xipo=0 -xO3 -xregs=no%frameptr -xjobs=2 -KPIC 
-xrestrict=%all -xtarget=opteron -m64 -xarch=sse2 -xchip=opteron 
-xcache=64/64/2:1024/64/16 -D_REENTRANT -D__EXTENSIONS__ 
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_POSIX_PTHREAD_SEMANTICS 
-DSOLARIS -DSOLARIS10 -DNDEBUG -DNO_DEBUG -D_UNICODE -DUNICODE 
-D_XOPEN_SOURCE=600 -D_XPG6 -D_POSIX_C_SOURCE=200112L -D__XOPEN_OR_POSIX 
-D_STRICT_STDC -D_STRICT_STDC__ -D_STDC_C99 -D_ISOC99_SOURCE 
-D_LARGEFILE64_SOURCE -I/opt/foss/include -DNDEBUG -c mmx.c  -KPIC -DPIC 
-o .libs/xineplug_post_goom_la-mmx.o

and some of the doubles and triples. that left me with

/opt/SUNWspro/bin/cc -DHAVE_CONFIG_H -I. -I../../../include -I../../.. 
-I../../../src -I../../../src/xine-engine -I../../../src/xine-utils 
-I../../../src/input -I../../../lib -I/opt/foss/include -DXINE_COMPILE 
-I/opt/foss/include/ffmpeg -I/usr/X/include -I/usr/X11/include -m64 
-D_REENTRANT -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS -DSOLARIS 
-DSOLARIS10 -DNDEBUG -DNO_DEBUG -D_UNICODE -DUNICODE -D_XOPEN_SOURCE=600 
-D_XPG6 -D_POSIX_C_SOURCE=200112L -D__XOPEN_OR_POSIX -D_STRICT_STDC 
-D_STRICT_STDC__ -D_STDC_C99 -D_ISOC99_SOURCE -D_LARGEFILE64_SOURCE -c 
mmx.c  -KPIC -DPIC -o .libs/xineplug_post_goom_la-mmx.o

This still reproduces the problem. If I remove the -m64, then it compiles.

I tried adding the -keeptmp option. So we have

cc: Warning: illegal option -fvisibility=hidden
Assembler: mmx.c
         "/tmp/ube_sGAA.125.pxaOpa", line 68 : Illegal mnemonic
         Near line: "pushl %ebx"
         "/tmp/ube_sGAA.125.pxaOpa", line 70 : Illegal mnemonic
         Near line: "    popl %eax"
         "/tmp/ube_sGAA.125.pxaOpa", line 76 : Illegal mnemonic
         Near line: "    popl %eax"
         "/tmp/ube_sGAA.125.pxaOpa", line 187 : Illegal mnemonic
         Near line: "    popl %ebx"

and copied from the tmp output

/ BEGIN ASM TEMPLATE
pushl %ebx                      ; error here
        pushf
        popl %eax               ; and here
        movl %eax, %ecx
        xorl $0x200000, %eax
        push %eax
        popf
        pushf
        popl %eax               ; and here

I've tried the full command line with Studio Express 0903 and it gives
cc: Warning: Option -fvisibility=hidden passed to ld, if ld is invoked, 
ignored otherwise
"mmx.c", [mm_support]:ube: error: SIGNAL: Segmentation Fault

and my cut down command line gives
OPMAP Assertion
cc: Fatal error in /opt/SSX0903/prod/bin/acomp
cc: Status 139

Try another line. Looking at the source.

In mmx.h there is

static int
mm_support(void)
{
        /* Returns 1 if MMX instructions are supported,
           3 if Cyrix MMX and Extended MMX instructions are supported
           5 if AMD MMX and 3DNow! instructions are supported
                 13 if AMD Extended MMX, &3dNow supported
           0 if hardware does not support any of these
        */
#ifdef ARCH_X86_64
        return 13;
#else
        register int rval = 0;

        __asm__ __volatile__ (
                /* See if CPUID instruction is supported ... */
                /* ... Get copies of EFLAGS into eax and ecx */
     "pushl %%ebx\n\t"

So what if I add a -DARCH_X86_64?

And bingo. If I add that to the compile line, it compiles OK. I can see 
in the patch that these conditionals have been added.

In include/configure.h there's

/* Define this if you're running x86 architecture 32 bits */
#define ARCH_X86_32

/* Define this if you're running x86 architecture 64 bits */
/* #undef ARCH_X86_64 */

Looking at configure (and trying to keep my dinner down), it looks like 
it thinks that 'build' is

s, at build@,|#_!!_#|i386-pc-solaris2.10,g

(from config.status)

Now in configure ~line 50472), there is

case "$host_or_hostalias" in
   i?86-* | k?-* | athlon-* | pentium*-)
...
   x86_64*)
...

So my guess is that something like

--build=x86_64-pc-solaris2.10

needs to be added to the configure command line.

A+
Paul




Reply via email to