Hi Rocky,

On Mon, Jun 13, 2005 at 04:55:13AM -0400, R. Bernstein wrote:
> Gabor Z. Papp reports a problem in building vcdimager (but I think
> there is a corresponding problem in libcdio); the options
> --enable-shared and --disable-static were used together and it seems
> to cause a problem when --with-versioned-libs (the default) is also in
> effect.
> 
> I think is happening that objects get created in lib/.libs (of
> vcdimager) but not in lib/ as happens for the static
> compilations. This then causes the code for creating libvcdinfo to
> fail since it seems to be looking in lib/ for the objects. 
> 
> Here is part of the output Papp's from "make":
> 
(...)
> 
> One way to address this might be to force --disable-versioned-libs
> when --disable-static is given. Another possibility is to look in
> .libs here. Any suggestions or comments? 

OK, I guess my hack to build the correct list of object files to give to
nm was somewhat unreliable... :-(
I just tried to write something cleaner, and it looks like I succeded.
See the attached patch, for libcdio-0.74/lib/driver/Makefile.am. If it
is confirmed to work fine, it can trivially be adapted for other
Makefile.am files...


Cheers,

Nicolas
--- libcdio-0.74/lib/driver/Makefile.am.orig    2005-03-29 03:40:19.000000000 
+0200
+++ libcdio-0.74/lib/driver/Makefile.am 2005-06-15 02:01:06.000000000 +0200
@@ -167,8 +167,9 @@
 
 libcdio.la.ver: $(libcdio_la_OBJECTS) $(srcdir)/libcdio.sym
        echo 'CDIO_$(libcdio_la_MAJOR) { ' > $@
-       nm $(patsubst %.lo,%.o,$(libcdio_la_OBJECTS)) | sed -n -e 's/^.*[       
][ABCDGIRSTW][ABCDGIRSTW]*[     ][      ]*\([_A-Za-z][_A-Za-z0-9]*\)$$/\1/p' | 
sort -u | { first=true; while read symbol; do if grep -q "^$${symbol}\$$" 
$(srcdir)/libcdio.sym; then if test $$first = true; then echo "  global:"; 
first=false; fi; echo "    $${symbol};"; fi; done; } >> $@
-       nm $(patsubst %.lo,%.o,$(libcdio_la_OBJECTS)) | sed -n -e 's/^.*[       
][ABCDGIRSTW][ABCDGIRSTW]*[     ][      ]*\([_A-Za-z][_A-Za-z0-9]*\)$$/\1/p' | 
sort -u | { first=true; while read symbol; do if grep -q "^$${symbol}\$$" 
$(srcdir)/libcdio.sym; then :; else if test $$first = true; then echo "  
local:"; first=false; fi; echo "    $${symbol};"; fi; done; } >> $@
+       objs=`for obj in $(libcdio_la_OBJECTS); do sed -ne 
"s/^pic_object='\(.*\)'$$/\1/p" $$obj; done`; \
+       nm $${objs} | sed -n -e 's/^.*[         ][ABCDGIRSTW][ABCDGIRSTW]*[     
][      ]*\([_A-Za-z][_A-Za-z0-9]*\)$$/\1/p' | sort -u | { first=true; while 
read symbol; do if grep -q "^$${symbol}\$$" $(srcdir)/libcdio.sym; then if test 
$$first = true; then echo "  global:"; first=false; fi; echo "    $${symbol};"; 
fi; done; } >> $@; \
+       nm $${objs} | sed -n -e 's/^.*[         ][ABCDGIRSTW][ABCDGIRSTW]*[     
][      ]*\([_A-Za-z][_A-Za-z0-9]*\)$$/\1/p' | sort -u | { first=true; while 
read symbol; do if grep -q "^$${symbol}\$$" $(srcdir)/libcdio.sym; then :; else 
if test $$first = true; then echo "  local:"; first=false; fi; echo "    
$${symbol};"; fi; done; } >> $@
        echo '};' >> $@
 else 
 libcdio_la_LDFLAGS = $(libcdio_la_ldflags)
_______________________________________________
Libcdio-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/libcdio-devel

Reply via email to