On 5/31/07, Karthik Krishnan <[EMAIL PROTECTED]> wrote:
Hi Mathieu,I had a few build errors too on my 64b machine, when linking a static library into a shared one such as : /usr/bin/ld: ...: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC The fix I've had is to stick the following lines in the CMakeLists of the appropriate libraries and it seems to work. (ripped off from KDE) : # with -fPIC IF(UNIX AND NOT WIN32) FIND_PROGRAM(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin ) IF(CMAKE_UNAME) EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR) SET(CMAKE_SYSTEM_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR} CACHE INTERNAL "processor type (i386 and x86_64)") IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") ADD_DEFINITIONS(-fPIC) ENDIF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") ENDIF(CMAKE_UNAME) ENDIF(UNIX AND NOT WIN32)
Why not use directly CMAKE_SYSTEM_PROCESSOR ? IF( CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" ) SET_TARGET_PROPERTIES(bar PROPERTIES COMPILE_FLAGS "-fPIC") ENDIF( CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" ) thanks, -Mathieu _______________________________________________ CMake mailing list [email protected] http://www.cmake.org/mailman/listinfo/cmake
