CHECK_TYPE_SIZE returns incorrect (empty) values of types sizes when the LDFLAGS variable contains "-Wl,--gc-sections".
This bug causes compilation failures in probably all packages which use CHECK_TYPE_SIZE. I'm attaching 2 files which help to reproduce this bug. Steps to reproduce: 1. Save the attachments to ${PROJECT_SOURCE_DIR} 2. Run: export LDFLAGS="-Wl,--gc-sections" 3. Run: cmake ${PROJECT_SOURCE_DIR} 4. Read ${PROJECT_BINARY_DIR}/config.h I use CMake 2.6.0. -- Arfrever Frehtes Taifersar Arahesis
cmake_minimum_required(VERSION 2.6.0) include(CheckTypeSize) CHECK_TYPE_SIZE("char" SIZE_OF_CHAR) CHECK_TYPE_SIZE("wchar_t" SIZE_OF_WCHAR_T) CHECK_TYPE_SIZE("short" SIZE_OF_SHORT) CHECK_TYPE_SIZE("int" SIZE_OF_INT) CHECK_TYPE_SIZE("long" SIZE_OF_LONG) CHECK_TYPE_SIZE("long long" SIZE_OF_LONG_LONG) CHECK_TYPE_SIZE("float" SIZE_OF_FLOAT) CHECK_TYPE_SIZE("double" SIZE_OF_DOUBLE) CHECK_TYPE_SIZE("long double" SIZE_OF_LONG_DOUBLE) configure_file(${PROJECT_SOURCE_DIR}/config.h.in ${PROJECT_BINARY_DIR}/config.h)
#ifndef CONFIG_H #define CONFIG_H #define SIZE_OF_CHAR ${SIZE_OF_CHAR} #define SIZE_OF_WCHAR_T ${SIZE_OF_WCHAR_T} #define SIZE_OF_SHORT ${SIZE_OF_SHORT} #define SIZE_OF_INT ${SIZE_OF_INT} #define SIZE_OF_LONG ${SIZE_OF_LONG} #define SIZE_OF_LONG_LONG ${SIZE_OF_LONG_LONG} #define SIZE_OF_FLOAT ${SIZE_OF_FLOAT} #define SIZE_OF_DOUBLE ${SIZE_OF_DOUBLE} #define SIZE_OF_LONG_DOUBLE ${SIZE_OF_LONG_DOUBLE} #endif
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake