Skip to content
This repository was archived by the owner on Aug 2, 2022. It is now read-only.

Bump to llvm9 #896

Merged
merged 22 commits into from
Jun 11, 2020
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .cicd/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ if [[ $(uname) == 'Darwin' ]]; then

# You can't use chained commands in execute
cd $BUILD_DIR
cmake ..
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$JOBS

else # Linux
Expand All @@ -19,7 +19,7 @@ else # Linux

# PRE_COMMANDS: Executed pre-cmake
PRE_COMMANDS="cd $MOUNTED_DIR/build"
BUILD_COMMANDS="cmake .. && make -j$JOBS"
BUILD_COMMANDS="cmake .. -DCMAKE_BUILD_TYPE=Release && make -j$JOBS"

[[ $IMAGE_TAG == 'centos-7.7' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-7/enable"
# Docker Commands
Expand All @@ -40,4 +40,4 @@ else # Linux

eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\"

fi
fi
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,4 @@ __pycache__/

# Editor Files
.vscode/
.idea/
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ endif()

set(CDT_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/eosio.cdt)

option(ENABLE_NATIVE_COMPILER "enable native builds with the eosio.cdt toolchain" ON)
option(ENABLE_TESTS "enable building tests" OFF)

include(GNUInstallDirs)

include(modules/ClangExternalProject.txt)
Expand Down
2 changes: 1 addition & 1 deletion eosio_llvm
Submodule eosio_llvm updated 20804 files
8 changes: 7 additions & 1 deletion libraries/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,15 @@ include(EosioCDTMacros)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wall")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall -no-missing-ricardian-clause")

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_EXTENSIONS ON)

add_subdirectory(libc)
add_subdirectory(libc++)
add_subdirectory(eosiolib)
add_subdirectory(boost)
add_subdirectory(native)
add_subdirectory(rt)

if (ENABLE_NATIVE_COMPILER)
add_subdirectory(native)
endif()
2 changes: 1 addition & 1 deletion libraries/boost/include/boost/pfr/detail/config.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
# define BOOST_PFR_USE_LOOPHOLE 1
#endif

#define BOOST_PFR_USE_CPP17 0
#define BOOST_PFR_USE_CPP17 1

#ifndef BOOST_PFR_USE_CPP17
# ifdef __cpp_structured_bindings
Expand Down
19 changes: 11 additions & 8 deletions libraries/eosiolib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,6 @@ add_library(eosio_cmem
memory.cpp
${HEADERS})

add_native_library(native_eosio
eosiolib.cpp
crypto.cpp
malloc.cpp
${HEADERS})

set_target_properties(eosio_malloc PROPERTIES LINKER_LANGUAGE C)

Expand All @@ -36,12 +31,20 @@ target_include_directories(eosio PUBLIC
${CMAKE_SOURCE_DIR}/boost/include)

target_link_libraries( eosio c c++ )
add_dependencies( native_eosio eosio )

add_custom_command( TARGET eosio POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:eosio> ${BASE_BINARY_DIR}/lib )
add_custom_command( TARGET eosio_malloc POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:eosio_malloc> ${BASE_BINARY_DIR}/lib )
add_custom_command( TARGET eosio_dsm POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:eosio_dsm> ${BASE_BINARY_DIR}/lib )
add_custom_command( TARGET eosio_cmem POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:eosio_cmem> ${BASE_BINARY_DIR}/lib )
add_custom_command( TARGET native_eosio POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:native_eosio> ${BASE_BINARY_DIR}/lib )

if (ENABLE_NATIVE_COMPILER)
add_native_library(native_eosio
eosiolib.cpp
crypto.cpp
malloc.cpp
${HEADERS})

add_dependencies( native_eosio eosio )
add_custom_command( TARGET native_eosio POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:native_eosio> ${BASE_BINARY_DIR}/lib )
endif()

file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/../eosiolib DESTINATION ${BASE_BINARY_DIR}/include FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp")
8 changes: 4 additions & 4 deletions libraries/eosiolib/malloc.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <cstdlib>
#include <cstdlib>
#include <alloca.h>
#include "core/eosio/check.hpp"
#include "core/eosio/print.hpp"
Expand All @@ -11,8 +11,8 @@
#define CURRENT_MEMORY _current_memory()
#define GROW_MEMORY(X) _grow_memory(X)
#else
#define CURRENT_MEMORY __builtin_wasm_current_memory()
#define GROW_MEMORY(X) __builtin_wasm_grow_memory(X)
#define CURRENT_MEMORY __builtin_wasm_memory_size(0)
#define GROW_MEMORY(X) __builtin_wasm_memory_grow(0, X)
#endif

