Bug 242868 - build fails - Multiple declaration for __rw::__rw_select_int<char>
Summary: build fails - Multiple declaration for __rw::__rw_select_int<char>
Status: RESOLVED NOT A BUG
Alias: None
Product: bindings
Classification: Developer tools
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Solaris
: NOR normal
Target Milestone: ---
Assignee: kde-bindings
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-06-26 14:10 UTC by tropikhajma
Modified: 2010-06-27 01:01 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description tropikhajma 2010-06-26 14:10:22 UTC
Version:           unspecified (using Devel) 
OS:                Solaris

building kdebindings 4.4.90 fails with 
...
pkgbuild: [ 90%] Building CXX object perl/qtcore/src/CMakeFiles/perlqtcore4.dir/binding.o
pkgbuild: cd /export/home/test/packages/BUILD/kdebindings-4.4.90/build-kdebindings-4.4.90/perl/qtcore/src && /opt/sunstudio12.1/bin/CC  -library=no%Cstd -library=Crun -xannotate=no  -Dperlqtcore4_EXPORTS -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -D_REENTRANT -DKDE_DEPRECATED_WARNINGS -DQT3_SUPPORT -DDEBUG -DDEBUG -D__EXTENSIONS__ -DSOLARIS -D_REENTRANT -DNDEBUG -D__EXTENSIONS__ -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_POSIX_PTHREAD_SEMANTICS -DSOLARIS -DSOLARIS10 -DNO_DEBUG -D_UNICODE -DUNICODE -D_RWSTD_REENTRANT  -D_XOPEN_SOURCE=500 -D_XPG5  -I/usr/include/stdcxx4/ansi -I/usr/include/stdcxx4 -I/opt/kde4/include -I/opt/kde4/include/boost-1_43 -I/usr/include/stdcxx4/ansi -I/usr/include/stdcxx4 -library=no%Cstd -library=Crun -features=anachronisms,except,rtti,export,extensions,nestedaccess,tmplife,tmplrefstatic -instances=global -template=geninlinefuncs -s -xdebugformat=dwarf -xlang=c99 -xustr=ascii_utf16_ushort -Qoption ccfe -features=gcc -Qoption ccfe -features=zla -Qoption ccfe ++boolflag:sunwcch=false -mt -xF=%none -xbuiltin=%all -xinline=%auto -xprefetch=auto -xprefetch_auto_type=indirect_array_access -xprefetch_level=3 -KPIC -DPIC -xipo=0 -xO3 -xregs=no%frameptr -xjobs=2 -xrestrict=%all -xthreadvar=%all -z combreloc -z redlocsym -z nodefaultlib -z ignore -z now -z rescan -z absexec -xldscope=symbolic -xlibmil -s -xtarget=pentium4 -m32 -xarch=sse2 -xchip=pentium4 -xcache=8/64/4:256/128/8 -lc -lm -ldl -lpthread -lposix4 -lrt -mt -L/opt/kde4/lib -R/opt/kde4/lib -L/usr/lib -R/usr/lib -Y P,/opt/kde4/lib -i -L/opt/kde4/lib -R/opt/kde4/lib -L/usr/lib -R/usr/lib -Bdynamic -lstdcxx4 -lCrun -lc -lm -xannotate=no   -DQT_NO_DEBUG -KPIC -I/export/home/test/packages/BUILD/kdebindings-4.4.90/build-kdebindings-4.4.90/perl/qtcore/src -I/export/home/test/packages/BUILD/kdebindings-4.4.90/perl/qtcore/src -I/export/home/test/packages/BUILD/kdebindings-4.4.90 -I/export/home/test/packages/BUILD/kdebindings-4.4.90/build-kdebindings-4.4.90 -I/export/home/test/packages/BUILD/kdebindings-4.4.90/smoke -I/opt/kde4/include -I/opt/kde4/include/KDE -I/opt/kde4/include/QtXmlPatterns -I/opt/kde4/include/QtXml -I/opt/kde4/include/QtWebKit -I/opt/kde4/include/QtUiTools -I/opt/kde4/include/QtTest -I/opt/kde4/include/QtSvg -I/opt/kde4/include/QtSql -I/opt/kde4/include/QtScriptTools -I/opt/kde4/include/QtScript -I/opt/kde4/include/QtOpenGL -I/opt/kde4/include/QtNetwork -I/opt/kde4/include/QtMultimedia -I/opt/kde4/include/QtHelp -I/opt/kde4/include/QtDesigner -I/opt/kde4/include/QtDBus -I/opt/kde4/include/QtAssistant -I/opt/kde4/include/Qt3Support -I/opt/kde4/include/QtGui -I/opt/kde4/include/QtCore -I/opt/kde4/include/Qt -I/opt/kde4/share/mkspecs/default -I/usr/X11/include -I/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE    -D_LARGEFILE64_SOURCE -o CMakeFiles/perlqtcore4.dir/binding.o -c /export/home/test/packages/BUILD/kdebindings-4.4.90/perl/qtcore/src/binding.cpp
pkgbuild: "/usr/include/stdcxx4/rw/_select.h", line 70: Error: Multiple declaration for __rw::__rw_select_int<char>.

this is on opensolaris b134 with the Sun Studio 12u1 compiler
I do not have a patch. I tried to investigate, but am lost.

Reproducible: Always
Comment 1 Arno Rehn 2010-06-26 14:26:34 UTC
Seems like a compiler issue to me. You could look into /usr/include/stdcxx4/rw/_select.h and see what's defining that __rw::__rw_select_int<char> and why it is defined twice. Maybe we're missing a special Solaris #define somewhere.
Comment 2 tropikhajma 2010-06-27 01:01:26 UTC
mmm, actually it comes from the line
_RWSTD_SPECIALIZE_IS_INT (bool);
in
_select.h

IMO due to a buggy approach of perl, bool gets redefined as char in

/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE/handy.h:
#ifdef __GNUG__ /* GNU g++ has bool built-in */
# ifndef HAS_BOOL
# define HAS_BOOL 1
# endif
#endif
...
#ifndef HAS_BOOL
# if defined(UTS) || defined(VMS)
#  define bool int
# else
#  define bool char
# endif
# define HAS_BOOL 1
#endif


so it's not a KDE problem