On Sat, 25 Apr 2009 01:05:49 +0200, David Faure <[email protected]> wrote: > This is a bit complex. When compiling string.h with g++, glibc-2.9 > defines two prototypes for strcasestr, a const one and a non-const one. > > This makes the check_function_exists fail because it tries to compile code > that > says "&strcasestr" -- which is ambiguous because of the overload. > > Some have said this is a cmake bug and it should be fixed in cmake so that > it doesn't > take the address of the function but does something more close to what > autoconf did. > > Not knowing the reasons for the cmake implementation, I chose a simpler > approach: > since string.h defines __CORRECT_ISO_CPP_STRING_H_PROTO when it defines > both versions of strcasestr, we can just check for that. Not as easy as it > sounds though, > because check_symbol_exists runs gcc and not g++ (in which case string.h > doesn't > do all that magic, it's in #ifdef __cplusplus). > > So I had to fork check_symbol_exists into a check_cxx_symbol_exists which > uses a .cxx > extension instead of a .c extension. > > cmake guys: could check_symbol_exists take an option for the extension to > use, maybe? > > Meanwhile, ok with this patch for kdelibs?
For what it's worth, David helped me out building KDE SVN on my Fedora 11 (Rawhide) laptop. The patches definitely fixed my problem and I was able to successfully build kdelibs (and all other components) overnight. David, thanks for your effort and your patience! -- Eelko Berkenpies _______________________________________________ Kde-buildsystem mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-buildsystem
