Supporting build with gcc/g++ version 4.7.
Build was tested on arm-linux-gnueabi-gcc/g++ 4.7.3. JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
This commit is contained in:
+21
-6
@@ -15,7 +15,7 @@
|
|||||||
cmake_minimum_required (VERSION 2.8.12)
|
cmake_minimum_required (VERSION 2.8.12)
|
||||||
project (Jerry CXX C ASM)
|
project (Jerry CXX C ASM)
|
||||||
|
|
||||||
# Require g++ of version >= 4.8.0
|
# Require g++ of version >= 4.7.0
|
||||||
if(NOT CMAKE_COMPILER_IS_GNUCXX)
|
if(NOT CMAKE_COMPILER_IS_GNUCXX)
|
||||||
message(FATAL_ERROR "g++ compiler is required")
|
message(FATAL_ERROR "g++ compiler is required")
|
||||||
else()
|
else()
|
||||||
@@ -23,8 +23,8 @@ project (Jerry CXX C ASM)
|
|||||||
OUTPUT_VARIABLE GNU_CXX_VERSION
|
OUTPUT_VARIABLE GNU_CXX_VERSION
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
if(${GNU_CXX_VERSION} VERSION_LESS 4.8.0)
|
if(${GNU_CXX_VERSION} VERSION_LESS 4.7.0)
|
||||||
message(FATAL_ERROR "g++ compiler version 4.8.0 or higher required")
|
message(FATAL_ERROR "g++ compiler version 4.7.0 or higher required")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -177,7 +177,7 @@ project (Jerry CXX C ASM)
|
|||||||
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -g -gdwarf-4")
|
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -g -gdwarf-4")
|
||||||
|
|
||||||
# Warnings
|
# Warnings
|
||||||
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -Wall -Wextra -Wpedantic -Wlogical-op")
|
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -Wall -Wextra -pedantic -Wlogical-op")
|
||||||
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -Wformat-nonliteral -Winit-self -Wno-stack-protector")
|
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -Wformat-nonliteral -Winit-self -Wno-stack-protector")
|
||||||
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -Wconversion -Wsign-conversion -Wformat-security")
|
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -Wconversion -Wsign-conversion -Wformat-security")
|
||||||
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -Wmissing-declarations -Wno-attributes")
|
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -Wmissing-declarations -Wno-attributes")
|
||||||
@@ -250,6 +250,19 @@ project (Jerry CXX C ASM)
|
|||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
set_property(TARGET ${PREFIX_IMPORTED_LIB}libgcc
|
set_property(TARGET ${PREFIX_IMPORTED_LIB}libgcc
|
||||||
PROPERTY IMPORTED_LOCATION ${IMPORTED_LIBGCC_LOCATION})
|
PROPERTY IMPORTED_LOCATION ${IMPORTED_LIBGCC_LOCATION})
|
||||||
|
# libgcc_eh
|
||||||
|
add_library(${PREFIX_IMPORTED_LIB}libgcc_eh STATIC IMPORTED)
|
||||||
|
execute_process(COMMAND ${CMAKE_C_COMPILER} ${FLAGS_COMMON_ARCH} -print-file-name=libgcc_eh.a
|
||||||
|
OUTPUT_VARIABLE IMPORTED_LIBGCC_EH_LOCATION
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
if(EXISTS "${IMPORTED_LIBGCC_EH_LOCATION}")
|
||||||
|
set_property(TARGET ${PREFIX_IMPORTED_LIB}libgcc_eh
|
||||||
|
PROPERTY IMPORTED_LOCATION ${IMPORTED_LIBGCC_EH_LOCATION})
|
||||||
|
else()
|
||||||
|
# If libgcc_eh not found, reference libgcc instead
|
||||||
|
set_property(TARGET ${PREFIX_IMPORTED_LIB}libgcc_eh
|
||||||
|
PROPERTY IMPORTED_LOCATION ${IMPORTED_LIBGCC_LOCATION})
|
||||||
|
endif()
|
||||||
|
|
||||||
# Platform-specific configuration
|
# Platform-specific configuration
|
||||||
set(MODIFIERS_LISTS ${MODIFIERS_LISTS_${PLATFORM_EXT}})
|
set(MODIFIERS_LISTS ${MODIFIERS_LISTS_${PLATFORM_EXT}})
|
||||||
@@ -307,7 +320,8 @@ project (Jerry CXX C ASM)
|
|||||||
target_compile_definitions(${TARGET_NAME} PRIVATE ${DEFINES_JERRY})
|
target_compile_definitions(${TARGET_NAME} PRIVATE ${DEFINES_JERRY})
|
||||||
target_include_directories(${TARGET_NAME} PRIVATE ${INCLUDE_CORE_INTERFACE})
|
target_include_directories(${TARGET_NAME} PRIVATE ${INCLUDE_CORE_INTERFACE})
|
||||||
target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${INCLUDE_LIBC_INTERFACE})
|
target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${INCLUDE_LIBC_INTERFACE})
|
||||||
target_link_libraries(${TARGET_NAME} ${PLUGINS_TARGET_NAME} ${CORE_TARGET_NAME} ${LIBC_TARGET_NAME} ${PREFIX_IMPORTED_LIB}libgcc)
|
target_link_libraries(${TARGET_NAME} ${PLUGINS_TARGET_NAME} ${CORE_TARGET_NAME} ${LIBC_TARGET_NAME}
|
||||||
|
${PREFIX_IMPORTED_LIB}libgcc ${PREFIX_IMPORTED_LIB}libgcc_eh)
|
||||||
|
|
||||||
add_cppcheck_target(${TARGET_NAME})
|
add_cppcheck_target(${TARGET_NAME})
|
||||||
|
|
||||||
@@ -387,7 +401,8 @@ project (Jerry CXX C ASM)
|
|||||||
set_property(TARGET ${TARGET_NAME}
|
set_property(TARGET ${TARGET_NAME}
|
||||||
PROPERTY LINK_FLAGS "${COMPILE_FLAGS_JERRY} ${CXX_FLAGS_JERRY} ${FLAGS_COMMON_UNITTESTS} ${LINKER_FLAGS_COMMON}")
|
PROPERTY LINK_FLAGS "${COMPILE_FLAGS_JERRY} ${CXX_FLAGS_JERRY} ${FLAGS_COMMON_UNITTESTS} ${LINKER_FLAGS_COMMON}")
|
||||||
target_include_directories(${TARGET_NAME} PRIVATE ${INCLUDE_CORE_INTERFACE})
|
target_include_directories(${TARGET_NAME} PRIVATE ${INCLUDE_CORE_INTERFACE})
|
||||||
target_link_libraries(${TARGET_NAME} ${CORE_TARGET_NAME} ${PREFIX_IMPORTED_LIB}libc ${PREFIX_IMPORTED_LIB}libgcc)
|
target_link_libraries(${TARGET_NAME} ${CORE_TARGET_NAME} ${PREFIX_IMPORTED_LIB}libc
|
||||||
|
${PREFIX_IMPORTED_LIB}libgcc ${PREFIX_IMPORTED_LIB}libgcc_eh)
|
||||||
|
|
||||||
add_cppcheck_target(${TARGET_NAME})
|
add_cppcheck_target(${TARGET_NAME})
|
||||||
|
|
||||||
|
|||||||
@@ -39,10 +39,10 @@ enum
|
|||||||
static const jerry_extension_field_t jerry_extension_fields [JERRY_EXTENSION_FIELDS_NUMBER + 1] =
|
static const jerry_extension_field_t jerry_extension_fields [JERRY_EXTENSION_FIELDS_NUMBER + 1] =
|
||||||
{
|
{
|
||||||
#define EXTENSION_FIELD(_field_name, _type, _value) \
|
#define EXTENSION_FIELD(_field_name, _type, _value) \
|
||||||
{ # _field_name, JERRY_API_DATA_TYPE_ ## _type, _value },
|
{ # _field_name, JERRY_API_DATA_TYPE_ ## _type, { _value } },
|
||||||
# include EXTENSION_DESCRIPTION_HEADER
|
# include EXTENSION_DESCRIPTION_HEADER
|
||||||
#undef EXTENSION_FIELD
|
#undef EXTENSION_FIELD
|
||||||
#define EMPTY_FIELD_ENTRY { NULL, JERRY_API_DATA_TYPE_UNDEFINED, NULL }
|
#define EMPTY_FIELD_ENTRY { NULL, JERRY_API_DATA_TYPE_UNDEFINED, { NULL } }
|
||||||
EMPTY_FIELD_ENTRY
|
EMPTY_FIELD_ENTRY
|
||||||
#undef EMPTY_FIELD_ENTRY
|
#undef EMPTY_FIELD_ENTRY
|
||||||
};
|
};
|
||||||
@@ -87,7 +87,7 @@ static const jerry_extension_field_t jerry_extension_fields [JERRY_EXTENSION_FIE
|
|||||||
/* Functions' arguments description */
|
/* Functions' arguments description */
|
||||||
#define EXTENSION_ARG(_arg_index, _type) [_arg_index] = { \
|
#define EXTENSION_ARG(_arg_index, _type) [_arg_index] = { \
|
||||||
(JERRY_API_DATA_TYPE_ ## _type), \
|
(JERRY_API_DATA_TYPE_ ## _type), \
|
||||||
false /* just for initialization, should be overwritten upon call */ \
|
{ false } /* just for initialization, should be overwritten upon call */ \
|
||||||
}
|
}
|
||||||
#define EXTENSION_FUNCTION(_function_name, _function_to_call, _ret_value_type, _args_number, ...) \
|
#define EXTENSION_FUNCTION(_function_name, _function_to_call, _ret_value_type, _args_number, ...) \
|
||||||
static jerry_api_value_t jerry_extension_function_ ## _function_name ## _args [_args_number] = { \
|
static jerry_api_value_t jerry_extension_function_ ## _function_name ## _args [_args_number] = { \
|
||||||
@@ -103,13 +103,13 @@ static jerry_extension_function_t jerry_extension_functions [JERRY_EXTENSION_FUN
|
|||||||
#define EXTENSION_FUNCTION(_function_name, _function_to_call, _ret_value_type, _args_number, ...) \
|
#define EXTENSION_FUNCTION(_function_name, _function_to_call, _ret_value_type, _args_number, ...) \
|
||||||
{ \
|
{ \
|
||||||
# _function_name, jerry_extension_ ## _function_name ## _wrapper, \
|
# _function_name, jerry_extension_ ## _function_name ## _wrapper, \
|
||||||
{ JERRY_API_DATA_TYPE_ ## _ret_value_type, false }, \
|
{ JERRY_API_DATA_TYPE_ ## _ret_value_type, { false } }, \
|
||||||
jerry_extension_function_ ## _function_name ## _args, \
|
jerry_extension_function_ ## _function_name ## _args, \
|
||||||
_args_number \
|
_args_number \
|
||||||
},
|
},
|
||||||
# include EXTENSION_DESCRIPTION_HEADER
|
# include EXTENSION_DESCRIPTION_HEADER
|
||||||
#undef EXTENSION_FUNCTION
|
#undef EXTENSION_FUNCTION
|
||||||
#define EMPTY_FUNCTION_ENTRY { NULL, NULL, { JERRY_API_DATA_TYPE_VOID, false }, NULL, 0 }
|
#define EMPTY_FUNCTION_ENTRY { NULL, NULL, { JERRY_API_DATA_TYPE_VOID, { false } }, NULL, 0 }
|
||||||
EMPTY_FUNCTION_ENTRY
|
EMPTY_FUNCTION_ENTRY
|
||||||
#undef EMPTY_FUNCTION_ENTRY
|
#undef EMPTY_FUNCTION_ENTRY
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -59,10 +59,10 @@ typedef uint8_t mem_pool_chunk_index_t;
|
|||||||
typedef struct __attribute__ ((aligned (MEM_ALIGNMENT))) mem_pool_state_t
|
typedef struct __attribute__ ((aligned (MEM_ALIGNMENT))) mem_pool_state_t
|
||||||
{
|
{
|
||||||
/** Offset of first free chunk from the beginning of the pool (mem_pool_chunk_index_t) */
|
/** Offset of first free chunk from the beginning of the pool (mem_pool_chunk_index_t) */
|
||||||
unsigned int first_free_chunk : MEM_POOL_MAX_CHUNKS_NUMBER_LOG;
|
mem_pool_chunk_index_t first_free_chunk : MEM_POOL_MAX_CHUNKS_NUMBER_LOG;
|
||||||
|
|
||||||
/** Number of free chunks (mem_pool_chunk_index_t) */
|
/** Number of free chunks (mem_pool_chunk_index_t) */
|
||||||
unsigned int free_chunks_number : MEM_POOL_MAX_CHUNKS_NUMBER_LOG;
|
mem_pool_chunk_index_t free_chunks_number : MEM_POOL_MAX_CHUNKS_NUMBER_LOG;
|
||||||
|
|
||||||
/** Pointer to the next pool with same chunk size */
|
/** Pointer to the next pool with same chunk size */
|
||||||
mem_cpointer_t next_pool_cp : MEM_COMPRESSED_POINTER_WIDTH;
|
mem_cpointer_t next_pool_cp : MEM_COMPRESSED_POINTER_WIDTH;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
#include "literal.h"
|
#include "literal.h"
|
||||||
|
|
||||||
#define INVALID_VALUE 255
|
#define INVALID_VALUE 255
|
||||||
#define INVALID_LITERAL UINT32_MAX
|
#define INVALID_LITERAL ((uint32_t) -1)
|
||||||
|
|
||||||
/* Keywords. */
|
/* Keywords. */
|
||||||
typedef enum __attr_packed___
|
typedef enum __attr_packed___
|
||||||
|
|||||||
Reference in New Issue
Block a user