2015-09-03 23:15 GMT+03:00 Alexandre H <openbs...@wanadoo.fr>: > Le 09/02/15 13:23, Nigel Taylor a écrit : > >> On 09/01/15 23:54, Alexandre H wrote: >>> >>> Le 08/27/15 01:22, Nigel Taylor a écrit : >>>> >>>> On 08/25/15 22:58, Alexandre H wrote: >>>>> >>>>> Hello, >>>>> >>>>> Please, have a look to the following bug. >>>>> >>>>>> Environment: >>>>> >>>>> System : OpenBSD 5.8 >>>>> Details : OpenBSD 5.8 (CUSTOM.MP-2) #0: Fri Jul 31 >>>>> 19:48:09 >>>>> CEST 2015 >>>>> >>>>> r...@makix.my.domain:/usr/src/sys/arch/amd64/compile/CUSTOM.MP-2 >>>>> >>>>> Architecture: OpenBSD.amd64 >>>>> Machine : amd64 >>>>> I have already sent the dmesg to tech@ the 4 august >>>>>> >>>>>> Description: >>>>> >>>>> 5.8 amd64 : >>>>> With kdebase alone artsd work as excepted. >>>>> With kdebase and kdemultimedia artsd coredumps with ogg & mp3 and >>>>> work with wav. >>>>> The bug happens in 5.7-release and 5.8. >>>>>> >>>>>> How-To-Repeat: >>>>> >>>>> >>>>> 1) In 5.7-release or 5.8 you need to install kdebase-3.5.10 and >>>>> kdemultimedia-3.5.10. >>>>> >>>>> 2) With KDE3 started, you stop artsd : >>>>> kill -15 $(ps -aux|grep artsd|grep -v grep|awk '{print $2}') >>>>> >>>>> 3) You check that artsd is stopped : >>>>> ps -aux|grep artsd >>>>> >>>>> 4) In a ttyC (or in a Konsole) you launch a new artsd : >>>>> artsd >>>>> >>>>> 5) In another ttyC (or in another Konsole) you launch the following >>>>> command (you can choose another mp3 or a ogg file) : >>>>> artsplay song57.mp3 >>>>> >>>>> In the first console you will have the following output : >>>>> >>>>> artsd:/usr/local/lib/libarts_xine.so.0.0: undefined symbol >>>>> 'ao_new_port' >>>>> lazy binding failed! >>>>> Segmentation fault (core dumped) >>>>> >>>>> And you will find a file artsd.core. >>>>> ----------------------------------------------------------- >>>>> # gdb -e artsd -c artsd.core >>>>> GNU gdb 6.3 >>>>> Copyright 2004 Free Software Foundation, Inc. >>>>> GDB is free software, covered by the GNU General Public License, and >>>>> you >>>>> are >>>>> welcome to change it and/or distribute copies of it under certain >>>>> conditions. >>>>> Type "show copying" to see the conditions. >>>>> There is absolutely no warranty for GDB. Type "show warranty" for >>>>> details. >>>>> This GDB was configured as "amd64-unknown-openbsd5.8". >>>>> Core was generated by `artsd'. >>>>> Program terminated with signal 11, Segmentation fault. >>>>> Reading symbols from /usr/lib/libpthread.so.19.0...done. >>>>> Loaded symbols for /usr/lib/libpthread.so.19.0 >>>>> Loaded symbols for /usr/local/bin/artsd >>>>> Reading symbols from /usr/local/lib/libsoundserver_idl.so.2.0...done. >>>>> Loaded symbols for /usr/local/lib/libsoundserver_idl.so.2.0 >>>>> Reading symbols from /usr/local/lib/libkmedia2_idl.so.2.0...done. >>>>> Loaded symbols for /usr/local/lib/libkmedia2_idl.so.2.0 >>>>> Reading symbols from /usr/local/lib/libartsflow.so.2.0...done. >>>>> Loaded symbols for /usr/local/lib/libartsflow.so.2.0 >>>>> Reading symbols from /usr/local/lib/libmcop.so.2.0...done. >>>>> Loaded symbols for /usr/local/lib/libmcop.so.2.0 >>>>> Reading symbols from /usr/local/lib/libgmodule-2.0.so.4200.1...done. >>>>> Loaded symbols for /usr/local/lib/libgmodule-2.0.so.4200.1 >>>>> Reading symbols from /usr/local/lib/libglib-2.0.so.4200.1...done. >>>>> Loaded symbols for /usr/local/lib/libglib-2.0.so.4200.1 >>>>> Reading symbols from /usr/local/lib/libiconv.so.6.0...done. >>>>> Loaded symbols for /usr/local/lib/libiconv.so.6.0 >>>>> Reading symbols from /usr/local/lib/libpcre.so.3.0...done. >>>>> Loaded symbols for /usr/local/lib/libpcre.so.3.0 >>>>> Reading symbols from /usr/local/lib/libintl.so.6.0...done. >>>>> Loaded symbols for /usr/local/lib/libintl.so.6.0 >>>>> Reading symbols from /usr/local/lib/libgthread-2.0.so.4200.1...done. >>>>> Loaded symbols for /usr/local/lib/libgthread-2.0.so.4200.1 >>>>> Reading symbols from /usr/local/lib/libartsflow_idl.so.2.0...done. >>>>> Loaded symbols for /usr/local/lib/libartsflow_idl.so.2.0 >>>>> Reading symbols from /usr/local/lib/libaudiofile.so.1.0...done. >>>>> Loaded symbols for /usr/local/lib/libaudiofile.so.1.0 >>>>> Reading symbols from /usr/local/lib/libFLAC.so.10.0...done. >>>>> Loaded symbols for /usr/local/lib/libFLAC.so.10.0 >>>>> Reading symbols from /usr/local/lib/libogg.so.6.2...done. >>>>> Loaded symbols for /usr/local/lib/libogg.so.6.2 >>>>> Reading symbols from /usr/lib/libsndio.so.6.0...done. >>>>> Loaded symbols for /usr/lib/libsndio.so.6.0 >>>>> Reading symbols from /usr/local/lib/libvorbis.so.9.0...done. >>>>> Loaded symbols for /usr/local/lib/libvorbis.so.9.0 >>>>> Reading symbols from /usr/local/lib/libvorbisfile.so.6.0...done. >>>>> Loaded symbols for /usr/local/lib/libvorbisfile.so.6.0 >>>>> Reading symbols from /usr/local/lib/libvorbisenc.so.3.1...done. >>>>> Loaded symbols for /usr/local/lib/libvorbisenc.so.3.1 >>>>> Reading symbols from /usr/local/lib/libmad.so.2.1...done. >>>>> Loaded symbols for /usr/local/lib/libmad.so.2.1 >>>>> Reading symbols from /usr/local/lib/libmcop_mt.so.2.0...done. >>>>> Loaded symbols for /usr/local/lib/libmcop_mt.so.2.0 >>>>> Reading symbols from /usr/lib/libstdc++.so.57.0...done. >>>>> Loaded symbols for /usr/lib/libstdc++.so.57.0 >>>>> Reading symbols from /usr/lib/libm.so.9.0...done. >>>>> Loaded symbols for /usr/lib/libm.so.9.0 >>>>> Symbols already loaded for /usr/lib/libpthread.so.19.0 >>>>> Reading symbols from /usr/lib/libc.so.80.1...done. >>>>> Loaded symbols for /usr/lib/libc.so.80.1 >>>>> Reading symbols from /usr/libexec/ld.so...done. >>>>> Loaded symbols for /usr/libexec/ld.so >>>>> Reading symbols from /usr/local/lib/libartsmidi.so.1.0...done. >>>>> Loaded symbols for /usr/local/lib/libartsmidi.so.1.0 >>>>> Reading symbols from /usr/local/lib/libartsmidi_idl.so.1.0...done. >>>>> Loaded symbols for /usr/local/lib/libartsmidi_idl.so.1.0 >>>>> Reading symbols from /usr/local/lib/libartsbuilder.so.1.0...done. >>>>> Loaded symbols for /usr/local/lib/libartsbuilder.so.1.0 >>>>> Reading symbols from /usr/local/lib/libarts_xine.so.0.0...done. >>>>> Loaded symbols for /usr/local/lib/libarts_xine.so.0.0 >>>>> Reading symbols from /usr/local/lib/libxine.so.32.0...done. >>>>> Loaded symbols for /usr/local/lib/libxine.so.32.0 >>>>> Reading symbols from /usr/X11R6/lib/libfontconfig.so.9.1...done. >>>>> Loaded symbols for /usr/X11R6/lib/libfontconfig.so.9.1 >>>>> Reading symbols from /usr/X11R6/lib/libfreetype.so.24.0...done. >>>>> Loaded symbols for /usr/X11R6/lib/libfreetype.so.24.0 >>>>> Reading symbols from /usr/lib/libz.so.5.0...done. >>>>> Loaded symbols for /usr/lib/libz.so.5.0 >>>>> Reading symbols from /usr/lib/libexpat.so.11.0...done. >>>>> Loaded symbols for /usr/lib/libexpat.so.11.0 >>>>> Reading symbols from /usr/X11R6/lib/libpthread-stubs.so.2.0...done. >>>>> Loaded symbols for /usr/X11R6/lib/libpthread-stubs.so.2.0 >>>>> Reading symbols from /usr/local/lib/libxdg-basedir.so.2.0...done. >>>>> Loaded symbols for /usr/local/lib/libxdg-basedir.so.2.0 >>>>> Reading symbols from /usr/local/lib/libavutil.so.12.3...done. >>>>> Loaded symbols for /usr/local/lib/libavutil.so.12.3 >>>>> Reading symbols from /usr/X11R6/lib/libX11.so.16.1...done. >>>>> Loaded symbols for /usr/X11R6/lib/libX11.so.16.1 >>>>> Reading symbols from /usr/X11R6/lib/libxcb.so.3.1...done. >>>>> Loaded symbols for /usr/X11R6/lib/libxcb.so.3.1 >>>>> Reading symbols from /usr/X11R6/lib/libXext.so.13.0...done. >>>>> Loaded symbols for /usr/X11R6/lib/libXext.so.13.0 >>>>> Reading symbols from /usr/X11R6/lib/libXau.so.10.0...done. >>>>> Loaded symbols for /usr/X11R6/lib/libXau.so.10.0 >>>>> Reading symbols from /usr/X11R6/lib/libXdmcp.so.11.0...done. >>>>> Loaded symbols for /usr/X11R6/lib/libXdmcp.so.11.0 >>>>> #0 _dl_bind (object=0x10f5811d400, index=Variable "index" is not >>>>> available. >>>>> ) at /usr/src/libexec/ld.so/amd64/rtld_machine.c:383 >>>>> 383 *(volatile int *)0 = 0; /* XXX */ >>>>> (gdb) bt full >>>>> #0 _dl_bind (object=0x10f5811d400, index=Variable "index" is not >>>>> available. >>>>> ) at /usr/src/libexec/ld.so/amd64/rtld_machine.c:383 >>>>> rel = (Elf64_Rela *) 0x10fb3e570c0 >>>>> sym = Variable "sym" is not available. >>>>> (gdb) list >>>>> 383 *(volatile int *)0 = 0; /* XXX */ >>>>> 384 } >>>>> 385 >>>>> 386 newval = ooff + this->st_value + rel->r_addend; >>>>> 387 >>>>> 388 if (sobj->traced && _dl_trace_plt(sobj, symn)) >>>>> 389 return newval; >>>>> 390 >>>>> 391 /* if GOT is protected, allow the write */ >>>>> 392 if (object->got_size != 0) { >>>>> ----------------------------------------------------------- >>>>> Adding --enable-debug for configure change nothing. >>>>> The last update on arts3 change nothing. >>>>> Hopefully it's only artsd with kdemultimedia who has this bug. >>>>> >>>>>> Fix: >>>>> >>>>> I found nothing really useful on the web and the lists. >>>>> I have tried some little hacks, no one work. >>>>> After some researchs I found two similar errors related to respectively >>>>> _x_ao_new_port and ao_new_port with ld in >>>>> /usr/ports/pobj/kdemultimedia-3.5.10/build-amd64/config.log : >>>>> ----------------------------------------------------------- >>>>> configure:42290: checking for _x_ao_new_port in -lxine >>>>> configure:42325: cc -o conftest -DNDEBUG -O2 -O2 -pipe >>>>> -DQT_THREAD_SUPPORT -L/usr/local/lib -L/usr/local/lib/qt3 >>>>> -L/usr/X11R6/lib -L/usr/local/lib/kde3 -L/usr/local/lib/db4 >>>>> -L/usr/local/lib/samba -L/usr/local/lib conftest.c -lxine -pthread >&5 >>>>> /usr/local/lib/libxine.so.32.0: warning: warning: strcpy() is almost >>>>> always misused, please use strlcpy() >>>>> /usr/local/lib/libxine.so.32.0: warning: warning: strcat() is almost >>>>> always misused, please use strlcat() >>>>> /usr/local/lib/libxine.so.32.0: warning: warning: sprintf() is often >>>>> misused, please use snprintf() >>>>> /tmp//cczltori.o: In function `main': >>>>> conftest.c:(.text+0x7): undefined reference to `_x_ao_new_port' >>>>> collect2: ld returned 1 exit status >>>>> configure:42331: $? = 1 >>>>> configure: failed program was: >>>>> | /* confdefs.h. */ >>>>> | #define PACKAGE_NAME "" >>>>> | #define PACKAGE_TARNAME "" >>>>> | #define PACKAGE_VERSION "" >>>>> | #define PACKAGE_STRING "" >>>>> | #define PACKAGE_BUGREPORT "" >>>>> | #define PACKAGE "kdemultimedia" >>>>> | #define VERSION "3.5.10" >>>>> | #define KDELIBSUFF "" >>>>> | #define STDC_HEADERS 1 >>>>> | #define HAVE_SYS_TYPES_H 1 >>>>> | #define HAVE_SYS_STAT_H 1 >>>>> | #define HAVE_STDLIB_H 1 >>>>> | #define HAVE_STRING_H 1 >>>>> | #define HAVE_MEMORY_H 1 >>>>> | #define HAVE_STRINGS_H 1 >>>>> | #define HAVE_INTTYPES_H 1 >>>>> | #define HAVE_STDINT_H 1 >>>>> | #define HAVE_UNISTD_H 1 >>>>> | #define HAVE_DLFCN_H 1 >>>>> | #define HAVE_SGI_STL 1 >>>>> | #define HAVE_STRLCAT 1 >>>>> | #define HAVE_STRLCAT_PROTO 1 >>>>> | #define HAVE_STRLCPY 1 >>>>> | #define HAVE_STRLCPY_PROTO 1 >>>>> | #define HAVE_CRYPT 1 >>>>> | #define kde_socklen_t socklen_t >>>>> | #define ksize_t socklen_t >>>>> | #define HAVE_SYS_TYPES_H 1 >>>>> | #define HAVE_STDINT_H 1 >>>>> | #define HAVE_RES_INIT 1 >>>>> | #define HAVE_RES_INIT_PROTO 1 >>>>> | #define SIZEOF_INT 4 >>>>> | #define SIZEOF_SHORT 2 >>>>> | #define SIZEOF_LONG 8 >>>>> | #define SIZEOF_CHAR_P 8 >>>>> | #define SIZEOF_SIZE_T 8 >>>>> | #define SIZEOF_UNSIGNED_LONG 8 >>>>> | #define HAVE_VSNPRINTF 1 >>>>> | #define HAVE_SNPRINTF 1 >>>>> | #define HAVE_LIBZ 1 >>>>> | #define HAVE_LIBPNG 1 >>>>> | #define HAVE_LIBJPEG 1 >>>>> | #define HAVE_LIBPTHREAD 1 >>>>> | #define HAVE_DIRENT_H 1 >>>>> | #define STDC_HEADERS 1 >>>>> | #define HAVE_FCNTL_H 1 >>>>> | #define HAVE_SYS_TIME_H 1 >>>>> | #define HAVE_UNISTD_H 1 >>>>> | #define HAVE_SYS_FILIO_H 1 >>>>> | #define HAVE_SYS_AUDIOIO_H 1 >>>>> | #define HAVE_SYS_SEM_H 1 >>>>> | #define HAVE_STRING_H 1 >>>>> | #define HAVE_GETOPT_H 1 >>>>> | #define HAVE_MACHINE_ENDIAN_H 1 >>>>> | #define HAVE_USLEEP 1 >>>>> | #define HAVE_SNPRINTF 1 >>>>> | #define TIME_WITH_SYS_TIME 1 >>>>> | #define RETSIGTYPE void >>>>> | #define HAVE_OGG_VORBIS 1 >>>>> | #define HAVE_VORBIS 2 >>>>> | #define OGG_VORBIS 1 >>>>> | #define HAVE_SOUNDCARD_H 1 >>>>> | #define CDDA_PARANOIA 1 >>>>> | #define HAVE_TAGLIB 1 >>>>> | #define HAVE_AKODE 1 >>>>> | #define HAVE_ARTS 1 >>>>> | #define HAVE_LIBPTHREAD 1 >>>>> | #define HAVE_LIBAUDIOFILE 1 >>>>> | #define HAVE_MUSICBRAINZ 0 >>>>> | #define HAVE_GSTREAMER 1 >>>>> | #define GSTREAMER_VERSION 10 >>>>> | #define HAVE_LIBTHEORA 1 >>>>> | #define HAVE_LIBFLAC 1 >>>>> | #define HAVE_LIBOGGFLAC 1 >>>>> | #define USE_ARTS 1 >>>>> | #define HAVE_PTHREAD_H 1 >>>>> | #define HAVE_SOUNDCARD_H 1 >>>>> | #define ATTRIBUTE_ALIGNED_MAX 64 >>>>> | #define X11_SHARED_MEM 1 >>>>> | #define X11_DGA2 1 >>>>> | #define X11_XV 1 >>>>> | #define X11_XVIDMODE 1 >>>>> | #define OS_BSD 1 >>>>> | #define HAVE_DIRENT_H 1 >>>>> | #define STDC_HEADERS 1 >>>>> | #define TIME_WITH_SYS_TIME 1 >>>>> | #define HAVE_FCNTL_H 1 >>>>> | #define HAVE_SYS_TIME_H 1 >>>>> | #define HAVE_UNISTD_H 1 >>>>> | #define HAVE_STDLIB_H 1 >>>>> | #define HAVE_PATHS_H 1 >>>>> | #define HAVE_USLEEP 1 >>>>> | /* end confdefs.h. */ >>>>> | >>>>> | /* Override any GCC internal prototype to avoid an error. >>>>> | Use char because int might match the return type of a GCC >>>>> | builtin and then its argument prototype would still apply. */ >>>>> | #ifdef __cplusplus >>>>> | extern "C" >>>>> | #endif >>>>> | char _x_ao_new_port (); >>>>> | int >>>>> | main () >>>>> | { >>>>> | return _x_ao_new_port (); >>>>> | ; >>>>> | return 0; >>>>> | } >>>>> configure:42349: result: no >>>>> configure:42365: checking for ao_new_port >>>>> configure:42421: cc -o conftest -DNDEBUG -O2 -O2 -pipe >>>>> -DQT_THREAD_SUPPORT conftest.c >&5 >>>>> /tmp//ccONgSjb.o: In function `main': >>>>> conftest.c:(.text+0x7): undefined reference to `ao_new_port' >>>>> collect2: ld returned 1 exit status >>>>> configure:42427: $? = 1 >>>>> configure: failed program was: >>>>> | /* confdefs.h. */ >>>>> | #define PACKAGE_NAME "" >>>>> | #define PACKAGE_TARNAME "" >>>>> | #define PACKAGE_VERSION "" >>>>> | #define PACKAGE_STRING "" >>>>> | #define PACKAGE_BUGREPORT "" >>>>> | #define PACKAGE "kdemultimedia" >>>>> | #define VERSION "3.5.10" >>>>> | #define KDELIBSUFF "" >>>>> | #define STDC_HEADERS 1 >>>>> | #define HAVE_SYS_TYPES_H 1 >>>>> | #define HAVE_SYS_STAT_H 1 >>>>> | #define HAVE_STDLIB_H 1 >>>>> | #define HAVE_STRING_H 1 >>>>> | #define HAVE_MEMORY_H 1 >>>>> | #define HAVE_STRINGS_H 1 >>>>> | #define HAVE_INTTYPES_H 1 >>>>> | #define HAVE_STDINT_H 1 >>>>> | #define HAVE_UNISTD_H 1 >>>>> | #define HAVE_DLFCN_H 1 >>>>> | #define HAVE_SGI_STL 1 >>>>> | #define HAVE_STRLCAT 1 >>>>> | #define HAVE_STRLCAT_PROTO 1 >>>>> | #define HAVE_STRLCPY 1 >>>>> | #define HAVE_STRLCPY_PROTO 1 >>>>> | #define HAVE_CRYPT 1 >>>>> | #define kde_socklen_t socklen_t >>>>> | #define ksize_t socklen_t >>>>> | #define HAVE_SYS_TYPES_H 1 >>>>> | #define HAVE_STDINT_H 1 >>>>> | #define HAVE_RES_INIT 1 >>>>> | #define HAVE_RES_INIT_PROTO 1 >>>>> | #define SIZEOF_INT 4 >>>>> | #define SIZEOF_SHORT 2 >>>>> | #define SIZEOF_LONG 8 >>>>> | #define SIZEOF_CHAR_P 8 >>>>> | #define SIZEOF_SIZE_T 8 >>>>> | #define SIZEOF_UNSIGNED_LONG 8 >>>>> | #define HAVE_VSNPRINTF 1 >>>>> | #define HAVE_SNPRINTF 1 >>>>> | #define HAVE_LIBZ 1 >>>>> | #define HAVE_LIBPNG 1 >>>>> | #define HAVE_LIBJPEG 1 >>>>> | #define HAVE_LIBPTHREAD 1 >>>>> | #define HAVE_DIRENT_H 1 >>>>> | #define STDC_HEADERS 1 >>>>> | #define HAVE_FCNTL_H 1 >>>>> | #define HAVE_SYS_TIME_H 1 >>>>> | #define HAVE_UNISTD_H 1 >>>>> | #define HAVE_SYS_FILIO_H 1 >>>>> | #define HAVE_SYS_AUDIOIO_H 1 >>>>> | #define HAVE_SYS_SEM_H 1 >>>>> | #define HAVE_STRING_H 1 >>>>> | #define HAVE_GETOPT_H 1 >>>>> | #define HAVE_MACHINE_ENDIAN_H 1 >>>>> | #define HAVE_USLEEP 1 >>>>> | #define HAVE_SNPRINTF 1 >>>>> | #define TIME_WITH_SYS_TIME 1 >>>>> | #define RETSIGTYPE void >>>>> | #define HAVE_OGG_VORBIS 1 >>>>> | #define HAVE_VORBIS 2 >>>>> | #define OGG_VORBIS 1 >>>>> | #define HAVE_SOUNDCARD_H 1 >>>>> | #define CDDA_PARANOIA 1 >>>>> | #define HAVE_TAGLIB 1 >>>>> | #define HAVE_AKODE 1 >>>>> | #define HAVE_ARTS 1 >>>>> | #define HAVE_LIBPTHREAD 1 >>>>> | #define HAVE_LIBAUDIOFILE 1 >>>>> | #define HAVE_MUSICBRAINZ 0 >>>>> | #define HAVE_GSTREAMER 1 >>>>> | #define GSTREAMER_VERSION 10 >>>>> | #define HAVE_LIBTHEORA 1 >>>>> | #define HAVE_LIBFLAC 1 >>>>> | #define HAVE_LIBOGGFLAC 1/usr/ports/x11/kde/multimedia3 >>>>> | #define USE_ARTS 1 >>>>> | #define HAVE_PTHREAD_H 1 >>>>> | #define HAVE_SOUNDCARD_H 1 >>>>> | #define ATTRIBUTE_ALIGNED_MAX 64 >>>>> | #define X11_SHARED_MEM 1 >>>>> | #define X11_DGA2 1 >>>>> | #define X11_XV 1 >>>>> | #define X11_XVIDMODE 1 >>>>> | #define OS_BSD 1 >>>>> | #define HAVE_DIRENT_H 1 >>>>> | #define STDC_HEADERS 1 >>>>> | #define TIME_WITH_SYS_TIME 1 >>>>> | #define HAVE_FCNTL_H 1 >>>>> | #define HAVE_SYS_TIME_H 1 >>>>> | #define HAVE_UNISTD_H 1 >>>>> | #define HAVE_STDLIB_H 1 >>>>> | #define HAVE_PATHS_H 1 >>>>> | #define HAVE_USLEEP 1/usr/ports/x11/kde/multimedia3 >>>>> | #define _x_ao_new_port ao_new_port >>>>> | /* end confdefs.h. */ >>>>> | /* Define ao_new_port to an innocuous variant, in case <limits.h> >>>>> declares ao_new_port. >>>>> | For example, HP-UX 11i <limits.h> declares gettimeofday. */ >>>>> | #define ao_new_port innocuous_ao_new_port >>>>> | >>>>> | /* System header to define __stub macros and hopefully few >>>>> prototypes, >>>>> | which can conflict with char ao_new_port (); below. >>>>> | Prefer <limits.h> to <assert.h> if __STDC__ is defined, since >>>>> | <limits.h> exists even on freestanding compilers. */ >>>>> | >>>>> | #ifdef __STDC__ >>>>> | # include <limits.h> >>>>> | #else >>>>> | # include <assert.h> >>>>> | #endif >>>>> | >>>>> | #undef ao_new_port >>>>> | >>>>> | /* Override any GCC internal prototype to avoid an error. >>>>> | Use char because int might match the return type of a GCC >>>>> | builtin and then its argument prototype would still apply. */ >>>>> | #ifdef __cplusplus >>>>> | extern "C" >>>>> | #endif >>>>> | char ao_new_port (); >>>>> | /* The GNU C library defines this for functions which it implements >>>>> | to always fail with ENOSYS. Some functions are actually named >>>>> | something starting with __ and the normal name is an alias. */ >>>>> | #if defined __stub_ao_new_port || defined __stub___ao_new_port >>>>> | choke me >>>>> | #endif >>>>> | >>>>> | int >>>>> | main () >>>>> | { >>>>> | return ao_new_port (); >>>>> | ; >>>>> | return 0; >>>>> | } >>>>> configure:42444: result: no >>>>> ----------------------------------------------------------- >>>>> >>>>> So I have tried a more radical hack : adding a real ao_new_port in >>>>> libarts_xine. >>>>> This means, at least, the file config.log must not have the error. >>>>> >>>>> Firstly (step 1) you must build libxine (it contains _x_ao_new_port) >>>>> and >>>>> after you launch "make configure" for libarts_xine (step 2) : >>>>> >>>>> Step 1] building the new libxine : >>>>> ================================== >>>>> 1.1) I have done a "make clean" and "make configure" in >>>>> /usr/ports/multimedia/xine. >>>>> >>>>> 1.2) I have added a new declaration for ao_new_port in >>>>> >>>>> /usr/ports/pobj/xine-lib-1.2.6/xine-lib-1.2.6/src/xine-engine/audio_out.h >>>>> >>>>> and >>>>> /usr/local/include/xine/audio_out.h >>>>> by duplicating _x_ao_new_port >>>>> >>>>> 1.3) I have added a new definition for ao_new_port in >>>>> >>>>> /usr/ports/pobj/xine-lib-1.2.6/xine-lib-1.2.6/src/xine-engine/audio_out.c >>>>> >>>>> by duplicating the code for _x_ao_new_port >>>>> >>>>> 1.4) I have replaced the call of _x_ao_new_port by ao_new_port in >>>>> >>>>> /usr/ports/pobj/xine-lib-1.2.6/xine-lib-1.2.6/src/xine-engine/load_plugins.c >>>>> >>>>> >>>>> >>>>> 1.5) I have done a "make build", i have checked if the new files >>>>> libxine.so.32.0 and >>>>> libxine.a contain the new ao_new_port (ao_new_port.av_sync_methods and >>>>> ao_new_port.resample_modes) >>>>> The new lib seems good so i have copied the files to /usr/local/lib. >>>>> >>>>> Step 2] launching configure for libarts_xine : >>>>> ============================================== >>>>> 2.1) Finaly I have done a "make clean" in >>>>> /usr/ports/x11/kde/multimedia3 >>>>> (where you create libarts_xine) >>>>> followed by a "make configure", but in config.log I have always the >>>>> same >>>>> error! >>>>> So it's useless to go further. >>>>> >>>>> It should work! >>>>> What is missing? >>>>> Thanks for any help. >>>>> >>>>> >>>> >>>> xine-lib in ports is v1.2.6, kdemultimedia needs changes to use the >>>> later version of xine-lib. That means working out how to replace >>>> _x_ao_new_port. >>>> You don't change xine-lib unless there is an actual error, and the error >>>> is kdemultimedia from KDE 3 is no longer maintained upstream. >>>> >>>> To disable xine add --with-xine=No to CONFIGURE_ARGS in the Makefile, >>>> should also change LIB_DEPENDS and WANTLIB, and might need PLIST's >>>> updating, plus a REVISION bump. >>> >>> I have already tried this. >>> It doesn't work (it was not a surprise) : >>> >>> loading extension from '/usr/local/lib/libarts_xine.la' failed: file not >>> found >>> MCOP ObjectManager: Could not load extension libarts_xine.la. >>> MCOP ObjectManager: can't find implementation for xineAudioPlayObject. >>> Segmentation fault (core dumped) >> >> >> There shouldn't be any references to xine if disabled. >> >>>> >>>> kdemultimedia 3.5.10 dates from 2008 well before xine-lib 1.2.6 was >>>> available see the cvs log >>>> >>>> revision 1.35 >>>> date: 2008/08/28 08:52:00; author: espie; state: Exp; lines: +5 -5; >>>> 3.5.10 >>>> >>> Yes, i know, the KDE team have abandoned KDE3 for KDE4. >>> But with OpenBSD there are some updates after this date and this >>> suggest that it works like before. >>> But no, there is a regression for mp3 and ogg. >>> Effectively an update is necessary in kdemultimedia in >>> xine_artsplugin (libarts_xine). >>>> >>>> >>>> >>>> This looks like a KDE 3 fork that fixes xine 1.2 issues >>>> >>>> http://www.trinitydesktop.org/ >>>> >>>> >>>> Source files... >>>> >>>> >>>> http://copernicus.mirrorservice.org/sites/trinitydesktop.org/trinity/releases/3.5.13.2/kdemultimedia-trinity-3.5.13.2.tar.xz >>>> >>>> >>>> >>>> git server here... >>>> >>>> https://git.trinitydesktop.org/cgit >>>> >>>> Some extracts.... >>>> >>>> diff --git a/xine_artsplugin/audio_fifo_out.c >>>> b/xine_artsplugin/audio_fifo_out.c >>>> index f5256e1..9255ba2 100644 >>>> --- a/xine_artsplugin/audio_fifo_out.c >>>> +++ b/xine_artsplugin/audio_fifo_out.c >>>> @@ -1,6 +1,7 @@ >>>> /* >>>> This file is part of KDE/aRts (Noatun) - xine integration >>>> Copyright (C) 2002-2003 Ewald Snel <ew...@rambo.its.tudelft.nl> >>>> + Copyright (C) 2014 Timothy Pearson <kb9...@pearsoncomputing.net> >>>> >>>> This library is free software; you can redistribute it and/or >>>> modify it under the terms of the GNU Lesser General Public >>>> @@ -21,29 +22,40 @@ >>>> #include <sys/time.h> >>>> #include <xine/audio_out.h> >>>> >>>> +#if (XINE_MAJOR_VERSION >= 1) && (XINE_MINOR_VERSION >= 2) >>>> +#include <xine/xine_internal.h> >>>> +#include <xine/xine_plugin.h> >>>> +#endif >>>> + >>>> >>>> >>>> >>>> Properly register aRts plugin with Xine >= 1.2.x >>>> This resolves Bug 1905 >>>> Diffstat (limited to 'xine_artsplugin/configure.in.in') >>>> -rw-r--r-- xine_artsplugin/configure.in.in 6 >>>> >>>> 1 files changed, 3 insertions, 3 deletions >>>> diff --git a/xine_artsplugin/configure.in.in >>>> b/xine_artsplugin/configure.in.in >>>> index 61168fb..7797d22 100644 >>>> --- a/xine_artsplugin/configure.in.in >>>> +++ b/xine_artsplugin/configure.in.in >>>> @@ -232,11 +232,11 @@ int shmCompletionType = XShmGetEventBase( >>>> display ); >>>> AC_LANG_RESTORE() >>>> >>>> dnl Check for new internal xine symbol names >>>> -KDE_CHECK_LIB(xine, _x_ao_new_port, :, >>>> +KDE_CHECK_LIB(xine, ao_new_port, :, >>>> [ >>>> - AC_DEFINE(_x_ao_new_port, ao_new_port, [Compatibility with older >>>> version of xine]) >>>> + AC_DEFINE(ao_new_port, _x_ao_new_port, [Compatibility with newer >>>> versions of xine]) >>>> ]) >>>> -AC_CHECK_FUNC([ao_new_port]) >>>> +AC_CHECK_FUNC([_x_ao_new_port]) >>>> >>>> AC_ARG_WITH([xine], >>>> [AC_HELP_STRING([--with-xine], >>>> >>> Yes it was my favorite during my research on the web. >>> I have already test this and it doesn't work (i don't know if it is >>> because they use linux). >>> I have the same error (...undefined symbol 'ao_new_port'...) >>> But this remind me that i must contact this project! >>> Did you try this previous patch? >>> >>> >> >> The above patch is only part of the diff for a single commit in git >> specifically related to xine >= 1.2.x, that doesn't mean other commits >> aren't needed. It looked related to the same problem your having. >> > Yes it's related to the problem. > The complete patch i was referring in my previous post is available at > > https://git.trinitydesktop.org/cgit/tdemultimedia/commit/?id=68cff160cbf2fb0b4865f2b74bb49b8fa1a2a657 > > Diffstat > -rw-r--r-- xine_artsplugin/Makefile.am 2 > -rw-r--r-- xine_artsplugin/audio_fifo_out.c 155 > -rw-r--r-- xine_artsplugin/configure.in.in 6 > 3 files changed, 139 insertions, 24 deletions > > In your previous post you give some extracts of this same patch. > If you have not tried it, i hope you will do it. > Anyway thanks for your time!
Unfortunately, I didn't find the correct way to fix the issue, so I just disabled the xine aRts plugin. It looks like we didn't loose anything - Kaffeine and Noatun continue to play multimedia files without problem. -- WBR, Vadim Zhukov