diff options
author | Vladislav Vaintroub <wlad@mariadb.com> | 2016-01-07 14:45:40 +0100 |
---|---|---|
committer | Vladislav Vaintroub <wlad@mariadb.com> | 2016-01-07 14:45:40 +0100 |
commit | 5f48b61509e4bc0fcb4e679abe51a6fc2dbb6359 (patch) | |
tree | 043f7a89c07bb5d4674351a9cc68b4d23acbabd3 /cmake/libutils.cmake | |
parent | ff2482026996d007689f41d522fb4d8289143a6b (diff) | |
download | mariadb-git-5f48b61509e4bc0fcb4e679abe51a6fc2dbb6359.tar.gz |
MDEV-9298 : Build failure when linking libmysql.
If GCC or CLang compile with link time optimization (-flto),
they throw an error during link , when lto sees a
function (e.g mysql_real_connect) is redeclared as "external void *"
in libmysql_exports.cc
The fix disables -flto for generated libmysql_exports.cc
Diffstat (limited to 'cmake/libutils.cmake')
-rw-r--r-- | cmake/libutils.cmake | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake index cca0032962d..41b7d9d1d86 100644 --- a/cmake/libutils.cmake +++ b/cmake/libutils.cmake @@ -87,6 +87,11 @@ MACRO(CREATE_EXPORT_FILE VAR TARGET API_FUNCTIONS) ENDFOREACH() SET(CONTENT "${CONTENT} (void *)0\n}\;") CONFIGURE_FILE_CONTENT(${CONTENT} ${EXPORTS}) + # Avoid "function redeclared as variable" error + # when using gcc/clang option -flto(link time optimization) + IF(" ${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS} " MATCHES " -flto") + SET_SOURCE_FILES_PROPERTIES(${EXPORTS} PROPERTIES COMPILE_FLAGS "-fno-lto") + ENDIF() SET(${VAR} ${EXPORTS}) ENDIF() ENDMACRO() |