pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/48508: problems building multimedia/libvpx on Solaris 10



>Number:         48508
>Category:       pkg
>Synopsis:       problems building multimedia/libvpx on Solaris 10
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jan 09 15:15:01 +0000 2014
>Originator:     Jörn Clausen
>Release:        
>Organization:
University of Bielefeld
>Environment:
>Description:
Building multimedia/libvpx on Solaris 10 (tested so far on i86) does not work 
out of the box:

===> Building for libvpx-1.3.0
    [CREATE] vpx_scale_rtcd.h
    [CREATE] vp8_rtcd.h
    [CREATE] vp9_rtcd.h
tr: Bad string.
tr: Bad string.
tr: Bad string.
    [DEP] third_party/x86inc/x86inc.asm.d
    [DEP] vp9/common/x86/vp9_intrapred_ssse3.asm.d

As a result, several header files are not created correctly, resulting in 
subsequent compilation errors. It seems, even /usr/xpg4/bin/tr (as defined in 
tools.SunOS.mk) is not good enough any more.

Using GNU tr yields better results. I can't remember how to tell Makefile to 
use this version, USE_TOOLS+=gtr does not work.

Anyway:

$ bmake TOOLS_PLATFORM.tr=/usr/pkgsrc/20130903/bin/gtr

clears the first hurdle and then breaks here:

...
    [CC] vp9/common/x86/vp9_idct_intrin_sse2.c.o
libtool: compile:  gcc -O2 -m32 -O3 -fPIC -Wall -Wdeclaration-after-statement 
-Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla 
-Wimplicit-function-declaration -Wuninitialized -Wunused-variable 
-Wunused-but-set-variable -Wno-unused-function -I. 
-I/pkgsrc/source/pkgsrc/multimedia/libvpx/work.pkgsrc-i86/libvpx-1.3.0 -msse2 
-c vp9/common/x86/vp9_idct_intrin_sse2.c  -fPIC -DPIC -o 
vp9/common/x86/.libs/vp9_idct_intrin_sse2.c.o
Assembler: vp9_loopfilter_intrin_avx2.c
        "/var/tmp//cc6ilBLi.s", line 26 : Illegal mnemonic
        Near line: "    vmovd   %ecx, %xmm6"
        "/var/tmp//cc6ilBLi.s", line 26 : Syntax error
        Near line: "    vmovd   %ecx, %xmm6"
        "/var/tmp//cc6ilBLi.s", line 28 : Illegal mnemonic
        Near line: "    vpbroadcastb    %xmm6, %xmm6"
        "/var/tmp//cc6ilBLi.s", line 28 : Syntax error
        Near line: "    vpbroadcastb    %xmm6, %xmm6"
        "/var/tmp//cc6ilBLi.s", line 30 : Illegal mnemonic
        Near line: "    vmovd   %esi, %xmm2"
        "/var/tmp//cc6ilBLi.s", line 30 : Syntax error
        Near line: "    vmovd   %esi, %xmm2"
...
        Near line: "    vmovdqu (%edi), %xmm0"
        "/var/tmp//cc6ilBLi.s", line 64 : Illegal mnemonic
        Near line: "    vmovdqa %xmm0, 1024(%esp)"
Too many errors - Goodbye
Makefile:128: recipe for target 'vp9/common/x86/vp9_loopfilter_intrin_avx2.c.o' 
failed

After adding

CONFIGURE_ENV+=         sse2=no sse3=no ssse3=no sse4_1=no

or even

CONFIGURE_ENV+=         RTCD_OPTIONS='--disable-sse2 --disable-sse3 
--disable-ssse3 --disable-sse4_1'

to the Makefile, and configure agreeing to this

Configuring for target 'x86-solaris-gcc'
  enabling x86
  enabling runtime_cpu_detect
  enabling mmx
  enabling sse
  enabling avx
  enabling avx2

(i.e. sse2 et.al. are missing from this list), the error remains. Is this an 
upstream problem that the VP9 code simply does not care for the configure 
options to not use these instruction sets?

>How-To-Repeat:

>Fix:



Home | Main Index | Thread Index | Old Index