Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Empty antler-run with eos-vm and eosiolib linked #94

Merged
merged 14 commits into from
Feb 13, 2023
Merged

Conversation

dimas1185
Copy link
Contributor

@dimas1185 dimas1185 commented Jan 24, 2023

#79

Challenges:

  • eosiolib haven't been built with gcc. it was only built with cdt-cpp before. However when we included eosiolib into antler-run we got chicken and egg problem: all tools are built with default compiler (gcc in case of Ubuntu) and then eosiolib built with those tools. Solution was to slightly change eosiolib to be built with gcc. So now we have two versions of eosiolib lib for different purposes.
  • Another challenge was to built 'eosiolib' with standard library (previously it was only built with custom standard lib that is located in libraries/libc++. The reason to use standard library is because of we add eos-vm as well and there were a lot to fix to get it along with custom libc++. Libc++ lacks fstream and other stuff that is needed by eos-vm.
  • native library was also added to antler-run. Issue with it was that we can't have our own _start with standard library. So this code was split to avoid this function included for antler-run binary. native library now also has two native builds with different toolchains (gcc and cdt-cpp).

Note: there is a decision to remove Mac support. This PR maintains Mac support in order to makes changes distinct. I'm planning to make another PR to remove Mac support.

Change Description

API Changes

  • API Changes

Documentation Additions

  • Documentation Additions

.gitmodules Outdated Show resolved Hide resolved
This reverts commit f926d59.
Copy link
Contributor

@larryk85 larryk85 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small changes, other than that looking good.

libraries/eosiolib/core/eosio/datastream.hpp Outdated Show resolved Hide resolved
libraries/eosiolib/capi/eosio/types.h Show resolved Hide resolved
libraries/native/elf_crt.s Outdated Show resolved Hide resolved
libraries/native/mac_utils.s Outdated Show resolved Hide resolved
mov %rdx, %rsp
mov 56(%rdi), %rdx
jmp *%rdx
syscall
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can remove this macho_crt.s for the time being as we don't support mac os directly for the foreseeable future.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted to do this in a separate commit, as there are few more places with mac os specifics.

tools/antler-run/file-utils.hpp Outdated Show resolved Hide resolved
tools/antler-run/file-utils.hpp Outdated Show resolved Hide resolved
Copy link
Contributor

@ScottBailey ScottBailey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Copy link
Contributor

@larryk85 larryk85 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this break anything currently in use? If it does then let's make a branch called next_release and merge to that.

@dimas1185
Copy link
Contributor Author

@larryk85 tests are fine and binary workflow supposed to be unchanged, I made two different implementations - crt.cpp and crt_lib.cpp. later is only used for shared library

@dimas1185 dimas1185 merged commit 950e741 into main Feb 13, 2023
@dimas1185 dimas1185 deleted the antler-run-base branch February 13, 2023 19:42
nathanielhourt pushed a commit to dapp-protocols/leap-cdt that referenced this pull request Feb 26, 2023
dimas1185 added a commit that referenced this pull request Jun 8, 2023
dimas1185 added a commit that referenced this pull request Sep 21, 2023
dimas1185 added a commit that referenced this pull request Oct 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants