kdelibs build broken on OS X and Linux
Alexander Neundorf
neundorf at kde.org
Sat Apr 8 22:50:11 CEST 2006
Hi Ralf,
this commit
http://websvn.kde.org/trunk/KDE/kdelibs/kjsembed/kjsembed/static_binding.cpp?rev=527588&r1=521795&r2=527588
breaks the build on UNIX
This is what I get on Linux:
cd /home/alex/src/kde4-svn/kdelibs-build/kjsembed/kjsembed && /usr/bin/c++
-fPIC -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align
-Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings
-Wformat-security -fno-exceptions -fno-check-new -fno-common -O2 -g
-Wl,--fatal-warnings -avoid-version -Wl,--no-undefined -lc -shared
-Wl,-soname,libkjsembed.so.1 -o ../../lib/libkjsembed.so.1.0.0
"CMakeFiles/kjsembed.dir/global.o"
"CMakeFiles/kjsembed.dir/binding_support.o"
"CMakeFiles/kjsembed.dir/static_binding.o"
"CMakeFiles/kjsembed.dir/value_binding.o"
"CMakeFiles/kjsembed.dir/object_binding.o"
"CMakeFiles/kjsembed.dir/builtins.o" "CMakeFiles/kjsembed.dir/fileio.o"
"CMakeFiles/kjsembed.dir/jseventmapper.o"
"CMakeFiles/kjsembed.dir/eventproxy.o" "CMakeFiles/kjsembed.dir/slotproxy.o"
"CMakeFiles/kjsembed.dir/jseventutils.o"
"CMakeFiles/kjsembed.dir/qobject_binding.o"
"CMakeFiles/kjsembed.dir/kjsembed.o"
"CMakeFiles/kjsembed.dir/scalar_binding.o"
"CMakeFiles/kjsembed.dir/iosupport.o"
"CMakeFiles/kjsembed.dir/qwidget_binding.o"
"CMakeFiles/kjsembed.dir/widgetfactory.o"
"CMakeFiles/kjsembed.dir/qformbuilder_binding.o"
"CMakeFiles/kjsembed.dir/qpainter_binding.o"
"CMakeFiles/kjsembed.dir/settings.o" "CMakeFiles/kjsembed.dir/svg_binding.o"
"CMakeFiles/kjsembed.dir/filedialog_binding.o"
"CMakeFiles/kjsembed.dir/brush.o" "CMakeFiles/kjsembed.dir/color.o"
"CMakeFiles/kjsembed.dir/dom.o" "CMakeFiles/kjsembed.dir/font.o"
"CMakeFiles/kjsembed.dir/image.o" "CMakeFiles/kjsembed.dir/pen.o"
"CMakeFiles/kjsembed.dir/pixmap.o" "CMakeFiles/kjsembed.dir/point.o"
"CMakeFiles/kjsembed.dir/rect.o" "CMakeFiles/kjsembed.dir/size.o"
"CMakeFiles/kjsembed.dir/url.o" -L/usr/local/lib
-L/home/alex/src/kde4-svn/kdelibs-build/lib/.
-L/home/alex/src/kde4-svn/kdelibs-build/lib -L/usr/lib/qt4/lib
-L/usr/X11R6/lib -lQtCore -lpthread -lkdecore -lQtSvg -lQtXml -lQtDesigner
-lkjs -lkdecore -lQt3Support -lQtGui -lSM -lICE -lSM -lICE -lX11 -lXext -lXau
-lXdmcp -lXpm -lX11 -lXext -lXau -lXdmcp -lXpm -lutil -lDCOP -lQtCore
-lpthread -lz -lbz2 -lresolv -ldl -lXtst -lm -lpcre -lpcreposix
CMakeFiles/kjsembed.dir/kjsembed.o(.text+0x0): In function
`KJS::UString::UString[not-in-charge](QString const&)':
/home/alex/src/kde4-svn/kdelibs/kjsembed/kjsembed/kjsembed.cpp:69: multiple
definition of `KJS::UString::UString[not-in-charge](QString const&)'
CMakeFiles/kjsembed.dir/static_binding.o(.text+0xd20):/home/alex/src/kde4-svn/kdelibs/kjsembed/kjsembed/static_binding.cpp:140:
first defined here
/usr/lib/gcc-lib/i486-slackware-linux/3.3.6/../../../../i486-slackware-linux/bin/ld:
Warning: size of symbol `KJS::UString::UString[not-in-charge](QString
const&)' changed from 190 in CMakeFiles/kjsembed.dir/static_binding.o to 212
in CMakeFiles/kjsembed.dir/kjsembed.o
CMakeFiles/kjsembed.dir/kjsembed.o(.text+0xe0): In function `KJS::JSObject*
KJSEmbed::createQObject<QObject>(KJS::ExecState*, QObject*,
KJSEmbed::ObjectBinding::Ownership)':
/home/alex/src/kde4-svn/kdelibs/kjsembed/kjsembed/kjsembed.cpp:69: multiple
definition of `KJS::UString::UString[in-charge](QString const&)'
CMakeFiles/kjsembed.dir/static_binding.o(.text+0xde0):/home/alex/src/kde4-svn/kdelibs/kjsembed/kjsembed/static_binding.cpp:140:
first defined here
/usr/lib/gcc-lib/i486-slackware-linux/3.3.6/../../../../i486-slackware-linux/bin/ld:
Warning: size of symbol `KJS::UString::UString[in-charge](QString const&)'
changed from 190 in CMakeFiles/kjsembed.dir/static_binding.o to 212 in
CMakeFiles/kjsembed.dir/kjsembed.o
CMakeFiles/kjsembed.dir/kjsembed.o(.text+0x1c0): In function `KJS::JSObject*
KJSEmbed::createQObject<QObject>(KJS::ExecState*, QObject*,
KJSEmbed::ObjectBinding::Ownership)':
/home/alex/src/kde4-svn/kdelibs/kjsembed/kjsembed/kjsembed.cpp:77: multiple
definition of `KJS::UString::qstring() const'
CMakeFiles/kjsembed.dir/static_binding.o(.text+0xea0):/home/alex/src/kde4-svn/kdelibs/kjsembed/kjsembed/static_binding.cpp:148:
first defined here
CMakeFiles/kjsembed.dir/kjsembed.o(.text+0x220): In function `KJS::JSObject*
KJSEmbed::createQObject<QObject>(KJS::ExecState*, QObject*,
KJSEmbed::ObjectBinding::Ownership)':
/home/alex/src/kde4-svn/kdelibs/kjsembed/kjsembed/kjsembed.cpp:82: multiple
definition of `KJS::Identifier::qstring() const'
CMakeFiles/kjsembed.dir/static_binding.o(.text+0xf00):/home/alex/src/kde4-svn/kdelibs/kjsembed/kjsembed/static_binding.cpp:153:
first defined here
collect2: ld returned 1 exit status
make[2]: *** [lib/libkjsembed.so.1.0.0] Error 1
I.e. the linker finds two definitions of KJS::UString::UString[not-in-charge]
(QString const&).
It seems the same happens on OS X:
ld: multiple definitions of symbol __ZNK3KJS10Identifier7qstringEv
CMakeFiles/kjsembed.dir/static_binding.o definition of
__ZNK3KJS10Identifier7qstringEv in section (__TEXT,__text)
CMakeFiles/kjsembed.dir/kjsembed.o definition of
__ZNK3KJS10Identifier7qstringEv in section (__TEXT,__text)
ld: multiple definitions of symbol __ZNK3KJS7UString7qstringEv
CMakeFiles/kjsembed.dir/static_binding.o definition of
__ZNK3KJS7UString7qstringEv in section (__TEXT,__text)
CMakeFiles/kjsembed.dir/kjsembed.o definition of __ZNK3KJS7UString7qstringEv
in section (__TEXT,__text)
/usr/bin/libtool: internal link edit command failed
So, it seems you commit wasn't exactly perfect ;-)
Bye
Alex
--
Work: alexander.neundorf AT jenoptik.com - http://www.jenoptik-los.de
Home: neundorf AT kde.org - http://www.kde.org
alex AT neundorf.net - http://www.neundorf.net
More information about the Kde-buildsystem
mailing list