ports/107836: devel/liboil: symbol conflict when SSE2 support enabled.

Tom McLaughlin tmclaugh at FreeBSD.org
Fri Jan 12 03:40:15 UTC 2007


>Number:         107836
>Category:       ports
>Synopsis:       devel/liboil: symbol conflict when SSE2 support enabled.
>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 Jan 12 03:40:14 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Tom McLaughlin
>Release:        FreeBSD 6.2-PRERELEASE i386
>Organization:
>Environment:


System: FreeBSD 6.2-PRERELEASE #0: Wed Dec 27 14:23:22 EST 2006
    tom at bofh.straycat.dhs.org:/usr/obj/usr/src/sys/GENERIC_ULE



>Description:


While working on the latest audio/muine port and switching from Gstreamer 0.8
to 0.10 I started receiving the crash below.  I got marcus to look at this and the
symbol conflict goes away when disabling SSE2 support in liboil which the
attached patch does.  This is just a temporary  fix until SSE2 support can be fixed.

Backtrace:
0x2affe743 in composite_in_argb_const_mask_sse_2pix (dest=0x899ad00, 
    src=0x931c900, mask=0x931cd00 "¿", '¿' <repeats 199 times>..., n=100)
    at emmintrin.h:1012
1012      return (__m128i)__builtin_ia32_punpcklbw128 ((__v16qi)__A, (__v16qi)__B);
(gdb) bt full
#0  0x2affe743 in composite_in_argb_const_mask_sse_2pix (dest=0x899ad00, 
    src=0x931c900, mask=0x931cd00 "¿", '¿' <repeats 199 times>..., n=100)
    at emmintrin.h:1012
No locals.
#1  0x2aff0dad in _oil_test_marshal_function (func=0x2affe71c, 
    args=0xbfbfc938, n_args=4, pointer_mask=255, prof=0x922c7ec)
    at liboilmarshal.c:63
        __PRETTY_FUNCTION__ = "_oil_test_marshal_function"
#2  0x2aff2b30 in oil_test_check_function (priv=0x922c000) at liboiltest.c:270
        k = 4
        i = 0
        j = 154258688
        args = {144289024, 154257664, 154258688, 100, 0, 3217017196, 
  674939172, 1, 0, 721646012}
        pointer_mask = 30
        __PRETTY_FUNCTION__ = "oil_test_check_function"
#3  0x2afefe65 in oil_cpu_fault_check_try (
    func=0x2aff294c <oil_test_check_function>, priv=0x922c000)
    at liboilcpu.c:201
        ret = 0
#4  0x2aff2d14 in oil_test_check_impl (test=0x922c000, impl=0xff)
    at liboiltest.c:357
        x = 1.1629876210894074e-264
        i = -1077949796
        n = 721516586
        fail = 0
        ret = 255
        __PRETTY_FUNCTION__ = "oil_test_check_impl"
#5  0x2aff0863 in oil_class_optimize (klass=0x2b02af00) at liboilfunction.c:362
        impl = (OilFunctionImpl *) 0x2b028d60
        min_impl = (OilFunctionImpl *) 0x0
        test = (OilTest *) 0x922c000
        ret = 255
        __PRETTY_FUNCTION__ = "oil_class_optimize"
#6  0x2aff0a6e in oil_optimize_all () at liboilfunction.c:181
        klass = (OilFunctionClass *) 0xff
        i = 86
        __PRETTY_FUNCTION__ = "oil_optimize_all"
#7  0x2aff0b0d in oil_init () at liboilfunction.c:140
        __PRETTY_FUNCTION__ = "oil_init"
#8  0x2afc4efd in resample_init () at resample.c:46
        inited = 0
#9  0x2afc4858 in plugin_init (plugin=0x89a8638) at gstaudioresample.c:685
No locals.
#10 0x29ca87fe in gst_plugin_register_func (plugin=0x89a8638, 
    module=0x931cd00, desc=0x2afc9200) at gstplugin.c:259
        __PRETTY_FUNCTION__ = "gst_plugin_register_func"
