mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
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:
parent
6d9bea824d
commit
bb258ad1e2
@ -15,7 +15,7 @@
|
||||
cmake_minimum_required (VERSION 2.8.12)
|
||||
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)
|
||||
message(FATAL_ERROR "g++ compiler is required")
|
||||
else()
|
||||
@ -23,8 +23,8 @@ project (Jerry CXX C ASM)
|
||||
OUTPUT_VARIABLE GNU_CXX_VERSION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
if(${GNU_CXX_VERSION} VERSION_LESS 4.8.0)
|
||||
message(FATAL_ERROR "g++ compiler version 4.8.0 or higher required")
|
||||
if(${GNU_CXX_VERSION} VERSION_LESS 4.7.0)
|
||||
message(FATAL_ERROR "g++ compiler version 4.7.0 or higher required")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -177,7 +177,7 @@ project (Jerry CXX C ASM)
|
||||
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -g -gdwarf-4")
|
||||
|
||||
# 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} -Wconversion -Wsign-conversion -Wformat-security")
|
||||
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -Wmissing-declarations -Wno-attributes")
|
||||
@ -250,6 +250,19 @@ project (Jerry CXX C ASM)
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set_property(TARGET ${PREFIX_IMPORTED_LIB}libgcc
|
||||
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
|
||||
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_include_directories(${TARGET_NAME} PRIVATE ${INCLUDE_CORE_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})
|
||||
|
||||
@ -387,7 +401,8 @@ project (Jerry CXX C ASM)
|
||||
set_property(TARGET ${TARGET_NAME}
|
||||
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_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})
|
||||
|
||||
|
||||
@ -39,10 +39,10 @@ enum
|
||||
static const jerry_extension_field_t jerry_extension_fields [JERRY_EXTENSION_FIELDS_NUMBER + 1] =
|
||||
{
|
||||
#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
|
||||
#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
|
||||
#undef EMPTY_FIELD_ENTRY
|
||||
};
|
||||
@ -87,7 +87,7 @@ static const jerry_extension_field_t jerry_extension_fields [JERRY_EXTENSION_FIE
|
||||
/* Functions' arguments description */
|
||||
#define EXTENSION_ARG(_arg_index, _type) [_arg_index] = { \
|
||||
(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, ...) \
|
||||
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, ...) \
|
||||
{ \
|
||||
# _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, \
|
||||
_args_number \
|
||||
},
|
||||
# include EXTENSION_DESCRIPTION_HEADER
|
||||
#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
|
||||
#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
|
||||
{
|
||||
/** 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) */
|
||||
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 */
|
||||
mem_cpointer_t next_pool_cp : MEM_COMPRESSED_POINTER_WIDTH;
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
#include "literal.h"
|
||||
|
||||
#define INVALID_VALUE 255
|
||||
#define INVALID_LITERAL UINT32_MAX
|
||||
#define INVALID_LITERAL ((uint32_t) -1)
|
||||
|
||||
/* Keywords. */
|
||||
typedef enum __attr_packed___
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user