ports/115616: [patch] cdrdao linking errors

František Dvořák valtri at civ.zcu.cz
Sat Aug 18 19:30:01 UTC 2007


>Number:         115616
>Category:       ports
>Synopsis:       [patch] cdrdao linking errors
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Aug 18 19:30:00 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     František Dvořák
>Release:        RELENG_6_2
>Organization:
University of West Bohemia
>Environment:
FreeBSD funik 6.2-RELEASE-p4 FreeBSD 6.2-RELEASE-p4 #0: Tue May  1 20:20:10 CEST 2007     valtri at funik:/var/obj/usr/src/sys/GENERIC  i386
>Description:
Link to local static libraries fails with missing symbols:

c++ -DDRIVER_TABLE_FILE=\"/usr/local/share/cdrdao/drivers\" -O2 -pipe -march=pentium-m -fconserve-space  -L/usr/local/lib -L/usr/local/lib -o cdrdao  main.o -L. -ldao -L../paranoia -lcdda_paranoia -L../trackdb -ltrackdb -L../scsilib/export -lscg -lschily -lcam -L/usr/local/lib -lmad -lm   -L/usr/local/lib -lvorbisfile -lvorbis -lm -logg   -pthread -L/usr/local/lib -lao   
./libdao.a(CdrDriver.o)(.text+0x787f): In function `CdrDriver::readAudioRangeParanoia(CdrDriver::ReadDiskInfo*, int, long, long, int, int, TrackInfo*)':
: undefined reference to `paranoia_set_range'
/usr/local/lib/libcdda_paranoia.so: undefined reference to `cdda_sector_gettrack'
/usr/local/lib/libcdda_paranoia.so: undefined reference to `cdda_tracks'
/usr/local/lib/libcdda_paranoia.so: undefined reference to `cdda_track_lastsector'
/usr/local/lib/libcdda_paranoia.so: undefined reference to `cdda_track_audiop'
/usr/local/lib/libcdda_paranoia.so: undefined reference to `cdda_track_firstsector'
/usr/local/lib/libcdda_paranoia.so: undefined reference to `cdda_disc_firstsector'
/usr/local/lib/libcdda_paranoia.so: undefined reference to `cdda_disc_lastsector'
gmake[2]: *** [cdrdao] Error 1
gmake[2]: Leaving directory `/tmp/ports-root/usr/ports/sysutils/cdrdao/work/cdrdao-1.2.1/dao'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/tmp/ports-root/usr/ports/sysutils/cdrdao/work/cdrdao-1.2.1'
gmake: *** [all] Error 2
*** Error code 2

Stop in /usr/ports/sysutils/cdrdao.


System libraries probably have precedence before the local libraries:

  nm /usr/local/lib/libcdda_paranoia.so| grep set_range

  nm ../paranoia/libcdda_paranoia.a | grep set_range
  00000840 T paranoia_set_range

>How-To-Repeat:
cd /usr/ports/sysutils/cdrdao
make clean
make
>Fix:
The patch with solution working for me (but I'm not sure if is the proper solution).

Patch attached with submission follows:

--- dao/Makefile.am.ori	Sat Aug 18 20:40:37 2007
+++ dao/Makefile.am	Sat Aug 18 20:41:11 2007
@@ -78,8 +78,8 @@
 
 cdrdao_LDADD =						\
 	-L. -ldao					\
-	-L$(top_builddir)/paranoia -lcdda_paranoia	\
-	-L$(top_builddir)/trackdb -ltrackdb		\
+	$(top_builddir)/paranoia/libcdda_paranoia.a	\
+	$(top_builddir)/trackdb/libtrackdb.a		\
 	@thread_libs@					\
 	@scsilib_libs@
 
--- dao/Makefile.in.orig	Sat Aug 18 20:46:24 2007
+++ dao/Makefile.in	Sat Aug 18 20:50:21 2007
@@ -315,8 +315,8 @@
 libdao_a_DEPENDENCIES = \
 	@scsilib_objs@
 
-cdrdao_LDADD = -L. -ldao -L$(top_builddir)/paranoia -lcdda_paranoia \
-	-L$(top_builddir)/trackdb -ltrackdb @thread_libs@ \
+cdrdao_LDADD = -L. -ldao $(top_builddir)/paranoia/libcdda_paranoia.a \
+	$(top_builddir)/trackdb/libtrackdb.a @thread_libs@ \
 	@scsilib_libs@ $(am__append_1) $(am__append_2) @AO_LIBS@
 cdrdao_DEPENDENCIES = \
 	$(top_builddir)/paranoia/libcdda_paranoia.a	\


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



More information about the freebsd-ports-bugs mailing list