Skip to content

Conversation

@ericpassmore
Copy link
Contributor

Updated CDT to LLVM 16.0.6

Status

  • Issues: Not able to export symbols from wasm
  • Tests Do No Run
  • All code compiles
  • Update version to 5.0.0-dev

Issue Tracking

#325

Changes

  • Removed old submodule cdt-llvm
  • Created new submodule directly from llvm using tag llvm-16.0.6
  • Created cdt-llvm-extensions
    • Holds cmake files and code to patch llvm, patched via cmake
    • Contains clang attribute definitions, parsing, and code generation
    • Contains wasm-ld hooks for wasm generation of ABI, Actions, and Notification
    • Contains llvm to add EosioApply and EosioSoftFloat logic
  • Updated cmake for external modules to reference the new llvm submodule and directory structure
  • Updated cdt tools to reference clang-16 in versions
  • Modernized cmake files under cdt/tools
  • Updated compiler options to use export in place of only-export
  • removed stack-canary option as it is removed from wasm/Driver.cpp
  • Updated tools/include/eosio migrate to template_arguments from getNumArgs
  • Updated tools/include/eosio dereferencing by adding .str()
  • Updated tool replacing deprecated llvm::Nome with std::nulltopt
  • Removed const value_or function that did not allow for value to mutate, keeping same func without the const value.
  • Consolidated to a single static_assert

- Issues: Not able to export symbols from wasm
- Tests Do No Run
- All code compiles

- Removed old submodule cdt-llvm
- Created new submodule directly from llvm using tag llvm-16.0.6
- Created `cdt-llvm-extensions`
   - Holds cmake files and code to patch llvm, patched via cmake
   - Contains `clang` attribute definitions, parsing, and code generation
   - Contains `wasm-ld` hooks for wasm generation of ABI, Actions, and Notification
   - Contains `llvm` to add EosioApply and EosioSoftFloat logic
- Updated cmake for external modules to reference the new llvm submodule and directory structure
- Updated cdt tools to reference clang-16 in versions
- Modernized cmake files under cdt/tools
- Updated compiler options to use `export` in place of `only-export`
- removed `stack-canary` option as it is removed from `wasm/Driver.cpp`
- Updated `tools/include/eosio` migrate to `template_arguments` from `getNumArgs`
- Updated `tools/include/eosio` dereferencing by adding `.str()`
- Updated `tool` replacing deprecated llvm::Nome with std::nulltopt
- Removed const `value_or` function that did not allow for value to mutate, keeping same func without the const value.
- Consolidated to a single `static_assert`
@ericpassmore ericpassmore added this to the C++20 and LLVM Upgrade milestone Dec 16, 2024
@ericpassmore ericpassmore self-assigned this Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants