Opened 12 years ago

Closed 12 years ago

#4507 closed defect (fixed)

Problem building channelbase.cpp SVN 15504

Reported by: anonymous Owned by: danielk
Priority: minor Milestone: 0.22
Component: mythtv Version: unknown
Severity: medium Keywords:
Cc: Ticket locked: no

Description (last modified by Nigel)

Hi,

i have a Problem compiling MythTV SVN 15504 with uclibc. SVN 15261 works.

ccache /home/stephan/OpenELEC/build.i386/toolchain/bin/i386-pc-linux-uclibc-g++ -c -Os -Wall -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -s -fomit-frame-pointer -DQWS -march=pentiumpro -fomit-frame-pointer -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -Wno-non-virtual-dtor -D__STDC_CONSTANT_MACROS -I/home/stephan/OpenELEC/build.i386/toolchain/i386-pc-linux-uclibc/sysroot/usr/include/directfb -D_REENTRANT -I/home/stephan/OpenELEC/build.i386/toolchain/i386-pc-linux-uclibc/sysroot/usr/include/freetype2 -I/home/stephan/OpenELEC/build.i386/toolchain/i386-pc-linux-uclibc/sysroot/usr/include -D_REENTRANT -DPIC -fPIC  -DMMX -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DLIBDIR=\"/usr/lib\" -D_LARGEFILE_SOURCE -DUSING_H264TOOLS -DUSING_DIRECTFB -DUSING_FRONTEND -DUSING_V4L -DUSING_DBOX2 -DUSING_IPTV -DUSING_HDHOMERUN -DUSING_IVTV -DUSING_DVB -DUSING_BACKEND -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -I/home/stephan/OpenELEC/build.i386/toolchain/i386-pc-linux-uclibc/sysroot/usr/share/mkspecs/qws/linux-x86-g++ -I. -I../../../toolchain/i386-pc-linux-uclibc/sysroot/usr/include -I../../../toolchain/i386-pc-linux-uclibc/sysroot/usr/include -I../.. -I.. -I. -I../libmyth -I../libavcodec -I../libavutil -I../libmythmpeg2 -Idvbdev -Impeg -Iiptv -I../libmythlivemedia/BasicUsageEnvironment/include -I../libmythlivemedia/groupsock/include -I../libmythlivemedia/liveMedia/include -I../libmythlivemedia/UsageEnvironment/include -I/home/stephan/OpenELEC/build.i386/toolchain/i386-pc-linux-uclibc/sysroot/usr/include -o channelbase.o channelbase.cpp
/home/stephan/OpenELEC/build.i386/toolchain/lib/gcc/i386-pc-linux-uclibc/4.2.2/../../../../i386-pc-linux-uclibc/include/c++/4.2.2/bits/stl_iterator_base_types.h: 
In instantiation of 'std::iterator_traits<QValueListIterator<QString> >':
/home/stephan/OpenELEC/build.i386/toolchain/lib/gcc/i386-pc-linux-uclibc/4.2.2/../../../../i386-pc-linux-uclibc/include/c++/4.2.2/bits/stl_algo.h:327:   
instantiated from '_InputIterator std::find(_InputIterator, _InputIterator, const _Tp&) [with _InputIterator = QValueListIterator<QString>, _Tp = QString]' channelbase.cpp:72:   instantiated from here
/home/stephan/OpenELEC/build.i386/toolchain/lib/gcc/i386-pc-linux-uclibc/4.2.2/../../../../i386-pc-linux-uclibc/include/c++/4.2.2/bits/stl_iterator_base_types.h:129: 
error: no type named 'iterator_category' in 'class 
QValueListIterator<QString>'
/home/stephan/OpenELEC/build.i386/toolchain/lib/gcc/i386-pc-linux-uclibc/4.2.2/../../../../i386-pc-linux-uclibc/include/c++/4.2.2/bits/stl_algo.h: 
In function '_InputIterator std::find(_InputIterator, _InputIterator, const _Tp&) [with _InputIterator = QValueListIterator<QString>, _Tp = QString]':
channelbase.cpp:72:   instantiated from here
/home/stephan/OpenELEC/build.i386/toolchain/lib/gcc/i386-pc-linux-uclibc/4.2.2/../../../../i386-pc-linux-uclibc/include/c++/4.2.2/bits/stl_algo.h:327: 
error: no matching function for call to '__iterator_category(QValueListIterator<QString>&)'
make[3]: *** [channelbase.o] Error 1
make[3]: Leaving directory `/home/stephan/OpenELEC/build.i386/mythtv/libs/libmythtv'
make[2]: *** [sub-libmythtv] Error 2
make[2]: Leaving directory `/home/stephan/OpenELEC/build.i386/mythtv/libs'
make[1]: *** [sub-libs] Error 2
make[1]: Leaving directory `/home/stephan/OpenELEC/build.i386/mythtv'
make: *** [iso] Fehler 2

regards

Stephan

Attachments (1)

channelbase_find.patch (549 bytes) - added by megibson@… 12 years ago.
find patch

Download all attachments as: .zip

Change History (10)

comment:1 Changed 12 years ago by Nigel

Description: modified (diff)

comment:2 Changed 12 years ago by Nigel

Description: modified (diff)

comment:3 Changed 12 years ago by danielk

Resolution: invalid
Status: newclosed

uclibc is not a supported libc, please provide a patch if you would like it to work.

Closing, feature request without patch.

comment:4 Changed 12 years ago by anonymous

Resolution: invalid
Status: closednew

The offending code is using std::find which apparently compiles in most cases, but does not here. The fix I found that works is to change the find to qFind. This seems to do the trick and should work, though I've only compile tested it.

comment:5 Changed 12 years ago by anonymous

patching to use qFind instead of find should work on all platforms.

comment:6 Changed 12 years ago by danielk

Resolution: invalid
Status: newclosed

Bug is in uclibc. Ticket was improperly reopened without a uclibc bug workaround patch.

STL is part of the C++ spec. If uclibc can't compile it's own C++ code, you will have a lot more problems porting MythTV to the uclibc platform than this...

Changed 12 years ago by megibson@…

Attachment: channelbase_find.patch added

find patch

comment:7 Changed 12 years ago by megibson@…

Resolution: invalid
Status: closednew

Ok. Here's the patch. BTW, I don't think I'm using uclibc. I encountered this problem when compiling using qt-embedded-3.3.6. Haven't tried with qt-embedded-3.3.8. I'm not the same person as who originally reported the problem. Just FYI, mythtv built fine and seems to work after fixing this.

comment:8 Changed 12 years ago by danielk

Milestone: 0.210.22
Owner: changed from Isaac Richards to danielk
Status: newassigned

comment:9 Changed 12 years ago by danielk

Resolution: fixed
Status: assignedclosed

(In [16530]) Fixes #4507. Workaround for uclibc compilation.

Note: See TracTickets for help on using tickets.