Libprofile.so fails compile/install

RESOLVED WORKSFORME

Status

()

Firefox
Build Config
--
critical
RESOLVED WORKSFORME
14 years ago
13 years ago

People

(Reporter: Casey, Assigned: Brian Ryner (not reading))

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

14 years ago
User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040615 Firefox/0.9
Build Identifier: Firefox 0.9 Source Tarball

Basic compile of Firefox 0.9 source fails 'make install' step. Configuration
options are:

--enable-default-toolkit=gtk2 --with-x --with-system-zlib --with-system-jpeg
--with-system-png --with-system-mng --enable-xft --enable-crypto
--disable-accessibility --disable-tests --enable-reorder --enable-strip
--disable-pedantic --enable-cpp-rtti --enable-extensions=all --disable-calendar
--disable-mailnews --prefix=/opt/firefox

End of Make output is:

make[2]: Entering directory `/tmp/firefox/mozilla/profile/build'
rm -f libprofile.so
c++ -I/usr/X11R6/include -frtti -fno-exceptions -Wall -Wconversion -Wpointer-ari
th -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-vir
tual-dtor -Wno-long-long -Os -march=athlon-xp -fforce-addr -fomit-frame-pointer 
-funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4 -fsho
rt-wchar -pthread -pipe  -DDEBUG -D_DEBUG -DDEBUG_root -DTRACING -g -fno-inline 
-ffunction-sections -fPIC -shared -Wl,-h -Wl,libprofile.so -o libprofile.so  nsP
rofileFactory.o             -Wl,--whole-archive ../../dist/lib/libprofile_s.a ..
/../dist/lib/libprofdirserviceprovider_s.a  -Wl,--no-whole-archive -L../../dist/
bin -L../../dist/lib -L../../dist/bin -lxpcom  -L../../dist/lib -lxpcom_compat -
L../../dist/bin -lmozjs -L/tmp/firefox/mozilla/dist/lib -lplds4 -lplc4 -lnspr4 -
lpthread -ldl    -Wl,-Bsymbolic -ldl -lm    
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.data.rel+0x0):../
../../dist/include/xpcom/nsIFile.h:45: multiple definition of `nsProfileLock::mP
idLockList'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.data.rel+0x0):../../../dist/incl
ude/xpcom/nsIFile.h:45: first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLockC2Ev+0x0): In function `nsProfileLock::nsProfileLock()':
: multiple definition of `nsProfileLock::nsProfileLock()'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLockC2Ev+0x0)
: first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLockC1Ev+0x0): In function `nsProfileLock::nsProfileLock()':
: multiple definition of `nsProfileLock::nsProfileLock()'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLockC1Ev+0x0)
: first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLock13LockWithFcntlERK10nsACString+0x0): In function `nsProfileLock::LockWithF
cntl(nsACString const&)':
: multiple definition of `nsProfileLock::LockWithFcntl(nsACString const&)'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLock13LockWit
hFcntlERK10nsACString+0x0): first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLock15LockWithSymlinkERK10nsACString+0x0): In function `nsProfileLock::LockWit
hSymlink(nsACString const&)':
: multiple definition of `nsProfileLock::LockWithSymlink(nsACString const&)'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLock15LockWit
hSymlinkERK10nsACString+0x0): first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLock18RemovePidLockFilesEv+0x0): In function `nsProfileLock::RemovePidLockFile
s()':
: multiple definition of `nsProfileLock::RemovePidLockFiles()'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLock18RemoveP
idLockFilesEv+0x0): first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLock18FatalSignalHandlerEi+0x0): In function `nsProfileLock::FatalSignalHandle
r(int)':
: multiple definition of `nsProfileLock::FatalSignalHandler(int)'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLock18FatalSi
gnalHandlerEi+0x0): first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLock6UnlockEv+0x0): In function `nsProfileLock::Unlock()':
: multiple definition of `nsProfileLock::Unlock()'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLock6UnlockEv+0x0):
first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLockD1Ev+0x0): In function `nsProfileLock::~nsProfileLock()':
: multiple definition of `nsProfileLock::~nsProfileLock()'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLockD1Ev+0x0)
: first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLockD2Ev+0x0): In function `nsProfileLock::~nsProfileLock()':
: multiple definition of `nsProfileLock::~nsProfileLock()'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLockD2Ev+0x0)
: first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLockaSERS_+0x0): In function `nsProfileLock::operator=(nsProfileLock&)':
: multiple definition of `nsProfileLock::operator=(nsProfileLock&)'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLockaSERS_+0x
0): first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLockC1ERS_+0x0): In function `nsProfileLock::nsProfileLock(nsProfileLock&)':
: multiple definition of `nsProfileLock::nsProfileLock(nsProfileLock&)'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLockC1ERS_+0x
0): first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLockC2ERS_+0x0): In function `nsProfileLock::nsProfileLock(nsProfileLock&)':
: multiple definition of `nsProfileLock::nsProfileLock(nsProfileLock&)'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLockC2ERS_+0x
0): first defined here
../../dist/lib/libprofdirserviceprovider_s.a(nsProfileLock.o)(.text._ZN13nsProfi
leLock4LockEP12nsILocalFile+0x0): In function `nsProfileLock::Lock(nsILocalFile*
)':
: multiple definition of `nsProfileLock::Lock(nsILocalFile*)'
../../dist/lib/libprofile_s.a(nsProfileLock.o)(.text._ZN13nsProfileLock4LockEP12
nsILocalFile+0x0): first defined here
collect2: ld returned 1 exit status
make[2]: *** [libprofile.so] Error 1
make[2]: Leaving directory `/tmp/firefox/mozilla/profile/build'
make[1]: *** [install] Error 2
make[1]: Leaving directory `/tmp/firefox/mozilla/profile'
make: *** [install] Error 2