namespace eosio {
Expand Down Expand Up @@ -520,7 +520,7 @@ namespace eosio {
size_t _active_free_heap;
static const size_t _alloc_memory_mask = size_t(1) << 31;
};

memory_manager memory_heap;
} /// namespace eosio

Expand Down
14 changes: 7 additions & 7 deletions libraries/eosiolib/simple_malloc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
#define CURRENT_MEMORY _current_memory()
#define GROW_MEMORY(X) _grow_memory(X)
#else
#define CURRENT_MEMORY __builtin_wasm_current_memory()
#define GROW_MEMORY(X) __builtin_wasm_grow_memory(X)
#define CURRENT_MEMORY __builtin_wasm_memory_size(0)
#define GROW_MEMORY(X) __builtin_wasm_memory_grow(0, X)
#endif

namespace eosio {
namespace eosio {
struct dsmalloc {
inline char* align(char* ptr, uint8_t align_amt) {
return (char*)((((size_t)ptr) + align_amt-1) & ~(align_amt-1));
Expand All @@ -32,7 +32,7 @@ namespace eosio {

next_page = CURRENT_MEMORY;
}

char* operator()(size_t sz, uint8_t align_amt=16) {
if (sz == 0)
return NULL;
Expand All @@ -45,16 +45,16 @@ namespace eosio {
if ((next_page << 16) <= (size_t)last_ptr) {
next_page++;
pages_to_alloc++;
}
eosio::check(GROW_MEMORY(pages_to_alloc) != -1, "failed to allocate pages");
}
eosio::check(GROW_MEMORY(pages_to_alloc) != -1, "failed to allocate pages");
return ret;
}

char* heap;
char* last_ptr;
size_t offset;
size_t next_page;
};
};
dsmalloc _dsmalloc;
} // ns eosio

Expand Down
37 changes: 20 additions & 17 deletions libraries/libc++/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
SET(SRC_FILENAMES algorithm.cpp any.cpp bind.cpp chrono.cpp condition_variable.cpp functional.cpp
SET(SRC_FILENAMES algorithm.cpp any.cpp bind.cpp charconv.cpp chrono.cpp condition_variable.cpp functional.cpp
future.cpp hash.cpp ios.cpp iostream.cpp locale.cpp memory.cpp mutex.cpp new.cpp optional.cpp
regex.cpp stdexcept.cpp string.cpp strstream.cpp system_error.cpp exception.cpp
typeinfo.cpp utility.cpp valarray.cpp variant.cpp vector.cpp eosio.cpp)
Expand All @@ -14,32 +14,35 @@ set(CMAKE_BUILD_TYPE "Release")
add_library(c++
${SRC_FILES})

add_native_library(native_c++
${SRC_FILES})

target_include_directories(c++
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/libcxx/include
${CMAKE_SOURCE_DIR}/libc/musl/include
${CMAKE_SOURCE_DIR}/libc/musl/src/internal
${CMAKE_SOURCE_DIR}/libc/musl/src/crypt
${CMAKE_SOURCE_DIR}/libc/musl/arch/eos)

target_include_directories(native_c++
PUBLIC
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/libcxx/include
${CMAKE_SOURCE_DIR}/libc/musl/include
${CMAKE_SOURCE_DIR}/libc/musl/src/internal
${CMAKE_SOURCE_DIR}/libc/musl/src/crypt
${CMAKE_SOURCE_DIR}/libc/musl/arch/eos)

target_link_libraries(c++ c)
target_link_libraries(native_c++ native_c)

target_compile_options(native_c++ PUBLIC -allow-sse)

target_compile_definitions(c++ PUBLIC -D_LIBCPP_BUILDING_LIBRARY)
add_custom_command( TARGET c++ POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:c++> ${BASE_BINARY_DIR}/lib )

add_custom_command( TARGET native_c++ POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:native_c++> ${BASE_BINARY_DIR}/lib )
if (ENABLE_NATIVE_COMPILER)
add_native_library(native_c++
${SRC_FILES})

target_include_directories(native_c++
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/libcxx/include
${CMAKE_SOURCE_DIR}/libc/musl/include
${CMAKE_SOURCE_DIR}/libc/musl/src/internal
${CMAKE_SOURCE_DIR}/libc/musl/src/crypt
${CMAKE_SOURCE_DIR}/libc/musl/arch/eos)

target_link_libraries(native_c++ native_c)
target_compile_definitions(native_c++ PUBLIC -D_LIBCPP_BUILDING_LIBRARY)
target_compile_options(native_c++ PUBLIC -allow-sse)
add_custom_command( TARGET native_c++ POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:native_c++> ${BASE_BINARY_DIR}/lib )
endif()

file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/libcxx/include/ DESTINATION ${BASE_BINARY_DIR}/include/libcxx)
2 changes: 1 addition & 1 deletion libraries/libc++/libcxx
Submodule libcxx updated 6308 files
71 changes: 38 additions & 33 deletions libraries/libc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ file(GLOB HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/musl/include/*.h"
"${CMAKE_CURRENT_SOURCE_DIR}/musl/src/internal/*.h"
"${CMAKE_CURRENT_SOURCE_DIR}/musl/arch/eos/*.h")

add_library(c
${CRYPT_SOURCES}
add_library(c
${CRYPT_SOURCES}
${CTYPE_SOURCES}
${ENV_SOURCES}
${ERRNO_SOURCES}
Expand All @@ -48,45 +48,50 @@ add_library(c
"musl/src/malloc/memalign.c"
${HEADERS})

add_native_library(native_c
${CRYPT_SOURCES}
${CTYPE_SOURCES}
${ENV_SOURCES}
${ERRNO_SOURCES}
${EXIT_SOURCES}
${INTERNAL_SOURCES}
${LOCALE_SOURCES}
${MATH_SOURCES}
${MBYTE_SOURCES}
${MISC_SOURCES}
${SEARCH_SOURCES}
${STDIO_SOURCES}
${STDLIB_SOURCES}
${STRING_SOURCES}
${TIME_SOURCES}
${THREAD_SOURCES}
"musl/src/malloc/posix_memalign.c"
"musl/src/malloc/memalign.c"
${HEADERS})

target_include_directories(c
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/musl/include
${CMAKE_CURRENT_SOURCE_DIR}/musl/src/internal
${CMAKE_CURRENT_SOURCE_DIR}/musl/src/crypt
${CMAKE_CURRENT_SOURCE_DIR}/musl/arch/eos
${CMAKE_SOURCE_DIR})

target_include_directories(native_c
PUBLIC
target_include_directories(c
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/musl/include
${CMAKE_CURRENT_SOURCE_DIR}/musl/src/internal
${CMAKE_CURRENT_SOURCE_DIR}/musl/src/crypt
${CMAKE_CURRENT_SOURCE_DIR}/musl/arch/eos
${CMAKE_SOURCE_DIR})

add_custom_command( TARGET c POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:c> ${BASE_BINARY_DIR}/lib )
add_custom_command( TARGET native_c POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:native_c> ${BASE_BINARY_DIR}/lib )

if (ENABLE_NATIVE_COMPILER)
add_native_library(native_c
${CRYPT_SOURCES}
${CTYPE_SOURCES}
${ENV_SOURCES}
${ERRNO_SOURCES}
${EXIT_SOURCES}
${INTERNAL_SOURCES}
${LOCALE_SOURCES}
${MATH_SOURCES}
${MBYTE_SOURCES}
${MISC_SOURCES}
${SEARCH_SOURCES}
${STDIO_SOURCES}
${STDLIB_SOURCES}
${STRING_SOURCES}
${TIME_SOURCES}
${THREAD_SOURCES}
"musl/src/malloc/posix_memalign.c"
"musl/src/malloc/memalign.c"
${HEADERS})

target_include_directories(native_c
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/musl/include
${CMAKE_CURRENT_SOURCE_DIR}/musl/src/internal
${CMAKE_CURRENT_SOURCE_DIR}/musl/src/crypt
${CMAKE_CURRENT_SOURCE_DIR}/musl/arch/eos
${CMAKE_SOURCE_DIR})


add_custom_command( TARGET native_c POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:native_c> ${BASE_BINARY_DIR}/lib )
endif()

file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/musl/include/ DESTINATION ${BASE_BINARY_DIR}/include/libc/)
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/musl/src/internal/ DESTINATION ${BASE_BINARY_DIR}/include/libc/)
Expand Down
2 changes: 1 addition & 1 deletion libraries/libc/musl
Submodule musl updated 1 files
+1 −1 README
13 changes: 8 additions & 5 deletions libraries/rt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,16 @@ file ( GLOB builtins_headers "${CMAKE_CURRENT_SOURCE_DIR}*.h" )
list( APPEND builtins_sources ${builtins_headers} )

add_library ( rt STATIC ${builtins_sources} )
add_native_library ( native_rt STATIC ${builtins_sources} )

target_include_directories( rt PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/../native/softfloat/source/include" )

target_include_directories( native_rt PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/../native/softfloat/source/include" )

add_custom_command( TARGET rt POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:rt> ${BASE_BINARY_DIR}/lib )
add_custom_command( TARGET native_rt POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:native_rt> ${BASE_BINARY_DIR}/lib )

if (ENABLE_NATIVE_COMPILER)
add_native_library ( native_rt STATIC ${builtins_sources} )
target_include_directories( native_rt PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/../native/softfloat/source/include" )

add_custom_command( TARGET native_rt POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:native_rt> ${BASE_BINARY_DIR}/lib )
endif()
2 changes: 1 addition & 1 deletion modules/ClangExternalProject.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ include(GNUInstallDirs)

ExternalProject_Add(
EosioClang
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/llvm -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_BUILD_TYPE=Release -DEOSIO_TOOL_DIR=${CMAKE_SOURCE_DIR}/tools
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/llvm -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DEOSIO_TOOL_DIR=${CMAKE_SOURCE_DIR}/tools

SOURCE_DIR "${CMAKE_SOURCE_DIR}/eosio_llvm"
BINARY_DIR "${CMAKE_BINARY_DIR}/eosio_llvm"
Expand Down
3 changes: 1 addition & 2 deletions modules/InstallCDT.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ eosio_clang_install(llc)
eosio_clang_install(lld)
eosio_clang_install(ld.lld)
eosio_clang_install(ld64.lld)
eosio_clang_install(clang-7)
eosio_clang_install(clang-9)
eosio_clang_install(wasm-ld)

eosio_tool_install_and_symlink(eosio-pp eosio-pp)
Expand All @@ -77,7 +77,6 @@ eosio_tool_install_and_symlink(eosio-init eosio-init)

eosio_clang_install(../lib/LLVMEosioApply${CMAKE_SHARED_LIBRARY_SUFFIX})
eosio_clang_install(../lib/LLVMEosioSoftfloat${CMAKE_SHARED_LIBRARY_SUFFIX})
eosio_clang_install(../lib/eosio_plugin${CMAKE_SHARED_LIBRARY_SUFFIX})

eosio_cmake_install_and_symlink(eosio.cdt-config.cmake eosio.cdt-config.cmake)
eosio_cmake_install_and_symlink(EosioWasmToolchain.cmake EosioWasmToolchain.cmake)
Expand Down
2 changes: 1 addition & 1 deletion modules/LibrariesExternalProject.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ExternalProject_Add(
EosioWasmLibraries
SOURCE_DIR "${CMAKE_SOURCE_DIR}/libraries"
BINARY_DIR "${CMAKE_BINARY_DIR}/libraries"
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_BINARY_DIR}/lib/cmake/eosio.cdt/EosioWasmToolchain.cmake -DEOSIO_CDT_BIN=${CMAKE_BINARY_DIR}/lib/cmake/eosio.cdt/ -DBASE_BINARY_DIR=${CMAKE_BINARY_DIR} -D__APPLE=${APPLE}
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_BINARY_DIR}/lib/cmake/eosio.cdt/EosioWasmToolchain.cmake -DEOSIO_CDT_BIN=${CMAKE_BINARY_DIR}/lib/cmake/eosio.cdt/ -DBASE_BINARY_DIR=${CMAKE_BINARY_DIR} -D__APPLE=${APPLE} -DENABLE_NATIVE_COMPILER=${ENABLE_NATIVE_COMPILER}
UPDATE_COMMAND ""
PATCH_COMMAND ""
TEST_COMMAND ""
Expand Down
2 changes: 1 addition & 1 deletion modules/ToolsExternalProject.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ include(GNUInstallDirs)
set(LLVM_BINDIR ${CMAKE_BINARY_DIR}/eosio_llvm)
ExternalProject_Add(
EosioTools
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DVERSION_FULL=${VERSION_FULL} -DLLVM_SRCDIR=${CMAKE_SOURCE_DIR}/eosio_llvm -DLLVM_BINDIR=${LLVM_BINDIR} -DLLVM_DIR=${LLVM_BINDIR}/lib/cmake/llvm -DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR} -DVERSION_MAJOR=${VERSION_MAJOR} -DVERSION_MINOR=${VERSION_MINOR} -DVERSION_PATCH=${VERSION_PATCH}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DVERSION_FULL=${VERSION_FULL} -DLLVM_SRCDIR=${CMAKE_SOURCE_DIR}/eosio_llvm -DLLVM_BINDIR=${LLVM_BINDIR} -DLLVM_DIR=${LLVM_BINDIR}/lib/cmake/llvm -DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR} -DENABLE_NATIVE_COMPILER=${ENABLE_NATIVE_COMPILER}

SOURCE_DIR "${CMAKE_SOURCE_DIR}/tools"
BINARY_DIR "${CMAKE_BINARY_DIR}/tools"
Expand Down
Loading