Ticket #71 (closed: fixed)
Build stop svn 745
| Reported by: | Nick | Owned by: | alwin |
|---|---|---|---|
| Priority: | normal | Milestone: | 0.8.x |
| Component: | All | Version: | 0.8.x |
| Severity: | block | Keywords: | RESOLVED |
| Cc: |
Description
Unable to build latest svn 745
ADDITIONAL INFORMATION: ...
../src/svnfrontend/.libs/libsvnfrontend.a(kdesvnfilelist.o)(.text+0x6640): In function `kdesvnfilelist::openURL(KURL const&, bool)': : undefined reference to `svn::Revision::operator==(svn_opt_revision_kind)' ../src/svnfrontend/.libs/libsvnfrontend.a(commandexec.o)(.text+0x1cbe): In function `CommandExec::exec()': : undefined reference to `svn::Revision::operator!=(svn_opt_revision_kind)' ../src/svnfrontend/.libs/libsvnfrontend.a(commandexec.o)(.text+0x4390): In function `CommandExec::slotCmd_log()': : undefined reference to `svn::Revision::operator==(svn_opt_revision_kind)' ../src/svnfrontend/.libs/libsvnfrontend.a(commandexec.o)(.text+0x43b3): In function `CommandExec::slotCmd_log()':
... ...
Attachments
Change History
comment:1 Changed 7 years ago by Nick
- Owner changed from anonymous to alwin
- Status changed from new to assigned
comment:2 Changed 7 years ago by Nick
I can get around this (and it builds/works fine) by reverting changes in ./src/svnqt/revision.cpp - .hpp to 744.
BTW, this is a truly excellent application! Thanks.
Nick
comment:4 Changed 7 years ago by alwin
make a "clean" before should help (I had to change the interface 'cause wrong)
Here it builds fine (gcc 4)
comment:5 Changed 7 years ago by Nick
Ummm. No, I can't build unless I revert those changes.
GCC 3.3.4
Here is how I build (trunk/ directory is virgin svn code):
cp -R trunk/ build/ cd build make -f Makefile.cvs ./configure --with-berkeley-db=/usr/local/BerkeleyDB.4.4 make clean <------ added from advice
...
make
... /bin/sh ../libtool --silent --tag=CXX --mode=link g++ -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -O2 -march=athlon-tbird -Wformat-security -Wmissing-format-attribute -fno-check-new -fno-common -fexceptions -o libkdesvnpart.la -rpath /home/nick/kde3.5.2n/lib/kde3 -avoid-version -module -avoid-version -module -no-undefined -Wl,--no-undefined -Wl,--allow-shlib-undefined -R /home/nick/kde3.5.2n/lib -R /usr/lib/qt/lib -R /usr/X11R6/lib -L/usr/X11R6/lib -L/usr/lib/qt/lib -L/home/nick/kde3.5.2n/lib kdesvn_part.lo kdesvnview.lo commandline_part.lo ../src/svnqt/libsvnqt.la ../src/svnfrontend/libsvnfrontend.la ../src/helpers/libhelper.la -L/usr/local/lib -lsvn_client-1 -lsvn_wc-1 -lsvn_ra-1 -lsvn_delta-1 -lsvn_subr-1 -L/usr/local/apr/lib -lapr-0 -lrt -lm -lcrypt -lnsl -lpthread -ldl -L/usr/local/apr/lib -laprutil-0 -lgdbm -ldb-4.2 -lexpat -lkparts -lkio -lqt-mt -lz -lpng -lz -lm -lXext -lX11 -lSM -lICE -lpthread -lkdecore -lkdeui ../src/svnfrontend/.libs/libsvnfrontend.a(kdesvnfilelist.o)(.text+0x6640): In function `kdesvnfilelist::openURL(KURL const&, bool)': : undefined reference to `svn::Revision::operator==(svn_opt_revision_kind)' ../src/svnfrontend/.libs/libsvnfrontend.a(commandexec.o)(.text+0x1cbe): In function `CommandExec::exec()': : undefined reference to `svn::Revision::operator!=(svn_opt_revision_kind)' ../src/svnfrontend/.libs/libsvnfrontend.a(commandexec.o)(.text+0x4390): In function `CommandExec::slotCmd_log()': ... ...
Nick
comment:6 Changed 7 years ago by Nick
OK, after a lot of messing about, I can get it to build without the 'undefined reference' by doing this (this is just to see what the problems was - not to build a 'release' to use):
In src/svnfrontend/kdesvnfilelist.cpp
if I comment out lines 454 - 456:
if (m_pList->m_remoteRevision==svn::Revision::UNDEFINED) {
m_pList->m_remoteRevision = svn::Revision::HEAD; }
and then in src/svnfrontend/commandexec.cpp
comment out lines 252 - 255:
if (re != svn::Revision::UNDEFINED) { kdDebug()<<"Revision " << re << " gefunden. " << endl; m_pCPart->extraRevisions[j-2]=re; }
lines 303 - 308:
if (m_pCPart->end == svn::Revision::UNDEFINED) { m_pCPart->end = svn::Revision::HEAD; } if (m_pCPart->start == svn::Revision::UNDEFINED) { m_pCPart->start = 1; }
and finally lines 335 - 340:
if (m_pCPart->end == svn::Revision::UNDEFINED) { m_pCPart->end = svn::Revision::HEAD; } if (m_pCPart->start == svn::Revision::UNDEFINED) { m_pCPart->start = 1; }
this will now build OK (but I expect is unusable). So for some reason my system doesn't like the svn::Revision::UNDEFINED bit??
I am a bit confused here - as I build KDE all from source, I recently built QT3.3.6 from source, all OK - so if I did have some sort of GCC issue, you would think it would show doing that?
[confused] Nick
comment:7 Changed 7 years ago by Nick
Quick update on this - I installed GCC3.4.0 from Slack 10 test, and rolled back binutils to same [Slack] version. As an aside I then had to rebuild kernel to update new nVidia driver (wrong GCC now for modules).
Everything builds fine.
So, I can build:
KDE3.5.2 QT3.3.6 Linux 2.6.15.6 (C) nVidia 1.0-8756
But I still get the same build error in kdesvn? Any ideas what is going on?
Nick
comment:8 Changed 7 years ago by alwin
did you install the header files of svnqt? is it possible, that it includes the wrong headerfiles? (eg, exists a /usr/include/svnqt?) Seems, that it include the older stuff where the method definition is wrong.
comment:9 Changed 7 years ago by Nick
Thats it! I found it.
OK, I had a revision.hpp in my KDEDIR/include/svnqt/revision.hpp* Now, when it wouldn't build I found removing the 'const' from the bool operator lines fixed it. I then upgraded GCC etc. and it still failed - BECAUSE that revision.hpp file was now wrong (I was changing the revision.hpp in kdesvn)!
I have just changed back, and NOW all builds clean and properly!
Thanks for help!
Nick I have: /home/nick/kde3.5.2n/include/svnqt/revision.hpp /usr/local/include/svncpp/revision.hpp
comment:10 Changed 7 years ago by Nick
OK, I have looked at what happened, so here is exactly the issue in case somebody else gets similar problem.
My upgraded GCC and ld was not quiet right (I don't know why), so the new build failed with the 'const' issue as reported.
After analysis I edited revision.cpp and revision.hpp to revert 744 -> 745 changes. This then all built OK and installed fine... BUT this install placed the reverted revision.hpp into KDEDIR/include/svnqt/revision.hpp.
Now, I rolled back out the dodgy GCC/ld and installed latest Slackware GCC and ld for my system.
Build now still failed as KDEDIR/include/svnqt/revision.hpp was wrong version, and as I couldn't build, I couldn't install to place correct revision.hpp into place.
Fixing this file then allowed build and install to work.
Quick question... why does it look in KDEDIR/include/svnqt/ for headers at build anyway?
Nick P.S. this bug can be closed.
comment:11 Changed 7 years ago by alwin
Have no idea why it looks into wrong path, I'll check this next days, may some variables inside buildsystem are wrong.
comment:12 Changed 7 years ago by alwin
- Keywords RESOLVED added
- Status changed from assigned to closed
- Resolution set to fixed
- Milestone set to 0.8.x
ok, seems that I forgot to add the right includepath into buildsystem on some places. It is fixed in branch rel_0_8, later on I merge it back into trunk.