Reproducible: Always
Steps to Reproduce:
1. ./configure
2. make 
3. make install

Actual Results:  
Error shown above

Expected Results:  
Clean compile

Using the --enable-single-profile configure argument causes this error to go
away. Firefox 0.8 compiled cleanly on same system.

Updated

14 years ago
Summary: Libprofile.so fails compile/install → Libprofile.so fails compile/install

Comment 1

14 years ago
*** Bug 248451 has been marked as a duplicate of this bug. ***

Comment 2

14 years ago
This bug only occurs with GTK2, as far as I can tell. When the toolkit is GTK,
dist/lib/libprofile_s.a is a symlink to ../../profile/src/libprofile_s.a. This
is fine, there are no duplicate declarations.

When it is GTK2, the same symlink is to
../../toolkit/profile/src/libprofile_s.a, which contains the duplicate
declarations (in this case the two libraries that make up libprofile.so both
contain nsProfileLock.o built from
profile/dirserviceprovider/src/nsProfileLock.cpp).

Comment 3

14 years ago
Sorry, that last comment was nonsense. I posted it by accident while adding
myself to CC before I had checked it properly.

The problem seems to be fixed in the latest CVS.

Comment 4

14 years ago
So was that one. I forgot to define MOZ_PHOENIX, so I was building mozilla
instead of firefox. Which means that the toolkit part of the tree isn't built -
which is where this bug has reared it's ugly head from.

The reason --enable-single-profile makes it go away is that it prevents
libprofile.so from being built at all.

Comment 5

14 years ago
lame work-around:

$ cd profile/dirserviceprovider/src
$ ar d libprofdirserviceprovider_s.a nsProfileLock.o

$ make install

Comment 6

14 years ago
Latest CVS built fine on my system (see Bug 248251 for details). Using it now,
no problems so far.

Comment 7

14 years ago
*sigh*. It's back. CVS of 20040831 has the problem again.
Please reopen if you experience this in recent builds.
Status: UNCONFIRMED → RESOLVED
Last Resolved: 13 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.