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