diff -uNr kdelibs-4.2.85.orig/ConfigureChecks.cmake kdelibs-4.2.85/ConfigureChecks.cmake --- kdelibs-4.2.85.orig/ConfigureChecks.cmake 1970-01-01 01:00:00.000000000 +0100 +++ kdelibs-4.2.85/ConfigureChecks.cmake 2009-05-18 13:38:41.000000000 +0200 @@ -6,6 +6,7 @@ include(CheckIncludeFile) include(CheckIncludeFiles) include(CheckSymbolExists) +include(CheckCXXSymbolExists) include(CheckFunctionExists) include(CheckLibraryExists) include(CheckPrototypeExists) @@ -232,7 +233,15 @@ check_function_exists(random HAVE_RANDOM) # kdecore/fakes.c check_function_exists(strlcpy HAVE_STRLCPY) # kdecore/fakes.c check_function_exists(strlcat HAVE_STRLCAT) # kdecore/fakes.c -check_function_exists(strcasestr HAVE_STRCASESTR) # kdecore/fakes.c +check_cxx_symbol_exists(__CORRECT_ISO_CPP_STRING_H_PROTO "string.h" HAVE_STRCASESTR_OVERLOAD) # glibc-2.9 strangeness +if (HAVE_STRCASESTR_OVERLOAD) + message(STATUS "string.h defines __CORRECT_ISO_CPP_STRING_H_PROTO") + set(HAVE_STRCASESTR 1) + set(HAVE_STRCASESTR_PROTO 1) +else() + check_function_exists(strcasestr HAVE_STRCASESTR) # kdecore/fakes.c + check_prototype_exists(strcasestr string.h HAVE_STRCASESTR_PROTO) +endif() check_function_exists(setenv HAVE_SETENV) # kdecore/fakes.c check_function_exists(seteuid HAVE_SETEUID) # kdecore/fakes.c check_function_exists(setmntent HAVE_SETMNTENT) # solid, kio, kdecore @@ -245,7 +254,6 @@ check_prototype_exists(mkdtemp "stdlib.h;unistd.h" HAVE_MKDTEMP_PROTO) check_prototype_exists(mkstemp "stdlib.h;unistd.h" HAVE_MKSTEMP_PROTO) check_prototype_exists(strlcat string.h HAVE_STRLCAT_PROTO) -check_prototype_exists(strcasestr string.h HAVE_STRCASESTR_PROTO) check_prototype_exists(strlcpy string.h HAVE_STRLCPY_PROTO) check_prototype_exists(random stdlib.h HAVE_RANDOM_PROTO) check_prototype_exists(res_init "sys/types.h;netinet/in.h;arpa/nameser.h;resolv.h" HAVE_RES_INIT_PROTO) diff -uNr kdelibs-4.2.85.orig/cmake/modules/CheckCXXSymbolExists.cmake kdelibs-4.2.85/cmake/modules/CheckCXXSymbolExists.cmake --- kdelibs-4.2.85.orig/cmake/modules/CheckCXXSymbolExists.cmake 1970-01-01 01:00:00.000000000 +0100 +++ kdelibs-4.2.85/cmake/modules/CheckCXXSymbolExists.cmake 2009-05-18 13:38:41.000000000 +0200 @@ -0,0 +1,71 @@ +# - Check if the symbol exists in include files, in C++ mode +# Forked off cmake's CheckSymbolExists.cmake +# CHECK_CXX_SYMBOL_EXISTS(SYMBOL FILES VARIABLE) +# +# SYMBOL - symbol +# FILES - include files to check +# VARIABLE - variable to return result +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link + +MACRO(CHECK_CXX_SYMBOL_EXISTS SYMBOL FILES VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + SET(CMAKE_CONFIGURABLE_FILE_CONTENT "/* */\n") + SET(MACRO_CHECK_SYMBOL_EXISTS_FLAGS ${CMAKE_REQUIRED_FLAGS}) + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_SYMBOL_EXISTS_LIBS + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ELSE(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_SYMBOL_EXISTS_LIBS) + ENDIF(CMAKE_REQUIRED_LIBRARIES) + IF(CMAKE_REQUIRED_INCLUDES) + SET(CMAKE_SYMBOL_EXISTS_INCLUDES + "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") + ELSE(CMAKE_REQUIRED_INCLUDES) + SET(CMAKE_SYMBOL_EXISTS_INCLUDES) + ENDIF(CMAKE_REQUIRED_INCLUDES) + FOREACH(FILE ${FILES}) + SET(CMAKE_CONFIGURABLE_FILE_CONTENT + "${CMAKE_CONFIGURABLE_FILE_CONTENT}#include <${FILE}>\n") + ENDFOREACH(FILE) + SET(CMAKE_CONFIGURABLE_FILE_CONTENT + "${CMAKE_CONFIGURABLE_FILE_CONTENT}\nvoid cmakeRequireSymbol(int dummy,...){(void)dummy;}\nint main()\n{\n#ifndef ${SYMBOL}\n cmakeRequireSymbol(0,&${SYMBOL});\n#endif\n return 0;\n}\n") + + CONFIGURE_FILE("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in" + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.cxx" @ONLY) + + MESSAGE(STATUS "Looking for ${SYMBOL}") + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.cxx + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS + -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_SYMBOL_EXISTS_FLAGS} + "${CHECK_SYMBOL_EXISTS_LIBS}" + "${CMAKE_SYMBOL_EXISTS_INCLUDES}" + OUTPUT_VARIABLE OUTPUT) + IF(${VARIABLE}) + MESSAGE(STATUS "Looking for ${SYMBOL} - found") + SET(${VARIABLE} 1 CACHE INTERNAL "Have symbol ${SYMBOL}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the ${SYMBOL} " + "exist passed with the following output:\n" + "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.cxx:\n" + "${CMAKE_CONFIGURABLE_FILE_CONTENT}\n") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for ${SYMBOL} - not found.") + SET(${VARIABLE} "" CACHE INTERNAL "Have symbol ${SYMBOL}") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the ${SYMBOL} " + "exist failed with the following output:\n" + "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.cxx:\n" + "${CMAKE_CONFIGURABLE_FILE_CONTENT}\n") + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_CXX_SYMBOL_EXISTS)