Re: Undefined symbol __eprintf in libaudiofile.so (Gnome ticket reportlogs - #6056)



This is interesting. I'm starting to wonder if the wacked-out version of GCC from
sunfreeware.com is schwartz'd.  I export that environmental, configure breaks ;-)

../xmms-1.2.3$ export LIBS="-R/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2
-lcc1plus"
../xmms-1.2.3$ ./configure
creating cache ./config.cache
checking host system type... sparc-sun-solaris2.7
checking for a BSD compatible install... ./install-sh -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
[...]
checking build system type... sparc-sun-solaris2.7
checking for ranlib... ranlib
checking for gcc... /usr/local/bin/gcc
checking whether the C compiler (/usr/local/bin/gcc -msupersparc -O9 -fPIC )
works... no
configure: error: installation or configuration problem: C compiler cannot create
executables.

So I:

$ make distclean
$ unset CC CFLAGS LIBS
$ ./configure; make

This time I watch closely as it compiles Output/esd.  I see a large error scroll
past, so when it completes, I go back to xmms/Output/esd

$ make clean
$ make

And here is this is error, which is rather similar to an error I was receiving from
a graphics library related to GNOME

gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/local/lib/glib/include
-I/usr/local/include -D_REENTRANT -I/usr/openwin/include -I/usr/local/include
-I../../intl -g -O2 -Wall -fomit-frame-pointer -funroll-all-loops
-finline-functions -ffast-math -c init.c  -fPIC -DPIC -o init.lo
/bin/sh ../../libtool --mode=link gcc  -g -O2 -Wall -fomit-frame-pointer
-funroll-all-loops -finline-functions -ffast-math  -o libesdout.la -rpath
/usr/local/lib/xmms/Output -export-dynamic -avoid-version esd.lo mixer.lo about.lo
configure.lo audio.lo init.lo -L/usr/local/lib -L/usr/openwin/lib
-R/usr/openwin/lib -lgtk -lgdk -lgmodule -lgthread -lglib -lthread -ldl -lXext
-lX11 -lsocket -lnsl -lm -L/usr/local/lib -lesd -laudiofile -lm -lresolv -lrt -lnsl
-lsocket -L/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2 -lgcc -lposix4
mkdir .libs

*** Warning: This library needs some functionality provided by -lgcc.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.
(cd . && ln -s esd.lo esd.o)
(cd . && ln -s mixer.lo mixer.o)
(cd . && ln -s about.lo about.o)
(cd . && ln -s configure.lo configure.o)
(cd . && ln -s audio.lo audio.o)
(cd . && ln -s init.lo init.o)
/usr/ccs/bin/ld -G -h libesdout.so -o .libs/libesdout.so  esd.lo mixer.lo about.lo
configure.lo audio.lo init.lo  -L/usr/local/lib -L/usr/openwin/lib -lgtk -lgdk
-lgmodule -lgthread -lglib -lthread -ldl -lXext -lX11 -lsocket -lnsl -lm -lesd
-laudiofile -lm -lresolv -lrt -lnsl -lsocket
-L/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2 -lposix4 -lc
creating libesdout.la
(cd .libs && rm -f libesdout.la && ln -s ../libesdout.la libesdout.la)

In the makefile, It has:

ESD_LIBS = -L/usr/local/lib -lesd -laudiofile -lm -lresolv -lrt -lnsl -lsocket
-L/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2 -lgcc
LIBS = -lposix4

if I change

ESD_LIBSS to .... -lcc1plus
&
libesdout_la_LIBADD = ... -lcc1plus

I get the same thing....


--Brian

"Mark R. Bowyer" wrote:

> >From: Brian Seklecki <lavalamp burghcom com>
>
> >Simon says:
> >
> >lavalamp seekup:/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2$ nm -A * |
> >grep -i __eprintf
> >cc1plus: [6095] |   2402264|      92|FUNC |GLOB |0    |9      |__eprintf
> :
> > ...or use `-LLIBDIR' flag during linking and do at least one of the following:
> :
> >   - use the `-RLIBDIR' linker flag
> :
> >export LIBS="-L/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2 -lgcc"
> >
> >Now what?
>  :
> >> and thus the breakage.  You can fix this by using a -R in the link stage of
> >> the plugin, IIRC.  Tell the .so where it should be looking to link in the
> >> compiler's library and find this function.
>
> -L just tells the linker where to find it during the link/build stage.  You need
> to set -R too to tell the executable where to find it during the link/run stage:
>
>   export LIBS="-R/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2 -lcc1plus"
>
> Mark.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]