diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 2b8773329..000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,421 +0,0 @@ -image: 10.113.64.54:5000/escargot/escargot:latest -build_x64_release: - stage: build - tags: - - escargot_main_build - before_script: - - unset TIZEN_SDK_HOME - - rm -f .git/index.lock - - rm -f .git/modules/third_party/GCutil/index.lock - - git submodule deinit -f third_party/GCutil - - git submodule init - - git submodule update third_party/GCutil - - ARCH=x64 MODE=release ./build_third_party.sh - - make clean - script: - - VENDORTEST=1 make x64.interpreter.release -j$(nproc) - artifacts: - paths: - - out/linux/x64/interpreter/release/escargot - -test_x64_release_sunspider: - stage: test - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x64/interpreter/release/escargot ./escargot - script: ./escargot test/vendortest/SunSpider/tests/sunspider-1.0.2/*.js; exit $?; - dependencies: - - build_x64_release - -test_x64_release_octane: - stage: test - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/octane/index.lock - - git submodule deinit -f test/octane - - git submodule init - - git submodule update test/octane - - cp out/linux/x64/interpreter/release/escargot ./escargot - script: make run-octane | tail -1 > out/octane_result; if ! cat out/octane_result | grep -c 'Score' > /dev/null; then exit 1; fi - dependencies: - - build_x64_release - -test_x64_release_test262: - stage: test - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/test262/index.lock - - git submodule deinit -f test/test262 - - git submodule init - - git submodule update test/test262 - - cp out/linux/x64/interpreter/release/escargot ./escargot - script: make run-test262; exit $?; - dependencies: - - build_x64_release - -test_x64_release_jetstream_only_cdjs: - stage: test - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x64/interpreter/release/escargot ./escargot - script: make run-jetstream-only-cdjs; if cat test/vendortest/driver/jetstream/jetstream-result-raw.res | grep -c 'NaN' > /dev/null; then exit 1; fi; exit $?; - dependencies: - - build_x64_release - -test_x64_release_jetstream_only_simple: - stage: test - tags: - - escargot_allow_slow - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x64/interpreter/release/escargot ./escargot - script: make run-jetstream-only-simple; if cat test/vendortest/driver/jetstream/jetstream-result-raw.res | grep -c 'NaN' > /dev/null; then exit 1; fi; exit $?; - dependencies: - - build_x64_release - -test_x64_release_spidermonkey: - stage: test - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x64/interpreter/release/escargot ./escargot - script: make run-spidermonkey-full; exit $?; - dependencies: - - build_x64_release - -test_x64_release_internal: - stage: test - tags: - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x64/interpreter/release/escargot ./escargot - script: make run-internal-test; exit $?; - dependencies: - - build_x64_release - -test_x64_release_v8: - stage: test - tags: - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x64/interpreter/release/escargot ./escargot - script: make run-v8; exit $?; - dependencies: - - build_x64_release - -test_x64_release_chakracore: - stage: test - tags: - - escargot_allow_slow - before_script: - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x64/interpreter/release/escargot ./escargot - script: make run-chakracore; exit $?; - dependencies: - - build_x64_release - -test_x64_release_jsc: - stage: test - tags: - - escargot_allow_slow - before_script: - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x64/interpreter/release/escargot ./escargot - script: make run-jsc-stress; exit $?; - dependencies: - - build_x64_release - -############################################################################### - -build_x86_release: - stage: build - tags: - - escargot_main_build - before_script: - - unset TIZEN_SDK_HOME - - rm -f .git/index.lock - - rm -f .git/modules/third_party/GCutil/index.lock - - git submodule deinit -f third_party/GCutil - - git submodule init - - git submodule update third_party/GCutil - - ARCH=x86 MODE=release ./build_third_party.sh - - make clean - script: - - VENDORTEST=1 make x86.interpreter.release -j$(nproc) - artifacts: - paths: - - out/linux/x86/interpreter/release/escargot - -test_x86_release_sunspider: - stage: test - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x86/interpreter/release/escargot ./escargot - script: ./escargot test/vendortest/SunSpider/tests/sunspider-1.0.2/*.js; exit $?; - dependencies: - - build_x86_release - -test_x86_release_octane: - stage: test - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/octane/index.lock - - git submodule deinit -f test/octane - - git submodule init - - git submodule update test/octane - - cp out/linux/x86/interpreter/release/escargot ./escargot - script: make run-octane | tail -1 > out/octane_result; if ! cat out/octane_result | grep -c 'Score' > /dev/null; then exit 1; fi - dependencies: - - build_x86_release - -test_x86_release_test262: - stage: test - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/test262/index.lock - - git submodule deinit -f test/test262 - - git submodule init - - git submodule update test/test262 - - cp out/linux/x86/interpreter/release/escargot ./escargot - script: make run-test262; exit $?; - dependencies: - - build_x86_release - -test_x86_release_jetstream_only_cdjs: - stage: test - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x86/interpreter/release/escargot ./escargot - script: make run-jetstream-only-cdjs; if cat test/vendortest/driver/jetstream/jetstream-result-raw.res | grep -c 'NaN' > /dev/null; then exit 1; fi; exit $?; - dependencies: - - build_x86_release - -test_x86_release_jetstream_only_simple: - stage: test - tags: - - escargot_allow_slow - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x86/interpreter/release/escargot ./escargot - script: make run-jetstream-only-simple; if cat test/vendortest/driver/jetstream/jetstream-result-raw.res | grep -c 'NaN' > /dev/null; then exit 1; fi; exit $?; - dependencies: - - build_x86_release - -test_x86_release_spidermonkey: - stage: test - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x86/interpreter/release/escargot ./escargot - script: make run-spidermonkey-full; exit $?; - dependencies: - - build_x86_release - -test_x86_release_internal: - stage: test - tags: - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x86/interpreter/release/escargot ./escargot - script: make run-internal-test; exit $?; - dependencies: - - build_x86_release - -test_x86_release_v8: - stage: test - tags: - - escargot_allow_slow - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x86/interpreter/release/escargot ./escargot - script: make run-v8; exit $?; - dependencies: - - build_x86_release - -test_x86_release_chakracore: - stage: test - tags: - - escargot_allow_slow - before_script: - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x86/interpreter/release/escargot ./escargot - script: make run-chakracore; exit $?; - dependencies: - - build_x86_release - -test_x86_release_jsc: - stage: test - tags: - - escargot_allow_slow - before_script: - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x86/interpreter/release/escargot ./escargot - script: make run-jsc-stress; exit $?; - dependencies: - - build_x86_release - -############################################################################### - -build_x64_debug: - stage: build - tags: - - escargot_main_build - before_script: - - unset TIZEN_SDK_HOME - - rm -f .git/index.lock - - rm -f .git/modules/third_party/GCutil/index.lock - - git submodule deinit -f third_party/GCutil - - git submodule init - - git submodule update third_party/GCutil - - ARCH=x64 MODE=debug ./build_third_party.sh - - make clean - script: - - VENDORTEST=1 make x64.interpreter.debug -j$(nproc) - artifacts: - paths: - - out/linux/x64/interpreter/debug/escargot - -test_x64_debug_sunspider: - stage: test - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x64/interpreter/debug/escargot ./escargot - script: ./escargot test/vendortest/SunSpider/tests/sunspider-1.0.2/*.js; exit $?; - dependencies: - - build_x64_debug - -#test_x64_debug_octane: -# stage: test -# before_script: -# - git submodule deinit -f test/octane -# - git submodule init -# - git submodule update test/octane -# - cp out/linux/x64/interpreter/debug/escargot ./escargot -# script: make run-octane | tail -1 > out/octane_result; if ! cat out/octane_result | grep -c 'Score' > /dev/null; then exit 1; fi -# dependencies: -# - build_x64_debug -# -#test_x64_debug_test262: -# stage: test -# before_script: -# - git submodule deinit -f test/test262 -# - git submodule init -# - git submodule update test/test262 -# - cp out/linux/x64/interpreter/debug/escargot ./escargot -# script: make run-test262; exit $?; -# dependencies: -# - build_x64_debug -# -################################################################################ - -build_x86_debug: - stage: build - tags: - - escargot_main_build - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/third_party/GCutil/index.lock - - unset TIZEN_SDK_HOME - - git submodule deinit -f third_party/GCutil - - git submodule init - - git submodule update third_party/GCutil - - ARCH=x86 MODE=debug ./build_third_party.sh - - make clean - script: - - VENDORTEST=1 make x86.interpreter.debug -j$(nproc) - artifacts: - paths: - - out/linux/x86/interpreter/debug/escargot - -test_x86_debug_sunspider: - stage: test - before_script: - - rm -f .git/index.lock - - rm -f .git/modules/test/vendortest/index.lock - - git submodule deinit -f test/vendortest - - git submodule init - - git submodule update test/vendortest - - cp out/linux/x86/interpreter/debug/escargot ./escargot - script: ./escargot test/vendortest/SunSpider/tests/sunspider-1.0.2/*.js; exit $?; - dependencies: - - build_x86_debug - -#test_x86_debug_octane: -# stage: test -# before_script: -# - git submodule deinit -f test/octane -# - git submodule init -# - git submodule update test/octane -# - cp out/linux/x86/interpreter/debug/escargot ./escargot -# script: make run-octane | tail -1 > out/octane_result; if ! cat out/octane_result | grep -c 'Score' > /dev/null; then exit 1; fi -# dependencies: -# - build_x86_debug -# -#test_x86_debug_test262: -# stage: test -# before_script: -# - git submodule deinit -f test/test262 -# - git submodule init -# - git submodule update test/test262 -# script: make run-test262; exit $?; -# dependencies: -# - build_x86_debug -# diff --git a/CMakeLists.txt b/CMakeLists.txt index 5dff72767..1e22f6084 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,8 @@ IF (NOT DEFINED ESCARGOT_ARCH) SET(ESCARGOT_ARCH "arm") ELSEIF (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64") SET(ESCARGOT_ARCH "aarch64") + ELSEIF (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "riscv64") + SET(ESCARGOT_ARCH "riscv64") ENDIF() ENDIF() diff --git a/build/config.cmake b/build/config.cmake index 71d188928..dbd194bed 100644 --- a/build/config.cmake +++ b/build/config.cmake @@ -112,7 +112,7 @@ ENDIF() IF (ESCARGOT_USE_CUSTOM_LOGGING) SET (ESCARGOT_DEFINITIONS ${ESCARGOT_DEFINITIONS} -DENABLE_CUSTOM_LOGGING) -ELSEIF (${ESCARGOT_HOST} STREQUAL "tizen_obs") +ELSEIF (${ESCARGOT_HOST} STREQUAL "tizen" OR ${ESCARGOT_HOST} STREQUAL "tizen_obs") PKG_CHECK_MODULES (DLOG REQUIRED dlog) SET (ESCARGOT_LIBRARIES ${ESCARGOT_LIBRARIES} ${DLOG_LIBRARIES}) SET (ESCARGOT_INCDIRS ${ESCARGOT_INCDIRS} ${DLOG_INCLUDE_DIRS}) diff --git a/build/target.cmake b/build/target.cmake index 362d23360..ffbe1b045 100644 --- a/build/target.cmake +++ b/build/target.cmake @@ -90,10 +90,13 @@ IF (${ESCARGOT_HOST} STREQUAL "linux") SET (ESCARGOT_BUILD_32BIT ON) ELSEIF (${ESCARGOT_ARCH} STREQUAL "aarch64") SET (ESCARGOT_BUILD_64BIT ON) + ELSEIF (${ESCARGOT_ARCH} STREQUAL "riscv64") + SET (ESCARGOT_BUILD_64BIT ON) + SET (ESCARGOT_BUILD_64BIT_LARGE ON) ELSE() MESSAGE (FATAL_ERROR ${ESCARGOT_ARCH} " is unsupported") ENDIF() -ELSEIF (${ESCARGOT_HOST} STREQUAL "tizen_obs") +ELSEIF (${ESCARGOT_HOST} STREQUAL "tizen" OR ${ESCARGOT_HOST} STREQUAL "tizen_obs") FIND_PACKAGE (PkgConfig REQUIRED) # default set of LDFLAGS SET (ESCARGOT_LDFLAGS -lpthread -lrt -Wl,--gc-sections) @@ -113,6 +116,10 @@ ELSEIF (${ESCARGOT_HOST} STREQUAL "tizen_obs") SET (ESCARGOT_CXXFLAGS_DEBUG -O1) SET (ESCARGOT_CXXFLAGS_RELEASE -O2) ELSEIF (${ESCARGOT_ARCH} STREQUAL "aarch64") + SET (ESCARGOT_BUILD_64BIT ON) + SET (ESCARGOT_BUILD_64BIT_LARGE ON) + ELSEIF (${ESCARGOT_ARCH} STREQUAL "riscv64") + SET (ESCARGOT_BUILD_64BIT ON) SET (ESCARGOT_BUILD_64BIT_LARGE ON) ELSE() MESSAGE (FATAL_ERROR ${ESCARGOT_ARCH} " is unsupported") diff --git a/packaging/escargot.spec b/packaging/escargot.spec index 586021aa9..bf74ee5f6 100644 --- a/packaging/escargot.spec +++ b/packaging/escargot.spec @@ -245,6 +245,9 @@ CXXFLAGS+=' -fno-lto ' %ifarch x86_64 %define tizen_arch x86_64 %endif +%ifarch riscv64 +%define tizen_arch riscv64 +%endif %if "%{rpm}" == "wearable" CFLAGS+=' -Os ' @@ -252,18 +255,23 @@ CXXFLAGS+=' -Os ' %endif %if "%{?enable_test}" == "1" -CFLAGS+=' -DESCARGOT_ENABLE_TEST -DESCARGOT_ENABLE_TEMPORAL ' -CXXFLAGS+=' -DESCARGOT_ENABLE_TEST -DESCARGOT_ENABLE_TEMPORAL ' -%endif - cmake CMakeLists.txt -H./ -Bbuild/out_tizen_%{rpm} -DLIBDIR=%{_libdir} -DINCLUDEDIR=%{_includedir} -DTIZEN_MAJOR_VERSION='%{tizen_version_major}' \ -DESCARGOT_ARCH='%{tizen_arch}' -DESCARGOT_WASM='%{enable_wasm}' -DESCARGOT_DEBUGGER='%{enable_debugger}' \ --DESCARGOT_THREADING=ON -DESCARGOT_TCO=ON -DESCARGOT_MODE=release -DESCARGOT_HOST=tizen_obs -DESCARGOT_OUTPUT=shared_lib -G Ninja -pushd build/out_tizen_%{rpm} -ninja -v -popd +-DESCARGOT_THREADING=ON -DESCARGOT_TCO=ON -DESCARGOT_MODE=release -DESCARGOT_HOST=tizen -DESCARGOT_OUTPUT=shared_lib -DESCARGOT_TEST=ON -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -G Ninja +%else +cmake CMakeLists.txt -H./ -Bbuild/out_tizen_%{rpm} -DLIBDIR=%{_libdir} -DINCLUDEDIR=%{_includedir} -DTIZEN_MAJOR_VERSION='%{tizen_version_major}' \ +-DESCARGOT_ARCH='%{tizen_arch}' -DESCARGOT_WASM='%{enable_wasm}' -DESCARGOT_DEBUGGER='%{enable_debugger}' \ +-DESCARGOT_THREADING=ON -DESCARGOT_MODE=release -DESCARGOT_HOST=tizen -DESCARGOT_OUTPUT=shared_lib -G Ninja +%endif + +cmake --build build/out_tizen_%{rpm} %if "%{?enable_shell}" == "1" + +%if "%{?enable_test}" == "1" +CXXFLAGS+=' -DESCARGOT_ENABLE_TEST ' +%endif + g++ src/shell/Shell.cpp -std=c++11 -Lbuild/out_tizen_%{rpm} -Isrc/ -Ithird_party/GCutil -Ithird_party/GCutil/bdwgc/include -o build/out_tizen_%{rpm}/escargot -O2 -DNDEBUG -Wl,-rpath=\$ORIGIN ${CXXFLAGS} -lescargot -lpthread g++ tools/test/test-data-runner/test-data-runner.cpp -o build/out_tizen_%{rpm}/test-data-runner -std=c++11 ${CXXFLAGS} -lpthread %endif diff --git a/src/Escargot.h b/src/Escargot.h index 7d9202887..f0085df21 100755 --- a/src/Escargot.h +++ b/src/Escargot.h @@ -249,6 +249,12 @@ if (f.type == Type::B) { puts("failed in msvc."); } #elif defined(__aarch64__) #define CPU_ARM64 +#elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 32 +#define CPU_RISCV32 + +#elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64 +#define CPU_RISCV64 + #else #error "Could't find cpu arch." #endif diff --git a/third_party/double_conversion/utils.h b/third_party/double_conversion/utils.h index c8ffbd539..987dcc30d 100644 --- a/third_party/double_conversion/utils.h +++ b/third_party/double_conversion/utils.h @@ -61,7 +61,8 @@ defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ defined(__SH4__) || defined(__alpha__) || \ defined(_MIPS_ARCH_MIPS32R2) || \ - defined(__AARCH64EL__) + defined(__AARCH64EL__) || \ + defined(__riscv) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) #if defined(_WIN32)