ports/65055: kdemultimedia configure cannot detect libxine api correctly

Jie Gao gaoj at cpsc.ucalgary.ca
Fri Apr 2 01:50:24 UTC 2004


>Number:         65055
>Category:       ports
>Synopsis:       kdemultimedia configure cannot detect libxine api correctly
>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:   Thu Apr 01 17:50:14 PST 2004
>Closed-Date:
>Last-Modified:
>Originator:     Jie Gao
>Release:        FreeBSD 5.2.1-RELEASE-p3 i386
>Organization:
>Environment:
System: FreeBSD aibsd 5.2.1-RELEASE-p3 FreeBSD 5.2.1-RELEASE-p3 #2: Mon Mar 29 09:30:20 MST 2004 gaoj at aibsd:/usr/src/sys/i386/compile/AIBSD i386


	
>Description:
	
	While building the port kdemultimedia with the option WITH_XINE, the
	configure script cannot detect _x_ao_new_port api correctly in libxine.
	The current version of libxine has _x_ao_new_port present. But configure
	scrpit failed to detect it because it tries to compile the test program 
	without -lc_r. So the test got a ``no'' result because of unresolved 
	``pthread ...'' stuff. With this result, libarts_xine.so is built with
	ao_new_port instead of the new api _x_ao_new_port, and artsd will end up
	with ``Undefined symbol "ao_new_port"'' error and crash.
	
	Below is what I got in config.log:
	
configure:37027: checking for _x_ao_new_port in -lxine
configure:37058: cc -o conftest -DNDEBUG -O2  -O -pipe -march=pentium4  -DQT_THREAD_SUPPORT   -I/usr/local/include -I/usr/local/include  -I/usr/X11R6/include -D_GETOPT_H -D_THREAD_SAFE   conftest.c -lxine  -Wl,-export-dynamic -L/usr/local/lib -L/usr/X11R6/lib -ljpeg  -L/usr/X11R6/lib >&5
/usr/X11R6/lib/libxine.so: undefined reference to `pthread_attr_destroy'
/usr/X11R6/lib/libxine.so: undefined reference to `pthread_create'
/usr/X11R6/lib/libxine.so: undefined reference to `pthread_attr_init'
/usr/X11R6/lib/libxine.so: undefined reference to `pthread_cancel'
/usr/X11R6/lib/libxine.so: undefined reference to `pthread_attr_setscope'
/usr/X11R6/lib/libxine.so: undefined reference to `pthread_attr_setschedparam'
/usr/X11R6/lib/libxine.so: undefined reference to `pthread_join'
/usr/X11R6/lib/libxine.so: undefined reference to `pthread_cond_timedwait'
/usr/X11R6/lib/libxine.so: undefined reference to `pthread_attr_getschedparam'
configure:37061: $? = 1
configure: failed program was:
| /* #line 37035 "configure" */
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "kdemultimedia"
| #define VERSION "3.2.1"
| #ifdef __cplusplus
| #include <stdlib.h>
| #endif
| #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 ksize_t socklen_t
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_RES_INIT 1
| #define SIZEOF_INT 4
| #define SIZEOF_SHORT 2
| #define SIZEOF_LONG 4
| #define SIZEOF_CHAR_P 4
| #define SIZEOF_SIZE_T 4
| #define SIZEOF_UNSIGNED_LONG 4
| #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_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 HAVE_X86_SSE 1
| #define RETSIGTYPE void
| #define HAVE_TAGLIB 1
| #define HAVE_CDPARANOIA 1
| #define PATH_CDPARANOIA "/usr/local/bin/cdparanoia"
| #define HAVE_LIBPTHREAD 1
| #define HAVE_LIBAUDIOFILE 1
| #define HAVE_GSTREAMER 0
| #define HAVE_MUSICBRAINZ 1
| #define HAVE_TRM 1
| #define HAVE_LIBFLAC 1
| #define HAVE_CDPARANOIA 1
| #define HAVE_VORBIS 2
| #define USE_ARTS 1
| #define HAVE_PTHREAD_H 1
| #define HAVE_SYS_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 CDDA_PARANOIA 1
| #define OGG_VORBIS 1
| #define INTEL 1
| #define OS_BSD 1
| #define HAVE_LIBTIFF 1
| #define HAVE_JASPER 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
| #define HAVE_XSHMGETEVENTBASE 1
| /* end confdefs.h.  */
| 
| /* Override any gcc2 internal prototype to avoid an error.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| /* We use char because int might match the return type of a gcc2
|    builtin and then its argument prototype would still apply.  */
| char _x_ao_new_port ();
| int
| main ()
| {
| _x_ao_new_port ();
|   ;
|   return 0;
| }
configure:37079: result: no

>How-To-Repeat:
	
	To see the config.log:
	
	cd /usr/ports/multimedia/kdemultimedia && make configure -DWITH_XINE
	
	To have a wrong libarts_xine.so, just make a kdemultimedia port with XINE
	
>Fix:

	
	I'm not familiar with autotools but I know we need to add ${PTHREAD_LIBS}
	somewhere in configure or related files.


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



More information about the freebsd-ports-bugs mailing list