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 [email protected] http://www.cmake.org/mailman/listinfo/cmake
