I think there is an issue with the way -march flag is handled in the current build system. It is set to native (heavy cpu specific optimizations) via TON_ARCH and it is never checked if it is supported by the compiler. That's what is causing all those issues with apple m1 builds or any other arm system. Without checking early, build will only fail at link stage. Strict arch support checking is due. 1. Check if "-march=${TON_ARCH}" flag is supported by the compiler Adds it to CXX_FLAGS if al good 2. Otherwise if such flag is not supported but TON_ARCH is set to default we continue execution without setting march and leaving arch decisions to cmake build system 3. Otherwise user specified TON_ARCH intentionally and current arch is not supported by the compiler. Therefore we terminate build process immediately and let user know what's the matter. Co-authored-by: Trinketer22 <trinketer22@localhost> |
||
---|---|---|
.github | ||
adnl | ||
blockchain-explorer | ||
catchain | ||
CMake | ||
common | ||
create-hardfork | ||
crypto | ||
dht | ||
dht-server | ||
doc | ||
docker | ||
example | ||
fec | ||
http | ||
keyring | ||
keys | ||
lite-client | ||
lite-client-docs | ||
memprof | ||
overlay | ||
rldp | ||
rldp-http-proxy | ||
rldp2 | ||
storage | ||
tdactor | ||
tddb | ||
tdfec | ||
tdnet | ||
tdtl | ||
tdutils | ||
terminal | ||
test | ||
third-party | ||
tl | ||
tl-utils | ||
ton | ||
tonlib | ||
utils | ||
validator | ||
validator-engine | ||
validator-engine-console | ||
validator-session | ||
.clang-format | ||
.clang_complete | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
Changelog.md | ||
CMakeLists.txt | ||
git.cc.in | ||
git.h | ||
git_watcher.cmake | ||
GPLv2 | ||
LGPLv2 | ||
LICENSE.LGPL | ||
README.md | ||
run-clang-format.sh |
TON
Main TON monorepo, which includes the code of the node/validator, lite-client, tonlib, FunC compiler, etc.
Updates flow:
-
master branch - mainnet is running on this stable branch.
Only emergency updates, urgent updates, or updates that do not affect the main codebase (GitHub workflows / docker images / documentation) are committed directly to this branch.
-
testnet branch - testnet is running on this branch. The branch contains a set of new updates. After testing, the testnet branch is merged into the master branch and then a new set of updates is added to testnet branch.
-
backlog - other branches that are candidates to getting into the testnet branch in the next iteration.
Usually, the response to your pull request will indicate which section it falls into.
"Soft" Pull Request rules
- Thou shall not merge your own PRs, at least one person should review the PR and merge it (4-eyes rule)
- Thou shall make sure that workflows are cleanly completed for your PR before considering merge
Workflows responsibility
If a CI workflow fails not because of your changes but workflow issues, try to fix it yourself or contact one of the persons listed below via Telegram messenger:
- C/C++ CI (ccpp-linux.yml): TBD
- C/C++ CI Win64 Compile (ccpp-win64.yml): TBD