Version: (using KDE Devel) Installed from: Compiled sources Compiler: GCC 3.4.6 OS: Linux GCC 3.4.6 glibc: nick@linuxamd:kdelibs$ /lib/libc.so.6 -v GNU C Library stable release version 2.3.2, by Roland McGrath et al. Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 3.3.3. Compiled on a Linux 2.4.26 system on 2004-05-24. Available extensions: GNU libio by Per Bothner crypt add-on version 2.1 by Michael Glad and others linuxthreads-0.10 by Xavier Leroy BIND-8.2.3-T5B libthread_db work sponsored by Alpha Processor Inc NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk I built KDE4 on Friday/Saturday 11th/12th Jan 08. Today I svn up to latest revision. I now have a built stopper in kdelibs in two areas: /home/hdb/kde4/KDE/kdelibs/kjs/JSImmediate.h: In function `double KJS::setTimeFields(KJS::ExecState*, const KJS::List&, int, double, tm*)': /home/hdb/kde4/KDE/kdelibs/kjs/JSImmediate.h:151: sorry, unimplemented: inlining failed in call to 'static uintptr_t KJS::JSImmediate::getTag(const KJS::JSValue*)': function not considered for inlining This appears to be from: http://websvn.kde.org/trunk/KDE/kdelibs/kjs/JSImmediate.h?r1=686923&r2=760411 If I revert the 2 ALWAYS_INLINE changes around line 142: // static ALWAYS_INLINE uintptr_t unTag(const JSValue* v) static uintptr_t unTag(const JSValue* v) { return reinterpret_cast<uintptr_t>(v) & ~TagMask; } // static ALWAYS_INLINE uintptr_t getTag(const JSValue* v) static uintptr_t getTag(const JSValue* v) { return reinterpret_cast<uintptr_t>(v) & TagMask; } It builds OK. Also changing ALWAYS_INLINE to __inline__ also works here too... So then I can build until: /home/hdb/kde4/KDE/kdelibs/kjs/regexp.cpp: In member function `KJS::UString KJS::RegExp::match(const KJS::UString&, bool*, int, int*, int**)': /home/hdb/kde4/KDE/kdelibs/kjs/regexp.cpp:353: error: `PCRE_EXTRA_MATCH_LIMIT_RECURSION' was not declared in this scope /home/hdb/kde4/KDE/kdelibs/kjs/regexp.cpp:360: error: 'struct pcre_extra' has no member named 'match_limit_recursion' /home/hdb/kde4/KDE/kdelibs/kjs/regexp.cpp:353: warning: unused variable 'PCRE_EXTRA_MATCH_LIMIT_RECURSION' /home/hdb/kde4/KDE/kdelibs/kjs/regexp.cpp:378: error: `PCRE_ERROR_RECURSIONLIMIT' was not declared in this scope /home/hdb/kde4/KDE/kdelibs/kjs/regexp.cpp:378: warning: unused variable 'PCRE_ERROR_RECURSIONLIMIT' make[2]: *** [kjs/CMakeFiles/kjs.dir/regexp.o] Error 1 Any help appreciated. Thanks, Nick
UPDATE: OK, ignore the regexp.cpp errors - my pcre version was to old, and updating that fixed it. So, it is only the ALWAYS_INLINE build error - which I can fixup for my version of GCC/glibc as explained. Nick
SVN commit 762074 by porten: Feature was buggy/incomplete in some gcc 3 versions. BUG: 155811 M +1 -1 AlwaysInline.h WebSVN link: http://websvn.kde.org/?view=rev&revision=762074