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