Author Login
Post Reply
Quoting Adam Williamson <awilliamson@(protected)>:
> Okay, I really don't understand this underlinking stuff. And yes, I read
> the Wiki. But I still don't get it, or at least, how to fix problems.
>
> It's breaking Brasero's build:
>
> Making all in cdrdao
> make[4]: Entering directory
> `/home/adamw/rpm/BUILD/brasero-0.7.90/src/plugins/cdrdao'
> /bin/sh ../../../libtool --tag=CC --mode=link gcc -g -O2 -g -pipe
> -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
> --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586
> -mtune=generic -fasynchronous-unwind-tables -module -avoid-version
> -Wl,--as-needed -Wl,--no-undefined -o libbrasero-cdrdao.la -rpath
> /usr/lib/brasero/plugins burn-cdrdao.lo -lgconf-2 -lglib-2.0
> -Wl,--as-needed -Wl,--no-undefined
> gcc -shared -Wl,--as-needed .libs/burn-cdrdao.o
> /usr/lib/libgconf-2.so /usr/lib/libglib-2.0.so -march=i586
> -mtune=generic -Wl,--as-needed -Wl,--as-needed -Wl,--no-undefined
> -Wl,-soname -Wl,libbrasero-cdrdao.so -o .libs/libbrasero-cdrdao.so
> .libs/burn-cdrdao.o: In function `brasero_cdrdao_finalize':
> /home/adamw/rpm/BUILD/brasero-0.7.90/src/plugins/cdrdao/burn-cdrdao.c:528:
> undefined reference to `g_type_check_class_cast'
> .libs/burn-cdrdao.o: In function `brasero_cdrdao_class_init':
> /home/adamw/rpm/BUILD/brasero-0.7.90/src/plugins/cdrdao/burn-cdrdao.c:510:
> undefined reference to `g_type_check_class_cast'
> /home/adamw/rpm/BUILD/brasero-0.7.90/src/plugins/cdrdao/burn-cdrdao.c:511:
> undefined reference to `brasero_process_get_type'
> /home/adamw/rpm/BUILD/brasero-0.7.90/src/plugins/cdrdao/burn-cdrdao.c:511:
> undefined reference to `g_type_check_class_cast'
> /home/adamw/rpm/BUILD/brasero-0.7.90/src/plugins/cdrdao/burn-cdrdao.c:513:
> undefined reference to `g_type_class_peek_parent'
> /home/adamw/rpm/BUILD/brasero-0.7.90/src/plugins/cdrdao/burn-cdrdao.c:518:
> undefined reference to `brasero_job_finished_session'
>
> (etc etc etc, there's hundreds of them)
>
> how do I fix this?
> --
> adamw
Try something like:
$ for f in /usr/lib/*.so.*; do objdump -t -T $f | grep $symbol | grep
-v '*UND*'
&& echo $f; done
where $symbol is the unresolved symbol. This will tell you in what
library the symbol exists, if any.
I belive the brasero_job_finished_session should be in some library
brasero itself builds.
After knowing where it is defined, it should be added to the
Makefile's *_LIBADD of the binary or library as a patch (preferably
in Makefile.am or Makefile.in and not after running %configure).
It may also be required to actually fix the one of the libraries and not
the final library/binary (i.e. brasero binaries), in that case it may
also be required patching pkgconfig .pc files, if it uses them.
I am sure others will have a better response, and ways to handle this :-)
Paulo