diff options
-rw-r--r-- | cmake/glibc-compat-symbols.h | 15 | ||||
-rw-r--r-- | cmake/toolchain.gcc-default.cmake | 5 | ||||
-rw-r--r-- | cmake/toolchain.gcc-x86_32.cmake | 2 |
3 files changed, 21 insertions, 1 deletions
diff --git a/cmake/glibc-compat-symbols.h b/cmake/glibc-compat-symbols.h new file mode 100644 index 00000000..482e2326 --- /dev/null +++ b/cmake/glibc-compat-symbols.h @@ -0,0 +1,15 @@ +#ifndef __GLIBC_COMPAT_SYMBOLS_H__ +#define __GLIBC_COMPAT_SYMBOLS_H__ 1 + +/** + * add other architecures below + */ +#ifdef __amd64__ + #define GLIBC_COMPAT_SYMBOL(FFF) __asm__(".symver " #FFF "," #FFF "@GLIBC_2.2.5"); +#else + #define GLIBC_COMPAT_SYMBOL(FFF) __asm__(".symver " #FFF "," #FFF "@GLIBC_2.0"); +#endif /*__amd64__*/ + +GLIBC_COMPAT_SYMBOL(memcpy) + +#endif /*__GLIBC_COMPAT_SYMBOLS_H__*/ diff --git a/cmake/toolchain.gcc-default.cmake b/cmake/toolchain.gcc-default.cmake index 0f3c4ff6..3b2c9cfd 100644 --- a/cmake/toolchain.gcc-default.cmake +++ b/cmake/toolchain.gcc-default.cmake @@ -1,5 +1,10 @@ # For normal gcc compilation, but use static-libgcc +set(CMAKE_C_FLAGS "-include ${CMAKE_MODULE_PATH}/glibc-compat-symbols.h") + +set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c++ flags") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags") + set(LINKER_FLAGS "-static-libgcc") set(CMAKE_SHARED_LINKER_FLAGS "${LINKER_FLAGS}" CACHE STRING "linker flags" FORCE) diff --git a/cmake/toolchain.gcc-x86_32.cmake b/cmake/toolchain.gcc-x86_32.cmake index 33dee0e8..890f6e11 100644 --- a/cmake/toolchain.gcc-x86_32.cmake +++ b/cmake/toolchain.gcc-x86_32.cmake @@ -4,7 +4,7 @@ set(CMAKE_SYSTEM_PROCESSOR "x86") link_directories("/usr/lib32") -set(CMAKE_C_FLAGS "-m32") +set(CMAKE_C_FLAGS "-m32 -include ${CMAKE_MODULE_PATH}/glibc-compat-symbols.h") set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c++ flags") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags") |