<s


>How-To-Repeat:


change USE_USEGSTREAMER80 to USE_GSTREAMER in audio/muine, build, and
play an mp3.


>Fix:


--- liboil.diff begins here ---
diff -ruN liboil.orig/Makefile liboil/Makefile
--- liboil.orig/Makefile	Tue Jan  9 02:49:52 2007
+++ liboil/Makefile	Tue Jan  9 02:49:46 2007
@@ -7,6 +7,7 @@
 
 PORTNAME=	liboil
 PORTVERSION=	0.3.10
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	http://liboil.freedesktop.org/download/ \
 		${MASTER_SITE_LOCAL}
@@ -15,7 +16,7 @@
 MAINTAINER=	multimedia at FreeBSD.org
 COMMENT=	Library of optimized inner loops
 
-USE_GNOME=	pkgconfig gnomehack
+USE_GNOME=	pkgconfig gnomehack gnometarget
 GNU_CONFIGURE=	yes
 USE_LDCONFIG=	yes
 CONFIGURE_ARGS=	--disable-gtk-doc \
diff -ruN liboil.orig/files/patch-liboil_Makefile.in liboil/files/patch-liboil_Makefile.in
--- liboil.orig/files/patch-liboil_Makefile.in	Wed Dec 31 19:00:00 1969
+++ liboil/files/patch-liboil_Makefile.in	Tue Jan  9 02:47:42 2007
@@ -0,0 +1,20 @@
+--- liboil/Makefile.in.orig	Tue Jan  9 02:46:56 2007
++++ liboil/Makefile.in	Tue Jan  9 02:47:13 2007
+@@ -41,8 +41,6 @@ host_triplet = @host@
+ @HAVE_GCC_ASM_TRUE@@HAVE_I386_TRUE at am__append_2 = i386/libi386.la i386_amd64/libi386_amd64.la
+ @HAVE_MMX_INTRINSICS_TRUE at am__append_3 = mmx
+ @HAVE_MMX_INTRINSICS_TRUE at am__append_4 = mmx/libmmx.la
+- at HAVE_SSE2_INTRINSICS_TRUE@am__append_5 = fb sse
+- at HAVE_SSE2_INTRINSICS_TRUE@am__append_6 = fb/libfb.la sse/libsse.la
+ #subdir_i386 += 3dnow
+ #libs_i386 += 3dnow/lib3dnow.la
+ @HAVE_AMD64_TRUE@@HAVE_GCC_ASM_TRUE at am__append_7 = amd64 i386_amd64
+@@ -126,8 +124,6 @@ liboil_ at LIBOIL_OLD_MAJORMINOR@_la_OBJECT
+ @HAVE_GCC_ASM_TRUE@@HAVE_I386_TRUE@	i386/libi386.la \
+ @HAVE_GCC_ASM_TRUE@@HAVE_I386_TRUE@	i386_amd64/libi386_amd64.la
+ @HAVE_MMX_INTRINSICS_TRUE at am__DEPENDENCIES_3 = mmx/libmmx.la
+- at HAVE_SSE2_INTRINSICS_TRUE@am__DEPENDENCIES_4 = fb/libfb.la \
+- at HAVE_SSE2_INTRINSICS_TRUE@	sse/libsse.la
+ @HAVE_AMD64_TRUE@@HAVE_GCC_ASM_TRUE at am__DEPENDENCIES_5 =  \
+ @HAVE_AMD64_TRUE@@HAVE_GCC_ASM_TRUE@	amd64/libamd64.la \
+ @HAVE_AMD64_TRUE@@HAVE_GCC_ASM_TRUE@	i386_amd64/libi386_amd64.la
--- liboil.diff ends here ---



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



More information about the freebsd-ports-bugs mailing list