@@ -92,7 +92,9 @@ project (Jerry CXX C ASM)
92
92
set (MCU_SCRIPT_GENERATED_HEADER ${CMAKE_BINARY_DIR} /generated.h )
93
93
94
94
# 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" )
96
98
set (USE_JERRY_LIBC TRUE )
97
99
98
100
# Jerry's libc doesn't support Nuttx platform
@@ -189,6 +191,11 @@ project (Jerry CXX C ASM)
189
191
set (COMPILE_FLAGS_JERRY "-fno-builtin" )
190
192
set (LINKER_FLAGS_COMMON "-Wl,-z,noexecstack" )
191
193
194
+ # Turn off linking 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
+
192
199
# LTO
193
200
if ("${ENABLE_LTO} " STREQUAL "ON" )
194
201
set (COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -flto -fno-fat-lto-objects" )
@@ -228,13 +235,13 @@ project (Jerry CXX C ASM)
228
235
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" )
229
236
230
237
# Debug
231
- set (FLAGS_COMMON_DEBUG "-nostdlib " )
238
+ set (FLAGS_COMMON_DEBUG "" )
232
239
233
240
# Release
234
- set (FLAGS_COMMON_RELEASE "-Os -nostdlib " )
241
+ set (FLAGS_COMMON_RELEASE "-Os" )
235
242
236
243
# Unit tests
237
- set (FLAGS_COMMON_UNITTESTS "-O3 -nostdlib " )
244
+ set (FLAGS_COMMON_UNITTESTS "-O3" )
238
245
239
246
# Include directories
240
247
# Core interface
@@ -261,13 +268,6 @@ project (Jerry CXX C ASM)
261
268
file (GLOB SOURCE_UNIT_TEST_MAIN_MODULES tests/unit/*.cpp )
262
269
263
270
# Imported libraries
264
- # libc
265
- add_library (${PREFIX_IMPORTED_LIB} libc SHARED IMPORTED )
266
- execute_process (COMMAND ${CMAKE_C_COMPILER} ${FLAGS_COMMON_ARCH} -print-file-name=libc.so
267
- OUTPUT_VARIABLE IMPORTED_LIBC_LOCATION
268
- OUTPUT_STRIP_TRAILING_WHITESPACE )
269
- set_property (TARGET ${PREFIX_IMPORTED_LIB} libc
270
- PROPERTY IMPORTED_LOCATION ${IMPORTED_LIBC_LOCATION} )
271
271
# libgcc
272
272
add_library (${PREFIX_IMPORTED_LIB} libgcc STATIC IMPORTED )
273
273
execute_process (COMMAND ${CMAKE_C_COMPILER} ${FLAGS_COMMON_ARCH} -print-file-name=libgcc.a
@@ -311,7 +311,9 @@ project (Jerry CXX C ASM)
311
311
312
312
function (declare_targets_for_build_mode BUILD_MODE )
313
313
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 )
314
+ if (${USE_JERRY_LIBC} )
315
+ set (LIBC_TARGET_NAME ${BUILD_MODE_PREFIX_${BUILD_MODE}}.jerry-libc.${PLATFORM_L}.lib )
316
+ endif ()
315
317
316
318
function (declare_target_with_modifiers ) # modifiers are passed in ARGN implicit argument
317
319
set (CORE_TARGET_NAME ${BUILD_MODE_PREFIX_${BUILD_MODE}} )
@@ -420,7 +422,9 @@ project (Jerry CXX C ASM)
420
422
set (TARGET_NAME unit-${TARGET_NAME} )
421
423
422
424
set (CORE_TARGET_NAME unittests.jerry-core )
423
- set (LIBC_TARGET_NAME unittests.jerry-libc.${PLATFORM_L}.lib )
425
+ if (${USE_JERRY_LIBC} )
426
+ set (LIBC_TARGET_NAME unittests.jerry-libc.${PLATFORM_L}.lib )
427
+ endif ()
424
428
set (FDLIBM_TARGET_NAME unittests.jerry-fdlibm${SUFFIX_THIRD_PARTY_LIB} )
425
429
426
430
add_executable (${TARGET_NAME} ${SOURCE_UNIT_TEST_MAIN} )
0 commit comments