Skip to content

Commit 238c4df

Browse files
Introduce 'USE_COMPILER_DEFAULT_LIBC' for switching from jerry-libc to a libc, provided by compiler.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
1 parent 69bfcea commit 238c4df

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

CMakeLists.txt

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,9 @@ project (Jerry CXX C ASM)
9292
set(MCU_SCRIPT_GENERATED_HEADER ${CMAKE_BINARY_DIR}/generated.h)
9393

9494
# Should we use external libc?
95-
if(NOT DEFINED EXTERNAL_LIBC_INTERFACE OR EXTERNAL_LIBC_INTERFACE STREQUAL "UNDEFINED")
95+
if(DEFINED USE_COMPILER_DEFAULT_LIBC AND USE_COMPILER_DEFAULT_LIBC STREQUAL "YES")
96+
set(USE_JERRY_LIBC FALSE)
97+
elseif(NOT DEFINED EXTERNAL_LIBC_INTERFACE OR EXTERNAL_LIBC_INTERFACE STREQUAL "UNDEFINED")
9698
set(USE_JERRY_LIBC TRUE)
9799

98100
# Jerry's libc doesn't support Nuttx platform
@@ -189,6 +191,11 @@ project (Jerry CXX C ASM)
189191
set(COMPILE_FLAGS_JERRY "-fno-builtin")
190192
set(LINKER_FLAGS_COMMON "-Wl,-z,noexecstack")
191193

194+
# Turn off linkage to compiler's default libc, in case jerry-libc is used
195+
if(${USE_JERRY_LIBC})
196+
set(LINKER_FLAGS_COMMON "${LINKER_FLAGS_COMMON} -nostdlib")
197+
endif()
198+
192199
# LTO
193200
if("${ENABLE_LTO}" STREQUAL "ON")
194201
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -flto -fno-fat-lto-objects")
@@ -228,13 +235,13 @@ project (Jerry CXX C ASM)
228235
set(LINKER_FLAGS_COMMON_MCU_STM32F4 "-T${CMAKE_SOURCE_DIR}/third-party/STM32F4-Discovery_FW_V1.1.0/Project/Peripheral_Examples/FLASH_Program/TrueSTUDIO/FLASH_Program/stm32_flash.ld")
229236

230237
# Debug
231-
set(FLAGS_COMMON_DEBUG "-nostdlib")
238+
set(FLAGS_COMMON_DEBUG "")
232239

233240
# Release
234-
set(FLAGS_COMMON_RELEASE "-Os -nostdlib")
241+
set(FLAGS_COMMON_RELEASE "-Os")
235242

236243
# Unit tests
237-
set(FLAGS_COMMON_UNITTESTS "-O3 -nostdlib")
244+
set(FLAGS_COMMON_UNITTESTS "-O3")
238245

239246
# Include directories
240247
# Core interface
@@ -263,7 +270,7 @@ project (Jerry CXX C ASM)
263270
# Imported libraries
264271
# libc
265272
add_library(${PREFIX_IMPORTED_LIB}libc SHARED IMPORTED)
266-
execute_process(COMMAND ${CMAKE_C_COMPILER} ${FLAGS_COMMON_ARCH} -print-file-name=libc.so
273+
execute_process(COMMAND ${CMAKE_C_COMPILER} ${FLAGS_COMMON_ARCH} -print-file-name=libc.a
267274
OUTPUT_VARIABLE IMPORTED_LIBC_LOCATION
268275
OUTPUT_STRIP_TRAILING_WHITESPACE)
269276
set_property(TARGET ${PREFIX_IMPORTED_LIB}libc
@@ -311,7 +318,11 @@ project (Jerry CXX C ASM)
311318

312319
function(declare_targets_for_build_mode BUILD_MODE)
313320
set(TARGET_NAME ${BUILD_MODE_PREFIX_${BUILD_MODE}}.${PLATFORM_L})
314-
set(LIBC_TARGET_NAME ${BUILD_MODE_PREFIX_${BUILD_MODE}}.jerry-libc.${PLATFORM_L}.lib)
321+
if (${USE_JERRY_LIBC})
322+
set(LIBC_TARGET_NAME ${BUILD_MODE_PREFIX_${BUILD_MODE}}.jerry-libc.${PLATFORM_L}.lib)
323+
else()
324+
set(LIBC_TARGET_NAME ${PREFIX_IMPORTED_LIB}libc)
325+
endif()
315326

316327
function(declare_target_with_modifiers ) # modifiers are passed in ARGN implicit argument
317328
set(CORE_TARGET_NAME ${BUILD_MODE_PREFIX_${BUILD_MODE}})

0 commit comments

Comments
 (0)