chore: Add "tcc" and "compcert" compiler targets.

It's nice we are able to compile with `tcc`. Let's not break that.
CompCert is also neat, but its interpreter mode doesn't work on tox, so
we only use the compiler.
This commit is contained in:
iphydf 2021-12-30 20:58:35 +00:00
parent 64a48c0e78
commit 6f61de54d3
No known key found for this signature in database
GPG Key ID: 3855DBA2D74403C9
5 changed files with 62 additions and 5 deletions

View File

@ -1,7 +1,7 @@
--- ---
cirrus-ci_task: bazel-release_task:
container: container:
image: toxchat/toktok-stack:0.0.31-third_party image: toxchat/toktok-stack:0.0.31-release
cpu: 2 cpu: 2
memory: 2G memory: 2G
configure_script: configure_script:
@ -19,7 +19,7 @@ cirrus-ci_task:
cimple_task: cimple_task:
container: container:
image: toxchat/toktok-stack:0.0.31-third_party image: toxchat/toktok-stack:0.0.31-release
cpu: 2 cpu: 2
memory: 4G memory: 4G
configure_script: configure_script:

View File

@ -13,11 +13,12 @@ branches:
required_status_checks: required_status_checks:
contexts: contexts:
- build-bootstrapd-docker - build-bootstrapd-docker
- build-compcert
- build-macos - build-macos
- build-nacl - build-nacl
- build-tcc
- build-win32 - build-win32
- build-win64 - build-win64
- Codacy Static Code Analysis
- CodeFactor - CodeFactor
- "ci/circleci: asan" - "ci/circleci: asan"
- "ci/circleci: clang-tidy" - "ci/circleci: clang-tidy"

View File

@ -51,3 +51,54 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Build and test - name: Build and test
run: .travis/cmake-osx run: .travis/cmake-osx
build-tcc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run:
sudo apt-get install -y --no-install-recommends
tcc
libconfig-dev
libopus-dev
libsodium-dev
libvpx-dev
- name: Build with TCC
run:
tcc
-o send_message_test
-Wall -Werror
-bench -g
auto_tests/send_message_test.c
testing/misc_tools.c
toxav/*.c
toxcore/*.c
toxencryptsave/*.c
$(pkg-config --cflags --libs libsodium opus vpx)
- name: Run the test
run: "./send_message_test | grep 'tox clients connected'"
build-compcert:
runs-on: ubuntu-latest
container: toxchat/compcert
steps:
- uses: actions/checkout@v2
- name: Build with CompCert
run:
ccomp
-o send_message_test
-Wall -Werror
-Wno-c11-extensions
-Wno-unknown-pragmas
-Wno-unused-variable
-fstruct-passing -fno-unprototyped -g
auto_tests/send_message_test.c
testing/misc_tools.c
toxav/*.c
toxcore/*.c
toxencryptsave/*.c
-D__COMPCERT__ -DDISABLE_VLA
-lpthread $(pkg-config --cflags --libs libsodium opus vpx)
- name: Run the test
run: "./send_message_test | grep 'tox clients connected'"

View File

@ -1 +1 @@
7cce630be98faab64c804255e060c85a63ea9f4401ffd1f12122ba1c5cfc45ce /usr/local/bin/tox-bootstrapd f0f315faebe7fc88b15ba656c5866c3932b5495c23ee99bdac539ba986688c92 /usr/local/bin/tox-bootstrapd

View File

@ -33,6 +33,11 @@ bool unused_for_tokstyle(void);
// Emulation using alloca. // Emulation using alloca.
#ifdef _WIN32 #ifdef _WIN32
#include <malloc.h> #include <malloc.h>
#elif defined(__COMPCERT__)
// TODO(iphydf): This leaks memory like crazy, so compcert is useless for now.
// Once we're rid of VLAs, we can remove this and compcert becomes useful.
#define alloca malloc
#include <stdlib.h>
#elif defined(__linux__) #elif defined(__linux__)
#include <alloca.h> #include <alloca.h>
#else #else