ports/183554: vlc compilation dies with "ran out of registers during register allocation"

Martin Birgmeier Martin.Birgmeier at aon.at
Fri Nov 1 15:10:01 UTC 2013


>Number:         183554
>Category:       ports
>Synopsis:       vlc compilation dies with "ran out of registers during register allocation"
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Nov 01 15:10:01 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Martin Birgmeier
>Release:        9.2 release
>Organization:
MBi at home
>Environment:
FreeBSD v902.xyzzy 9.2-RELEASE FreeBSD 9.2-RELEASE #0 r256022M: Sat Oct  5 12:34:28 CEST 2013     root at v902.xyzzy:/usr/obj/.../hal/z/SRC/FreeBSD/release/9.2.0/sys/XYZZY_SMP  i386
>Description:
When compiling multimedia/vlc from ports, the compilation dies in algo_yadif.c with the following errors:

gmake[4]: Entering directory `/usr/tmp/z/SRC/FreeBSD-ports/multimedia/vlc/work/vlc-2.1.0/modules/video_filter'
  CC       libdeinterlace_plugin_la-algo_yadif.lo
In file included from deinterlace/algo_yadif.c:26:
In file included from ../../config.h:785:
./../include/vlc_fixups.h:241:10: warning: '_Static_assert' macro redefined
# define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); }))
         ^
/usr/include/sys/cdefs.h:244:9: note: previous definition is here
#define _Static_assert(x, y)    __Static_assert(x, __COUNTER__)
        ^
In file included from deinterlace/algo_yadif.c:48:
deinterlace/yadif.h:37:23: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]
DECLARE_ASM_CONST(16, const xmm_reg, pb_1) = {0x0101010101010101ULL, 0x0101010101010101ULL};
                      ^
deinterlace/yadif.h:28:54: note: expanded from macro 'DECLARE_ASM_CONST'
#    define DECLARE_ASM_CONST(n,t,v)    static const t __attribute__((used)) __attribute__ ((aligned (n))) v
                                                     ^
deinterlace/yadif.h:38:23: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]
DECLARE_ASM_CONST(16, const xmm_reg, pw_1) = {0x0001000100010001ULL, 0x0001000100010001ULL};
                      ^
deinterlace/yadif.h:28:54: note: expanded from macro 'DECLARE_ASM_CONST'
#    define DECLARE_ASM_CONST(n,t,v)    static const t __attribute__((used)) __attribute__ ((aligned (n))) v
                                                     ^
In file included from deinterlace/algo_yadif.c:48:
In file included from deinterlace/yadif.h:49:
deinterlace/yadif_template.h:124:1: warning: unknown attribute '__target__' ignored [-Wattributes]
VLC_TARGET static void RENAME(yadif_filter_line)(uint8_t *dst,
^
deinterlace/yadif.h:47:20: note: expanded from macro 'VLC_TARGET'
#define VLC_TARGET VLC_SSE
                   ^
./../include/vlc_cpu.h:68:36: note: expanded from macro 'VLC_SSE'
#   define VLC_SSE __attribute__ ((__target__ ("sse")))
                                   ^
In file included from deinterlace/algo_yadif.c:48:
In file included from deinterlace/yadif.h:64:
deinterlace/yadif_template.h:124:1: warning: unknown attribute '__target__' ignored [-Wattributes]
VLC_TARGET static void RENAME(yadif_filter_line)(uint8_t *dst,
^
deinterlace/yadif.h:62:20: note: expanded from macro 'VLC_TARGET'
#define VLC_TARGET VLC_SSE
                   ^
./../include/vlc_cpu.h:68:36: note: expanded from macro 'VLC_SSE'
#   define VLC_SSE __attribute__ ((__target__ ("sse")))
                                   ^
In file included from deinterlace/algo_yadif.c:48:
In file included from deinterlace/yadif.h:77:
deinterlace/yadif_template.h:124:1: warning: unknown attribute '__target__' ignored [-Wattributes]
VLC_TARGET static void RENAME(yadif_filter_line)(uint8_t *dst,
^
deinterlace/yadif.h:75:20: note: expanded from macro 'VLC_TARGET'
#define VLC_TARGET VLC_MMX
                   ^
./../include/vlc_cpu.h:54:36: note: expanded from macro 'VLC_MMX'
#   define VLC_MMX __attribute__ ((__target__ ("mmx")))
                                   ^
deinterlace/algo_yadif.c:129:20: warning: incompatible pointer types assigning to 'void (*)(uint8_t *, uint8_t *, uint8_t *, uint8_t *, int, int, int, int, int)' from 'void (uint16_t *, uint16_t *, uint16_t *, uint16_t *, int, int, int, int, int)' [-Wincompatible-pointer-types]
            filter = yadif_filter_line_c_16bit;
                   ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from deinterlace/algo_yadif.c:48:
In file included from deinterlace/yadif.h:49:
deinterlace/yadif_template.h:262:9: error: ran out of registers during register allocation
        FILTER
        ^
deinterlace/yadif_template.h:135:13: note: expanded from macro 'FILTER'
            "pxor      "MM"7, "MM"7 \n\t"\
            ^
deinterlace/yadif_template.h:256:9: error: ran out of registers during register allocation
        FILTER
        ^
deinterlace/yadif_template.h:135:13: note: expanded from macro 'FILTER'
            "pxor      "MM"7, "MM"7 \n\t"\
            ^
In file included from deinterlace/algo_yadif.c:48:
In file included from deinterlace/yadif.h:64:
deinterlace/yadif_template.h:262:9: error: ran out of registers during register allocation
        FILTER
        ^
deinterlace/yadif_template.h:135:13: note: expanded from macro 'FILTER'
            "pxor      "MM"7, "MM"7 \n\t"\
            ^
deinterlace/yadif_template.h:256:9: error: ran out of registers during register allocation
        FILTER
        ^
deinterlace/yadif_template.h:135:13: note: expanded from macro 'FILTER'
            "pxor      "MM"7, "MM"7 \n\t"\
            ^
In file included from deinterlace/algo_yadif.c:48:
In file included from deinterlace/yadif.h:77:
deinterlace/yadif_template.h:262:9: error: ran out of registers during register allocation
        FILTER
        ^
deinterlace/yadif_template.h:135:13: note: expanded from macro 'FILTER'
            "pxor      "MM"7, "MM"7 \n\t"\
            ^
deinterlace/yadif_template.h:256:9: error: ran out of registers during register allocation
        FILTER
        ^
deinterlace/yadif_template.h:135:13: note: expanded from macro 'FILTER'
            "pxor      "MM"7, "MM"7 \n\t"\
            ^
7 warnings and 6 errors generated.
gmake[4]: *** [libdeinterlace_plugin_la-algo_yadif.lo] Error 1

This happens only on 9.2 i386, not on amd64.

>How-To-Repeat:
Try to compile multimedia/vlc on 9.2 i386
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-ports-bugs mailing list