bug-libtool
[Top][All Lists]
Advanced

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

Re: Handling object name conflicts


From: Chen-Mou Cheng
Subject: Re: Handling object name conflicts
Date: Sat, 21 May 2005 21:20:00 -0400

Hi Ralf,

On 5/20/05, Ralf Wildenhues <address@hidden> wrote:
> * Chen-Mou Cheng wrote on Fri, May 20, 2005 at 06:29:28AM CEST:
> > On 5/19/05, Peter O'Gorman <address@hidden> wrote:
> > > Chen-Mou Cheng wrote:
> > > |
> > > | I have noticed that from 1.5.14 to 1.5.16, the way of handling object
> > > | name conflicts has been changed from renaming conflicting files to
> > > | just exiting with an ERROR (see the relevant diff fragment attached
> > > | below).  I am having problems with 1.5.16 in building gnuradio; it
> > > | breaks when gnuradio is trying to link against libfft3w, which
> > > | contains objects of same names.  But when I go back to 1.5.14, it
> > > | builds successfully.  Can somebody explain to me whether this is
> > > | gnuradio/libfft3w's fault, or it is simply a libtool-1.5.16's bug?
> > > | Thanks!
> > >
> > > This change should only have affected convenience libraries. Is libfft3w a
> > > gnuradio convenience library? If so you should rebuild it. There is new 
> > > code
> > > when making a convenience library that ensures there are no duplicated
> > > member names.
> >
> > Thanks for the prompt response.  I am not sure what you mean by a
> > convenience library; libfft3w is a separate project from gnuradio (and
> > they are installed separately).  However when building gnuradio, the
> > static library /usr/local/lib/libfft3w.a is first extracted in a .lib
> > directory under gnuradio's source tree.  Then the object files are
> > linked against libgnuradio; it is in this process the new libtool
> > breaks.
> 
> Please show the libtool link line and all output it generates (copy
> and paste).  Please also show the relevant Makefile.am snippet that
> describes the library you link, if any.  This way, it might be possible
> to decide whether this is a libtool bug or not.
> 
> BTW, you meant libfftw3, not libfft3w, right?  The former is not a
> library FFTW generates, AFAIK.
> 

Indeed, I meant libfftw3; sorry about the typo and the confusion. 
Below is the libtool line and the output it generated:

