Date: Thu, 1 Apr 2004 18:38:22 -0700 From: "Jie Gao" <gaoj@cpsc.ucalgary.ca> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/65055: kdemultimedia configure cannot detect libxine api correctly Message-ID: <200404020138.i321cMqW011623@imgw1.cpsc.ucalgary.ca> Resent-Message-ID: <200404020150.i321oEwJ016209@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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@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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200404020138.i321cMqW011623>