Bug 65055 - kdemultimedia configure cannot detect libxine api correctly
Summary: kdemultimedia configure cannot detect libxine api correctly
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-kde (group)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-04-02 02:50 UTC by Jie Gao
Modified: 2004-04-02 10:22 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jie Gao 2004-04-02 02:50:14 UTC
	
	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

Fix: 

I'm not familiar with autotools but I know we need to add ${PTHREAD_LIBS}
	somewhere in configure or related files.
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
Comment 1 Pav Lucistnik freebsd_committer freebsd_triage 2004-04-02 02:51:19 UTC
Responsible Changed
From-To: freebsd-ports-bugs->kde

Over to kde team
Comment 2 Michael Nottebrock freebsd_committer freebsd_triage 2004-04-02 10:22:11 UTC
State Changed
From-To: open->closed

Fixed, thanks for reporting!