/bin/sh ../../libtool --tag=CXX --mode=link g++  -g -O2 -Wall
-Woverloaded-virtual    -o libgnuradio-core.la -rpath /usr/local/lib
-no-undefined -version-info 0:0:0 bug_work_around_6.lo
filter/libfilter.la g72x/libccitt.la general/libgeneral.la io/libio.la
missing/libmissing.la omnithread/libomnithread.la
reed-solomon/librs.la runtime/libruntime.la -L/usr/local/lib -lcppunit
-ldl -L/usr/local/lib -lfftw3f -lm
rm -fr .libs/libgnuradio-core.lax
mkdir .libs/libgnuradio-core.lax
rm -fr .libs/libgnuradio-core.lax/libfilter.a
mkdir .libs/libgnuradio-core.lax/libfilter.a
Extracting /Users/doug/gr-build/gnuradio-core/src/lib/filter/.libs/libfilter.a
(cd .libs/libgnuradio-core.lax/libfilter.a && ar x
/Users/doug/gr-build/gnuradio-core/src/lib/filter/.libs/libfilter.a)
rm -fr .libs/libgnuradio-core.lax/libccitt.a
mkdir .libs/libgnuradio-core.lax/libccitt.a
Extracting /Users/doug/gr-build/gnuradio-core/src/lib/g72x/.libs/libccitt.a
(cd .libs/libgnuradio-core.lax/libccitt.a && ar x
/Users/doug/gr-build/gnuradio-core/src/lib/g72x/.libs/libccitt.a)
rm -fr .libs/libgnuradio-core.lax/libgeneral.a
mkdir .libs/libgnuradio-core.lax/libgeneral.a
Extracting /Users/doug/gr-build/gnuradio-core/src/lib/general/.libs/libgeneral.a
(cd .libs/libgnuradio-core.lax/libgeneral.a && ar x
/Users/doug/gr-build/gnuradio-core/src/lib/general/.libs/libgeneral.a)
rm -fr .libs/libgnuradio-core.lax/libio.a
mkdir .libs/libgnuradio-core.lax/libio.a
Extracting /Users/doug/gr-build/gnuradio-core/src/lib/io/.libs/libio.a
(cd .libs/libgnuradio-core.lax/libio.a && ar x
/Users/doug/gr-build/gnuradio-core/src/lib/io/.libs/libio.a)
rm -fr .libs/libgnuradio-core.lax/libmissing.a
mkdir .libs/libgnuradio-core.lax/libmissing.a
Extracting /Users/doug/gr-build/gnuradio-core/src/lib/missing/.libs/libmissing.a
(cd .libs/libgnuradio-core.lax/libmissing.a && ar x
/Users/doug/gr-build/gnuradio-core/src/lib/missing/.libs/libmissing.a)
rm -fr .libs/libgnuradio-core.lax/libomnithread.a
mkdir .libs/libgnuradio-core.lax/libomnithread.a
Extracting 
/Users/doug/gr-build/gnuradio-core/src/lib/omnithread/.libs/libomnithread.a
(cd .libs/libgnuradio-core.lax/libomnithread.a && ar x
/Users/doug/gr-build/gnuradio-core/src/lib/omnithread/.libs/libomnithread.a)
rm -fr .libs/libgnuradio-core.lax/librs.a
mkdir .libs/libgnuradio-core.lax/librs.a
Extracting /Users/doug/gr-build/gnuradio-core/src/lib/reed-solomon/.libs/librs.a
(cd .libs/libgnuradio-core.lax/librs.a && ar x
/Users/doug/gr-build/gnuradio-core/src/lib/reed-solomon/.libs/librs.a)
rm -fr .libs/libgnuradio-core.lax/libruntime.a
mkdir .libs/libgnuradio-core.lax/libruntime.a
Extracting /Users/doug/gr-build/gnuradio-core/src/lib/runtime/.libs/libruntime.a
(cd .libs/libgnuradio-core.lax/libruntime.a && ar x
/Users/doug/gr-build/gnuradio-core/src/lib/runtime/.libs/libruntime.a)
rm -fr .libs/libgnuradio-core.lax/libfftw3f.a
mkdir .libs/libgnuradio-core.lax/libfftw3f.a
Extracting /usr/local/lib/libfftw3f.a
(cd .libs/libgnuradio-core.lax/libfftw3f.a && ar x /usr/local/lib/libfftw3f.a)
libtool: link: ERROR: object name conflicts:
.libs/libgnuradio-core.lax/libfftw3f.a//usr/local/lib/libfftw3f.a
make[4]: *** [libgnuradio-core.la] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Relevant Makefile.am fragment:

# generate libgnuradio-core.la from the convenience libraries in subdirs

lib_LTLIBRARIES = libgnuradio-core.la

libgnuradio_core_la_SOURCES = bug_work_around_6.cc
libgnuradio_core_la_LDFLAGS = -no-undefined -version-info 0:0:0

FIXME = \
        atsc/libatsc.la

libgnuradio_core_la_LIBADD  =           \
        filter/libfilter.la             \
        g72x/libccitt.la                \
        general/libgeneral.la           \
        io/libio.la                     \
        missing/libmissing.la           \
        omnithread/libomnithread.la     \
        reed-solomon/librs.la           \
        runtime/libruntime.la           \
        $(CPPUNIT_LIBS)                 \
        $(FFTW3F_LIBS)

It seems that the Makefile.am's contains mainly what to build; I guess
the detailed instructions in the Makefile's are automatically
generated.  Below are the version info for the relevant tools:

autoconf 2.59
automake 1.9.5
libtoolize 1.5.18

uname -a output: Darwin rasputin.eecs.harvard.edu 8.1.0 Darwin Kernel
Version 8.1.0: Tue May 10 18:16:08 PDT 2005;
root:xnu-792.1.5.obj~4/RELEASE_PPC Power Macintosh powerpc


Regards,
- Chen-Mou Cheng




reply via email to

[Prev in Thread] Current Thread [Next in Thread]