[Top][All Lists]
[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
- Handling object name conflicts, Chen-Mou Cheng, 2005/05/19
- Re: Handling object name conflicts, Peter O'Gorman, 2005/05/19
- Re: Handling object name conflicts, Chen-Mou Cheng, 2005/05/20
- Re: Handling object name conflicts, Ralf Wildenhues, 2005/05/20
- Re: Handling object name conflicts,
Chen-Mou Cheng <=
- Re: Handling object name conflicts, Peter O'Gorman, 2005/05/26
- Re: Handling object name conflicts, Chen-Mou Cheng, 2005/05/27
- Re: Handling object name conflicts, Peter O'Gorman, 2005/05/27
- Re: Handling object name conflicts, Chen-Mou Cheng, 2005/05/27
- Re: Handling object name conflicts, Peter O'Gorman, 2005/05/27
- Re: Handling object name conflicts, Ralf Wildenhues, 2005/05/28
- Re: Handling object name conflicts, Peter O'Gorman, 2005/05/28
- Re: Handling object name conflicts, Ralf Wildenhues, 2005/05/29
- Re: Handling object name conflicts, Peter O'Gorman, 2005/05/31