Initial import of libdpf.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ryan Henry 2026-09-24 14:08:32 -06:00
commit e4e666f459
4563 changed files with 1690372 additions and 0 deletions

210
thirdparty/simde/.all-contributorsrc vendored Normal file
View file

@ -0,0 +1,210 @@
{
"projectName": "simde",
"projectOwner": "nemequ",
"repoType": "github",
"repoHost": "https://github.com",
"files": [
"README.md"
],
"imageSize": 100,
"commit": true,
"commitConvention": "none",
"contributors": [
{
"login": "nemequ",
"name": "Evan Nemerson",
"avatar_url": "https://avatars0.githubusercontent.com/u/1151?v=4",
"profile": "https://nemequ.github.io/",
"contributions": [
"code",
"content",
"doc",
"example",
"ideas",
"question",
"review",
"test",
"tutorial",
"talk",
"bug",
"infra",
"maintenance",
"projectManagement"
]
},
{
"login": "mr-c",
"name": "Michael R. Crusoe",
"avatar_url": "https://avatars3.githubusercontent.com/u/1330696?v=4",
"profile": "https://orcid.org/0000-0002-2961-9670",
"contributions": [
"bug",
"code",
"eventOrganizing",
"fundingFinding",
"ideas",
"infra",
"platform",
"test"
]
},
{
"login": "himanshi18037",
"name": "HIMANSHI MATHUR",
"avatar_url": "https://avatars1.githubusercontent.com/u/43923076?v=4",
"profile": "https://github.com/himanshi18037",
"contributions": [
"code",
"test"
]
},
{
"login": "masterchef2209",
"name": "Hidayat Khan",
"avatar_url": "https://avatars0.githubusercontent.com/u/27916352?v=4",
"profile": "https://github.com/masterchef2209",
"contributions": [
"code",
"test"
]
},
{
"login": "rosbif",
"name": "rosbif",
"avatar_url": "https://avatars1.githubusercontent.com/u/553899?v=4",
"profile": "https://github.com/rosbif",
"contributions": [
"code",
"test",
"bug",
"ideas"
]
},
{
"login": "junaruga",
"name": "Jun Aruga",
"avatar_url": "https://avatars2.githubusercontent.com/u/121989?v=4",
"profile": "http://junaruga.hatenablog.com/",
"contributions": [
"code",
"ideas",
"platform",
"infra",
"maintenance",
"test",
"bug"
]
},
{
"login": "marmeladema",
"name": "Élie ROUDNINSKI",
"avatar_url": "https://avatars2.githubusercontent.com/u/1629419?v=4",
"profile": "https://github.com/marmeladema",
"contributions": [
"code",
"test"
]
},
{
"login": "jsbache",
"name": "Jesper Storm Bache",
"avatar_url": "https://avatars3.githubusercontent.com/u/7937081?v=4",
"profile": "http://www.bache.name",
"contributions": [
"code"
]
},
{
"login": "jeffdaily",
"name": "Jeff Daily",
"avatar_url": "https://avatars1.githubusercontent.com/u/904248?v=4",
"profile": "https://github.com/jeffdaily",
"contributions": [
"code",
"infra"
]
},
{
"login": "yekm",
"name": "Pavel",
"avatar_url": "https://avatars2.githubusercontent.com/u/205196?v=4",
"profile": "https://github.com/yekm",
"contributions": [
"code"
]
},
{
"login": "sabarishbollapragada",
"name": "Sabarish Bollapragada",
"avatar_url": "https://avatars3.githubusercontent.com/u/36379720?v=4",
"profile": "https://github.com/sabarishbollapragada",
"contributions": [
"code"
]
},
{
"login": "gh2o",
"name": "Gavin Li",
"avatar_url": "https://avatars2.githubusercontent.com/u/371529?v=4",
"profile": "http://www.thegavinli.com/",
"contributions": [
"code"
]
},
{
"login": "betajippity",
"name": "Yining Karl Li",
"avatar_url": "https://avatars0.githubusercontent.com/u/1057198?v=4",
"profile": "http://www.yiningkarlli.com",
"contributions": [
"code"
]
},
{
"login": "anirbandey303",
"name": "Anirban Dey",
"avatar_url": "https://avatars1.githubusercontent.com/u/29774651?v=4",
"profile": "https://www.facebook.com/anirbandey303",
"contributions": [
"doc"
]
},
{
"login": "Un1Gfn",
"name": "Darren Ng",
"avatar_url": "https://avatars3.githubusercontent.com/u/28521292?v=4",
"profile": "https://github.com/Un1Gfn",
"contributions": [
"doc"
]
},
{
"login": "FaresSalem",
"name": "FaresSalem",
"avatar_url": "https://avatars0.githubusercontent.com/u/7736245?v=4",
"profile": "https://github.com/FaresSalem",
"contributions": [
"doc"
]
},
{
"login": "GorePradnyesh",
"name": "Pradnyesh Gore",
"avatar_url": "https://avatars0.githubusercontent.com/u/843197?v=4",
"profile": "https://github.com/GorePradnyesh",
"contributions": [
"code"
]
},
{
"login": "seanptmaher",
"name": "Sean Maher",
"avatar_url": "https://avatars0.githubusercontent.com/u/39571964?v=4",
"profile": "https://github.com/seanptmaher",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7
}

43
thirdparty/simde/.appveyor.yml vendored Normal file
View file

@ -0,0 +1,43 @@
environment:
MESON_EXE_WRAPPER: "['C:\\Program Files\\OpenCppCoverage\\OpenCppCoverage.exe', '--export_type=cobertura', '--']"
matrix:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat
PYTHON_DIR: C:\Python38-x64
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat
PYTHON_DIR: C:\Python38-x64
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat
PYTHON_DIR: C:\Python38-x64
branches:
except:
- /^ci/(?!appveyor)(/.+)?/
platform:
- x64
install:
- cmd: set PATH=%PYTHON_DIR%;%PYTHON_DIR%\scripts;%PATH%
- cmd: pip install --upgrade ninja meson
- cmd: choco install opencppcoverage codecov
- cmd: call "%VCVARSALL%" amd64
before_build:
- ps: |
git submodule -q update --init --recursive
build_script:
- cmd: meson --backend=ninja build
- cmd: ninja -C build -v test
## This seems to work; data shows up on CodeCov, but it emits an error
## which makes AppVeyor thing the whole build failed. Example:
## https://ci.appveyor.com/project/quixdb/ci-noise/build/job/e7d1wpt9icu77fn2
# after_test:
# - ps: |
# Invoke-WebRequest -Uri 'https://codecov.io/bash' -OutFile codecov.sh
# $env:APPVEYOR="true"
# $env:CI="true"
# bash codecov.sh -f "run-testsCoverage.xml"

80
thirdparty/simde/.azure-pipelines.yml vendored Normal file
View file

@ -0,0 +1,80 @@
pool:
vmImage: 'ubuntu-20.04'
trigger:
branches:
exclude:
- master
# - ci/*
# include:
# - ci/azure*
jobs:
- job: clang_analysis
variables:
CC: clang-10
CXX: clang++-10
CFLAGS: -Wextra -Werror
CXXFLAGS: -Wextra -Werror
steps:
- script: uname -a && cat /proc/cpuinfo /proc/meminfo
displayName: System Information
- script: sudo add-apt-repository 'ppa:ubuntu-toolchain-r/test' && sudo apt-get update && sudo apt-get install -y ninja-build ninja-build python3-pip python3-setuptools python3-wheel clang-10 clang-tools-10
displayName: Install APT Dependencies
- script: pip3 install -v meson==0.55.0
displayName: Install pip Dependencies
- script: scan-build-10 /home/vsts/.local/bin/meson setup build -Db_sanitize=address,undefined
displayName: Configure
- script: scan-build-10 ninja -C build -v
displayName: Build
- script: ninja -C build -v test
displayName: Test
- task: PublishTestResults@2
inputs:
testResultsFormat: 'JUnit'
testResultsFiles: 'build/meson-logs/testlog.junit.xml'
- job: gcc_analysis
variables:
CC: gcc-10
CXX: g++-10
CFLAGS: -fanalyzer -Wextra -Werror
CXXFLAGS: -fanalyzer -Wextra -Werror
steps:
- script: uname -a && cat /proc/cpuinfo /proc/meminfo
displayName: System Information
- script: sudo add-apt-repository 'ppa:ubuntu-toolchain-r/test' && sudo apt-get update && sudo apt-get install -y ninja-build ninja-build python3-pip python3-setuptools python3-wheel gcc-10 g++-10
displayName: Install APT Dependencies
- script: pip3 install meson==0.55.0
displayName: Install pip Dependencies
- script: /home/vsts/.local/bin/meson setup build -Db_sanitize=address,undefined
displayName: Configure
- script: ninja -C build -v
displayName: Build
- script: ninja -C build -v test
displayName: Test
- task: PublishTestResults@2
inputs:
testResultsFormat: 'JUnit'
testResultsFiles: 'build/meson-logs/testlog.junit.xml'
# - job: loongson3a
# container:
# image: debian:unstable
# options: "--name ci-container -v /usr/bin/docker:/tmp/docker:ro"
# steps:
# # https://github.com/Microsoft/azure-pipelines-agent/issues/2043
# - script: /tmp/docker exec -t -u 0 ci-container sh -c "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confold" -y install sudo"
# displayName: 'Install Sudo in container'
# - script: uname -a && cat /proc/cpuinfo /proc/meminfo
# displayName: System Information
# - script: sudo dpkg --add-architecture mips64el && sudo apt-get update && sudo apt-get install -y ninja-build ninja-build python3-pip python3-setuptools python3-wheel libc6:mips64el gcc-10-mips64el-linux-gnuabi64 g++-10-mips64el-linux-gnuabi64 qemu-user-static
# displayName: Install APT Dependencies
# - script: pip3 install meson=0.55.0
# displayName: Install pip Dependencies
# - script: /home/vsts/.local/bin/meson setup build --cross-file=docker/cross-files/loongson-gcc-10.cross
# displayName: Configure
# - script: ninja -C build -v
# displayName: Build
# - script: ninja -C build -v test
# displayName: Test

176
thirdparty/simde/.circleci/config.yml vendored Normal file
View file

@ -0,0 +1,176 @@
version: 2.1
jobs:
gcc:
resource_class: large
docker:
- image: debian:testing-slim
auth:
username: $DOCKERHUB_USERNAME
password: $DOCKERHUB_PASSWORD
environment:
CFLAGS: -Wextra -Werror -march=native
CXXFLAGS: -Wextra -Werror -march=native
CC: gcc
CXX: g++
steps:
- run: apt-get update && apt-get install -y git ssh ninja-build python3-pip python3-setuptools python3-wheel gcovr gcc g++
- checkout
- run: cat /proc/cpuinfo /proc/meminfo
- run: pip3 install meson==0.55.0
- run: /usr/local/bin/meson setup build -Db_coverage=true
- run: ninja -C build -v -j 5
- run: ninja -C build -v test
clang:
resource_class: large
docker:
- image: debian:testing-slim
auth:
username: $DOCKERHUB_USERNAME
password: $DOCKERHUB_PASSWORD
environment:
CFLAGS: -Weverything -Werror -march=native
CXXFLAGS: -Weverything -Werror -march=native
steps:
- run: apt-get update && apt-get install -y git ssh ninja-build python3-pip python3-setuptools python3-wheel gcovr clang
- checkout
- run: cat /proc/cpuinfo /proc/meminfo
- run: pip3 install meson==0.55.0
- run: CC=clang CXX=clang++ /usr/local/bin/meson setup build -Db_coverage=true
- run: ninja -C build -v -j 5
- run: ninja -C build -v test
loongson:
resource_class: large
docker:
- image: debian:testing-slim
auth:
username: $DOCKERHUB_USERNAME
password: $DOCKERHUB_PASSWORD
environment:
CFLAGS: -Wextra -Werror
CXXFLAGS: -Wextra -Werror
steps:
- run: apt-get update && apt-get install -y git ssh ninja-build python3-pip python3-setuptools python3-wheel gcovr gcc-mips64el-linux-gnuabi64 g++-mips64el-linux-gnuabi64 qemu-user-static libc6-mips64el-cross ccache
- checkout
- run: cat /proc/cpuinfo /proc/meminfo
- run:
command: |
ccache --set-config=max_size='500M'
ccache --set-config=compression=true
ccache -p
ccache -z
- run: pip3 install meson==0.55.0
- run: /usr/local/bin/meson setup build -Db_coverage=true --cross-file=docker/cross-files/loongson-gcc-ccache.cross
- restore_cache:
keys:
- v1-loongson-ccache-{{ .Branch }}-
- v1-loongson-ccache-
- run: ninja -C build -v -j 5
- run: /usr/bin/ccache -s
- save_cache:
key: v1-loongson-ccache-{{ .Branch }}-{{ .Revision }}
paths: [ "/root/.cache/ccache" ]
# - run: ninja -C build -v -j 3 test
i686:
resource_class: large
docker:
- image: debian:testing-slim
auth:
username: $DOCKERHUB_USERNAME
password: $DOCKERHUB_PASSWORD
steps:
- run: apt-get update && apt-get install -y git ssh ninja-build python3-pip python3-setuptools python3-wheel gcovr {gcc,g++}-i686-linux-gnu libc6-i386-cross qemu-user-static ccache
- checkout
- run:
name: System Information
command: cat /proc/cpuinfo /proc/meminfo
- run: dpkg --add-architecture i386
- run: pip3 install meson==0.55.0
- run: /usr/local/bin/meson setup build -Db_coverage=true --cross-file docker/cross-files/i686-gcc-qemu.cross
- restore_cache:
keys:
- v1-i686-ccache-{{ .Branch }}-
- v1-i686-ccache-
- run:
command: |
ccache --set-config=max_size='500M'
ccache --set-config=compression=true
ccache -p
ccache -z
- run: /usr/local/bin/meson compile -C build --verbose -j 5
- run: /usr/bin/ccache -s
- save_cache:
key: v1-i686-ccache-{{ .Branch }}-{{ .Revision }}
paths: [ "/root/.cache/ccache" ]
- run: /usr/local/bin/meson test -C build --num-processes 5 --print-errorlogs
i686-gcc11-O2:
resource_class: large
docker:
- image: debian:testing-slim
auth:
username: $DOCKERHUB_USERNAME
password: $DOCKERHUB_PASSWORD
steps:
- run: apt-get update && apt-get install -y git ssh ninja-build python3-pip python3-setuptools python3-wheel gcovr {gcc,g++}-11-i686-linux-gnu libc6-i386-cross qemu-user-static ccache
- checkout
- run:
name: System Information
command: cat /proc/cpuinfo /proc/meminfo
- run: dpkg --add-architecture i386
- run: pip3 install meson==0.55.0
- run: /usr/local/bin/meson setup build -Db_coverage=true --cross-file docker/cross-files/i686-gcc-11-qemu.cross
- restore_cache:
keys:
- v1-i686-gcc11-O2-ccache-{{ .Branch }}-
- v1-i686-gcc11-O2-ccache-
- run:
command: |
ccache --set-config=max_size='500M'
ccache --set-config=compression=true
ccache -p
ccache -z
- run: /usr/local/bin/meson compile -C build --verbose -j 5
- run: /usr/bin/ccache -s
- save_cache:
key: v1-i686-gcc11-O2-ccache-{{ .Branch }}-{{ .Revision }}
paths: [ "/root/.cache/ccache" ]
- run: /usr/local/bin/meson test -C build --num-processes 5 --print-errorlogs
workflows:
version: 2
test:
jobs:
- gcc:
filters:
branches:
ignore:
- master
- /^ci/(?!circleci).*$/
- clang:
filters:
branches:
ignore:
- master
- /^ci/(?!circleci).*$/
- loongson:
filters:
branches:
ignore:
- master
- /^ci/(?!circleci).*$/
# - i686:
# filters:
# branches:
# ignore:
# - master
# - /^ci/(?!circleci).*$/
- i686-gcc11-O2:
filters:
branches:
ignore:
- master
- /^ci/(?!circleci).*$/

24
thirdparty/simde/.cirrus.yml vendored Normal file
View file

@ -0,0 +1,24 @@
container:
image: debian:testing-slim
task:
name: Sanitizers
skip: $BRANCH == "master" || ($BRANCH != 'ci/cirrus' && $BRANCH =~ '^ci/.+')
env:
CC: clang
CXX: clang++
CFLAGS: -Wextra -Werror -march=native
CXXFLAGS: -Wextra -Werror -march=native
system_info_script:
- cat /proc/cpuinfo
- cat /proc/meminfo
install_dependencies_script:
- apt-get update
- apt-get install -y ninja-build ninja-build python3-pip python3-setuptools python3-wheel gcovr clang
- pip3 install meson==0.55.0
configure_script:
- /usr/local/bin/meson setup build -Db_coverage=true -Db_sanitize=address,undefined -Db_lundef=false
build_script:
- ninja -C build -v -j 3
test_script:
- ninja -C build -v test

119
thirdparty/simde/.drone.star vendored Normal file
View file

@ -0,0 +1,119 @@
# -*- Python -*-
# Drone CI Starlark configuration file.
# https://docs.drone.io/pipeline/scripting/starlark/
# Run `drone starlark convert --stdout` to verify `.drone.star`.
def main(ctx):
jobs = []
for arch in ['aarch64', 'armv8', 'armv7']:
drone_arch = 'arm'
if arch == 'aarch64':
drone_arch = 'arm64'
for compiler in ['gcc', 'clang']:
cc = compiler
cxx = compiler + '++'
compiler_flags = []
packages = ['ninja-build', 'git-core', 'python3-pip', 'gcovr']
if arch == 'armv7':
compiler_flags.extend(['-march=armv7-a', '-mfpu=neon'])
elif arch == 'armv8':
compiler_flags.extend(['-march=armv8-a', '-mfpu=neon'])
elif arch == 'aarch64':
compiler_flags.extend(['-march=armv8-a+simd+crypto+crc'])
if compiler == 'gcc':
cxx = 'g++'
compiler_flags.extend(['-Wextra', '-Werror'])
packages.extend(['gcc', 'g++'])
elif compiler == 'clang':
compiler_flags.extend(['-Weverything', '-Werror'])
packages.extend(['clang'])
cflags = ' '.join(compiler_flags)
cxxflags = ' '.join(compiler_flags)
environment = {
"CC": cc,
"CXX": cxx,
"CFLAGS": cflags,
"CXXFLAGS": cxxflags,
"DEBIAN_FRONTEND": "noninteractive",
}
exclude_branches = ['master']
for provider in ['gha', 'cirrus', 'semaphore', 'circleci', 'appveyor', 'azure', 'travis']:
exclude_branches.append('ci/' + provider)
exclude_branches.append('ci/' + provider + '/**')
jobs.append({
"kind": "pipeline",
"type": "docker",
"name": compiler + ' ' + arch,
"platform": {
"os": "linux",
"arch": drone_arch
},
"steps": [
{
"name": "test",
"image": "ubuntu:bionic",
"environment": environment,
"commands": [
"cat /proc/cpuinfo",
"echo 'APT::Acquire::Retries \"3\";' > /etc/apt/apt.conf.d/80-retries",
"apt-get update -y",
"apt-get install -y " + " ".join(packages),
"pip3 install meson==0.55.0",
"meson build -Db_coverage=true || (cat build/meson-logs/meson-log.txt; false)",
"ninja -C build -v test || (cat build/meson-logs/testlog.txt; false)",
],
}
],
"trigger": {
"branch": {
"exclude": exclude_branches
}
},
})
# jobs.append({
# "kind": "pipeline",
# "type": "docker",
# "name": "native aliases",
# "platform": {
# "os": "linux",
# "arch": "arm64"
# },
# "steps": [
# {
# "name": "test",
# "image": "ubuntu:bionic",
# "environment": {
# "CC": "clang",
# "CXX": "clang++",
# "CFLAGS": "-march=armv8a+simd+crypto+crc -Weverything -Wextra -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING",
# "CXXFLAGS": "-march=armv8a+simd+crypto+crc -Weverything -Wextra -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING",
# "DEBIAN_FRONTEND": "noninteractive",
# },
# "commands": [
# "cat /proc/cpuinfo",
# "apt-get update -y",
# "apt-get install -y " + " ".join(['ninja-build', 'git-core', 'python3-pip', 'gcovr', 'clang', 'curl']),
# "pip3 install meson==0.55.0",
# "(cd test && sh -x ./native-aliases.sh)",
# "meson build -Db_coverage=true",
# "ninja -C build -v test",
# ],
# },
# ],
# "trigger": {
# "branch": {
# "exclude": exclude_branches
# }
# }
# })
return jobs

18
thirdparty/simde/.editorconfig vendored Normal file
View file

@ -0,0 +1,18 @@
# Configuration file for EditorConfig
# More information is available under http://EditorConfig.org
# Ignore any other files further up in the file system
root = true
# Configuration for all files
[*]
# Enforce Unix style line endings (\n only)
end_of_line = lf
# Always end files with a blank line
insert_final_newline = true
# Force space characters for indentation
indent_style = space
# Always indent by 2 characters
indent_size = 2
# Remove whitespace characters at the end of line
trim_trailing_whitespace = true

View file

@ -0,0 +1,544 @@
name: CI
on:
push:
branches-ignore:
- 'master'
- 'ci/**'
- '!ci/gha**'
pull_request:
branches:
- 'master'
concurrency:
group: build-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
formatting:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Install pcre2grep
run: sudo apt-get update && sudo apt-get install -y pcre2-utils
# Check for trailing whitespace
- name: Trailing whitespace
run: find simde/ \( -name '*.c' -o -name '*.h' \) -exec grep -nP '\s+$' {} + && exit 1 || exit 0
# We use spaces, not tabs. I don't want to start a holy war here;
# I don't actually have a strong preference between the two, but I
# do have a strong preference for consistency, so don't @ me.
- name: Tabs
run: find simde/ \( -name '*.c' -o -name '*.h' \) -exec grep -nP '\t' {} + && exit 1 || exit 0
# s/8/16/ will result in this if the input is x86.
- name: Bad substitutions
run: git grep -i 'x''1''6''6' && exit 1 || exit 0
- name: Incorrect assertions in test/
run: grep -PR '(?<=[^a-zA-Z0-9_])simde_assert_u?int(8|16|32|64)(?>[^a-zA-Z0-9_])' test/ && exit 1 || exit 0
# Check to make sure no source files have the executable bit set
- name: Executable sources
run: find \( -name '*.c' -o -name '*.h' \) -executable | grep -q '.' && exit 1 || exit 0
# Make sure neon.h includes all the NEON headers.
- name: Missing NEON includes
run: for f in simde/arm/neon/*.h; do grep -q "include \"neon/$(basename "$f")\"" simde/arm/neon.h || (echo "Missing $f" && exit 1); done
# Make sure sve.h includes all the SVE headers.
- name: Missing SVE includes
run: for f in simde/arm/sve/*.h; do grep -q "include \"sve/$(basename "$f")\"" simde/arm/sve.h || (echo "Missing $f" && exit 1); done
# Make sure msa.h includes all the MSA headers.
- name: Missing MSA includes
run: for f in simde/mips/msa/*.h; do grep -q "include \"msa/$(basename "$f")\"" simde/mips/msa.h || (echo "Missing $f" && exit 1); done
# Make sure we can find the expected header guards. It's easy to miss this when doing C&P
- name: Header guards
run: for file in $(find simde/*/ -name '*.h'); do grep -q "$(echo "$file" | tr '[:lower:]' '[:upper:]' | tr '[:punct:]' '_')" "$file" || (echo "Missing or incorrect header guard in $file" && exit 1); done
# There should be an empty line at the end of every file
- name: Newline at EOF
run: for file in $(find simde -name '*.h'); do if [ -n "$(tail -c 1 "$file")" ]; then echo "No newline at end of $file" && exit 1; fi; done
# Don't #ifndef ; use !defined(...) instead. ifndef leads to annoying inconsistencies
- name: ifndef
run: for file in $(find simde -name '*.h'); do grep -qP '^ *# *ifndef ' "${file}" && exit 1 || exit 0; done
# List of headers we want Meson to install
- name: Meson install headers
run: for file in $(find simde -name '*.h'); do grep -qF "$(basename "${file}" .h)" meson.build || (echo "${file} missing from top-level meson.build" && exit 1); done
# Make sure we don't accidentally use `vector ...` instead of SIMDE_POWER_ALTIVEC_VECTOR(...)
- name: AltiVec raw vector keyword
run: find simde/ \( -name '*.c' -o -name '*.h' \) -exec grep -nP 'vector( +)((bool|signed|unsigned) +)?(double|float|long long|long|int|short|char)' {} + && exit 1 || exit 0
# Check indentation of preprocessor directives.
- name: Preprocessor directive indentation
run: find simde/*/ -name 'avx*.h' -exec pcre2grep -M '{\n#' {} + && exit 1 || exit 0
- name: Stray `&& 0`
run: git grep ' && 0' simde/ test/ && exit 1 || exit 0
x86:
runs-on: ubuntu-22.04
strategy:
matrix:
isax:
- -mavx512bw -mavx512vl -mavx512cd -mavx512dq -mavx512vbmi -mavx512ifma -mavx512vpopcntdq -mavx512bitalg -mavx512vnni -mvpclmulqdq
- -mavx512bw -mavx512vl -DSIMDE_NATURAL_VECTOR_SIZE=256
- -mavx512f
- -mavx512bw
- -mavx512vl
- -mavx512vl -mavx512dq
- -mavx512cd
- -mavx512dq
- -msse2
- -msse3
- -mssse3
- -msse4.1
- -msse4.2
- -mavx
- -mfma
- -mavx2
env:
CFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }}
CXXFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: CPU Information
run: cat /proc/cpuinfo
- run: sudo apt-get update
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ github.job }}-${{ matrix.isax }}
- name: Install APT Dependencies
run: |
sudo apt-get install -y ninja-build ninja-build python3-pip parallel gcovr
sudo python3 -m pip install meson==0.55.0
- name: Configure
run: meson setup build -Db_coverage=true
- name: Build
run: ninja -C build -v
- name: Test
run: meson test -C build --print-errorlogs --wrapper "${GITHUB_WORKSPACE}/test/check-flags.sh sde"
- name: Coverage Report
run: ninja -C build -v coverage-xml
- name: CodeCov.io
uses: codecov/codecov-action@v3
with:
file: ./build/meson-logs/coverage.xml
emscripten:
runs-on: ubuntu-22.04
env:
CFLAGS: -Weverything -Werror -O2 -msimd128 -Wno-unsafe-buffer-usage
CXXFLAGS: -Weverything -Werror -O2 -msimd128 -Wno-unsafe-buffer-usage
LDFLAGS: -s ENVIRONMENT=shell -s ASSERTIONS=1
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: CPU Information
run: cat /proc/cpuinfo
- name: Install APT Dependencies
run: |
sudo apt-get update && \
sudo apt-get install -y ninja-build ninja-build python3-pip parallel gcovr &&\
sudo python3 -m pip install meson==0.55.0
- name: Install emscripten
run: |
git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk
cd /opt/emsdk
./emsdk install tot
./emsdk activate tot
source emsdk_env.sh
- name: Install v8
run: |
sudo npm install jsvu -g
jsvu --os=linux64 --engines=v8
sudo ln -s "$HOME/.jsvu/bin/v8" /usr/bin/v8
ls -l /usr/bin/v8
ls -l ~/.jsvu || true
/usr/bin/v8 --help
- name: Configure
run: meson setup build --optimization 2 --cross-file docker/cross-files/emscripten.cross
- name: Build
run: meson compile -C build --verbose
- name: Test
run: meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul)
native-aliases:
runs-on: ubuntu-22.04
env:
CFLAGS: -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING -march=native -Wall -Wextra -Werror
CXXFLAGS: -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING -march=native -Wall -Wextra -Werror
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: CPU Information
run: cat /proc/cpuinfo
- name: Install APT Dependencies
run: |
sudo apt-get update && \
sudo apt-get -yq install libxml2-utils ninja-build parallel gcovr && \
sudo python3 -m pip install meson==0.55.0
- name: Convert
run: ./test/native-aliases.sh
- name: Configure
run: meson setup build -Db_coverage=true
- name: Build
run: ninja -C build -v
- name: Test
run: ninja -C build -v test
- name: Coverage Report
run: ninja -C build -v coverage-xml
- name: CodeCov.io
uses: codecov/codecov-action@v3
with:
file: ./build/meson-logs/coverage.xml
sleef:
runs-on: ubuntu-22.04
env:
CFLAGS: -march=native -Wall -Wextra -Werror
CXXFLAGS: -march=native -Wall -Wextra -Werror
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- run: sudo apt-get update
- name: CPU Information
run: cat /proc/cpuinfo
- name: Install APT Dependencies
run: |
sudo apt-get install -y ninja-build ninja-build parallel gcovr libsleef-dev
sudo python3 -m pip install meson==0.55.0
- name: Configure
run: meson setup build -Dsleef=enabled -Db_coverage=true
- name: Build
run: ninja -C build -v
- name: Test
run: ninja -C build -v test
- name: Coverage Report
run: ninja -C build -v coverage-xml
- name: CodeCov.io
uses: codecov/codecov-action@v3
with:
file: ./build/meson-logs/coverage.xml
gcc:
strategy:
matrix:
include:
# - version: 4.7
# distro: ubuntu-16.04
# arch_flags: -mavx2
# - version: 4.8
# distro: ubuntu-16.04
# arch_flags: -mavx2
# - version: 4.9
# distro: ubuntu-16.04
# arch_flags: -mavx2
#- version: 5
# distro: ubuntu-18.04
# arch_flags: -mavx2
# - version: 6
# distro: ubuntu-18.04
# arch_flags: -march=native
# - version: 7
# distro: ubuntu-18.04
# arch_flags: -march=native
#- version: 8
# distro: ubuntu-18.04
# arch_flags: -march=native
# - version: 9
# distro: ubuntu-20.04
# arch_flags: -march=native
- version: 10
distro: ubuntu-20.04
arch_flags: -march=native
- version: 10
distro: ubuntu-20.04
arch_flags: -ffast-math
ccache: 'true'
- version: 11
distro: ubuntu-22.04
arch_flags: -march=native
- version: 11
distro: ubuntu-22.04
arch_flags: -ffast-math
ccache: 'true'
- version: 12
distro: ubuntu-22.04
arch_flags: -march=native
- version: 12
distro: ubuntu-22.04
arch_flags: -ffast-math
ccache: 'true'
runs-on: ${{ matrix.distro }}
env:
CC: gcc-${{ matrix.version }}
CXX: g++-${{ matrix.version }}
CFLAGS: ${{ matrix.arch_flags }} -Wall -Wextra -Werror
CXXFLAGS: ${{ matrix.arch_flags }} -Wall -Wextra -Werror
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: CPU Information
run: cat /proc/cpuinfo
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
if: ${{ matrix.ccache == 'true' }}
with:
key: ${{ github.job }}-${{ matrix.version }}-${{ matrix.distro }}-${{ matrix.arch_flags }}
- name: Install APT Dependencies
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get -yq install gcovr python3-pip ninja-build parallel "${CC}" "${CXX}"
sudo python3 -m pip install meson==0.55.0
- name: Configure
run: meson setup build
- name: Build
run: meson compile -C build --verbose
- name: Test
run: meson test -C build --print-errorlogs
gcc-qemu:
strategy:
matrix:
include:
- version: 12
distro: ubuntu-22.04
cross: aarch64
arch_gnu: aarch64
arch_deb: arm64
- version: 12
distro: ubuntu-22.04
cross: riscv64
arch_gnu: riscv64
arch_deb: riscv64
- version: 12
distro: ubuntu-22.04
cross: s390x
arch_gnu: s390x
arch_deb: s390x
# power: 150 failures: x86/{avx512/range,sse,sse3}, arm/neon/*, wasm_simd128/, wasm_relexad_simd/*
# https://github.com/simd-everywhere/simde/issues/903
# - version: 12
# distro: ubuntu-22.04
# cross: power9
# arch_gnu: powerpc64le
# arch_deb: ppc64el
runs-on: ${{ matrix.distro }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- run: sudo apt-get update
- name: CPU Information
run: cat /proc/cpuinfo
- name: Install APT Dependencies
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update -y
sudo apt-get -yq install ninja-build parallel \
gcc-${{ matrix.version }}-${{ matrix.arch_gnu }}-linux-gnu \
g++-${{ matrix.version }}-${{ matrix.arch_gnu }}-linux-gnu binfmt-support \
qemu-user-static python3-pip libc6-${{ matrix.arch_deb }}-cross libstdc++-${{ matrix.version }}-dev-${{ matrix.arch_deb }}-cross
sudo python3 -m pip install meson==0.55.0
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ github.job }}-${{ matrix.distro }}-${{ matrix.cross }}
- name: add ccache to the build path
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
- name: Configure
run: meson setup --cross-file=docker/cross-files/${{ matrix.cross }}-gcc-${{ matrix.version }}-ccache.cross build
- name: Build
run: ninja -C build -v
- name: Test
run: meson test -C build --print-errorlogs
clang:
strategy:
matrix:
include:
# - version: "3.5"
# distro: ubuntu-16.04
# arch_flags: -mavx2
# - version: "3.6"
# distro: ubuntu-16.04
# arch_flags: -mavx2
# - version: "3.7"
# distro: ubuntu-16.04
# arch_flags: -mavx2
# - version: "3.8"
# distro: ubuntu-16.04
# arch_flags: -mavx2
#- version: "3.9"
# distro: ubuntu-18.04
# arch_flags: -mavx2
# - version: "4.0"
# distro: ubuntu-18.04
# arch_flags: -mavx2
#- version: "5.0"
# distro: ubuntu-18.04
# arch_flags: -mavx2
# - version: "6.0"
# distro: ubuntu-20.04
# arch_flags: -march=native
- version: "7"
distro: ubuntu-20.04
arch_flags: -march=native
# - version: "8"
# distro: ubuntu-20.04
# arch_flags: -march=native
- version: "10"
distro: ubuntu-20.04
arch_flags: -march=native
- version: "12"
distro: ubuntu-20.04
arch_flags: -march=native
- version: "12"
distro: ubuntu-20.04
arch_flags: -ffast-math
ccache: 'true'
- version: "13"
distro: ubuntu-22.04
arch_flags: -march=native
- version: "13"
distro: ubuntu-22.04
arch_flags: -ffast-math
ccache: 'true'
- version: "14"
distro: ubuntu-22.04
arch_flags: -march=native
- version: "14"
distro: ubuntu-22.04
arch_flags: -ffast-math
ccache: 'true'
- version: "15"
distro: ubuntu-22.04
arch_flags: -march=native
- version: "15"
distro: ubuntu-22.04
arch_flags: -ffast-math
ccache: 'true'
runs-on: ${{ matrix.distro }}
env:
CC: clang-${{ matrix.version }}
CXX: clang++-${{ matrix.version }}
CFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -fno-lax-vector-conversions
CXXFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -fno-lax-vector-conversions
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: CPU Information
run: cat /proc/cpuinfo
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
if: ${{ matrix.ccache == 'true' }}
with:
key: ${{ github.job }}-${{ matrix.version }}-${{ matrix.distro }}-${{ matrix.arch_flags }}
- name: Install APT Dependencies
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get -yq install gcovr ninja-build python3-pip clang-${{ matrix.version }}
sudo python3 -m pip install meson==0.55.0
- name: Configure
run: meson setup build
- name: Build
run: meson compile -C build --verbose
- name: Test
run: meson test -C build --print-errorlogs
macos:
runs-on: macos-11
strategy:
matrix:
# https://www.jessesquires.com/blog/2020/01/06/selecting-an-xcode-version-on-github-ci/
# https://github.com/actions/virtual-environments/blob/master/images/macos/macos-10.15-Readme.md#xcode
# xcode: ["11.3.1", "11.7", "12.3", "12.4"]
xcode: ["11.7", "12.4", "12.5.1"] # for macos-11
env:
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
# - name: System Information
# run: system_profiler
- name: Compiler version
run: cc --version
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ github.job }}-${{ matrix.xcode }}
- name: Install Homebrew Dependencies
run: brew install meson ninja gcovr
- name: Configure
run: meson setup build -Db_coverage=true
- name: Build
run: ninja -C build -v
- name: Test
run: ninja -C build -v test
- name: Coverage Report
run: ninja -C build -v coverage-xml
- name: CodeCov.io
uses: codecov/codecov-action@v3
with:
file: ./build/meson-logs/coverage.xml
icc:
runs-on: ubuntu-22.04
env:
CC: /home/runner/.local/bin/icx
CXX: /home/runner/.local/bin/icpx
CFLAGS: -Wall -Werror -march=native -fp-model precise
CXXFLAGS: -Wall -Werror -march=native -fp-model precise
steps:
- uses: actions/checkout@v3
- name: CPU Information
run: cat /proc/cpuinfo
- name: Install APT Dependencies
run: sudo apt-get install -y ninja-build ninja-build python3-pip && sudo pip install meson==0.64
- name: Install ICC
run: |
# download the key to system keyring
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
# add signed entry to apt sources and configure the APT client to use Intel repository:
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update
sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp
mkdir -p ~/.local/bin/ || true
for exe in icx icpx; do
printf '#!/bin/bash\nARGS="$@"\nsource /opt/intel/oneapi/compiler/latest/env/vars.sh >/dev/null\n%s ${ARGS}\n' "${exe}" > ~/.local/bin/"${exe}"
chmod 0755 ~/.local/bin/"${exe}";
done
- name: Configure
run: meson setup build
- name: Build
run: ninja -C build -v
- name: Test
run: ninja -C build -v test
msvc-arm64:
name: Windows MSVC-AArch64
runs-on: [windows-latest]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Meson, Ninja and coverage
run: |
python3 -m pip install --upgrade ninja meson
choco install opencppcoverage codecov
- name: Use ARM64 Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64_arm64
- name: Configure and Build
run: |
meson --backend=ninja build --cross-file test/arm64cl.txt
ninja -C build -v test

View file

@ -0,0 +1,44 @@
name: "CodeQL"
on:
push:
branches: [master]
pull_request:
# The branches below must be a subset of the branches above
branches: [master]
schedule:
- cron: '0 8 * * 3'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Override automatic language detection by changing the below list
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
language: ['cpp']
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
steps:
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
- run: |
sudo add-apt-repository 'ppa:ubuntu-toolchain-r/test' && sudo apt-get update && sudo apt-get install -y ninja-build ninja-build python3-pip python3-setuptools python3-wheel gcc-10 g++-10
pip3 install meson==0.55.0
"$HOME/.local/bin/meson" setup build
ninja -C build -v
ninja -C build -v test
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

View file

@ -0,0 +1,50 @@
name: deploy
on:
push:
branches: [ master ]
jobs:
no-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
persist-credentials: false
fetch-depth: 0
- uses: actions/setup-python@v1
- name: Filter Repository
run: |
pip install git-filter-repo
git-filter-repo --force --path-rename COPYING:.no-test/COPYING && \
git-filter-repo --path-rename '.no-test/':'simde/' && \
git-filter-repo --subdirectory-filter simde
- name: GitHub Push
uses: ad-m/github-push-action@v0.6.0
with:
github_token: ${{ secrets.PUSH_TO_NO_TESTS_TOKEN }}
repository: simd-everywhere/simde-no-tests
status:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
persist-credentials: false
fetch-depth: 0
- uses: actions/checkout@v3
with:
fetch-depth: 0
repository: simd-everywhere/implementation-status
token: ${{ secrets.PUSH_IMPLEMENTATION_STATUS_TOKEN }}
path: implementation-status
- name: Install APT Dependencies
run: sudo apt-get update && sudo apt-get install -y python3-lxml
- name: Update
run: ./implementation-status/scripts/update.sh .
- uses: EndBug/add-and-commit@v7
with:
cwd: implementation-status
message: Sync with latest SIMDe.
default_author: github_actions
branch: main

View file

@ -0,0 +1,45 @@
# This workflow integrates a collection of open source static analysis tools
# with GitHub code scanning. For documentation, or to provide feedback, visit
# https://github.com/github/ossar-action
name: OSSAR
on:
push:
branches: [master]
jobs:
OSSAR-Scan:
# OSSAR runs on windows-latest.
# ubuntu-latest and macos-latest support coming soon
runs-on: windows-latest
steps:
# Checkout your code repository to scan
- name: Checkout repository
uses: actions/checkout@v3
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
# Install dotnet, used by OSSAR
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '6.0.x'
# Run open source static analysis tools
- name: Run OSSAR
uses: github/ossar-action@v1
id: ossar
# Upload results to the Security tab
- name: Upload OSSAR results
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: ${{ steps.ossar.outputs.sarifFile }}

4
thirdparty/simde/.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
*~
/build*
/.cache
/.vscode

3
thirdparty/simde/.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "munit"]
path = test/munit
url = https://github.com/nemequ/munit.git

10
thirdparty/simde/.no-test/README.md vendored Normal file
View file

@ -0,0 +1,10 @@
# SIMDe Without Test Cases
This repository contains only the core of
[SIMDe](https://github.com/simd-everywhere/simde).
It is generated automatically for every commit to master, and is
intended to be used as a submodule in projects which don't want to
include the (rather large) test cases.
All development work happens in the main repository, please do not
file issues or create pull requests against this repository.

View file

@ -0,0 +1,55 @@
version: v1.0
name: Build
agent:
machine:
type: e1-standard-2
os_image: ubuntu1804
blocks:
- name: CI
skip:
when: "branch = 'master' OR (branch !~ '^ci/semaphore(/.*)?' AND branch =~ '^ci/.+')"
task:
jobs:
- name: GCC
matrix:
- env_var: GCC_VERSION
values: ['8', '7', '6', '5']
commands:
- cat /proc/cpuinfo
- checkout
- git submodule update --init
- sudo apt-get update
- sudo apt-get install -y ninja-build python3-pip python3-setuptools gcovr gcc-${GCC_VERSION} g++-${GCC_VERSION}
- pip3 install meson==0.55.0
- mkdir build
- CC="gcc-${GCC_VERSION}" CXX="g++-${GCC_VERSION}" ~/.local/bin/meson setup build -Db_coverage=true --optimization $(expr $RANDOM % 3)
- ninja -C build -v
- './build/test/run-tests --list | grep -oP ''^/([^\/]+)/([^\/]+)'' | sort -u | xargs parallel ./build/test/run-tests --color always {} :::'
- ninja -C build coverage-xml
env_vars:
- name: CFLAGS
value: -Wextra -Werror -march=native
- name: CXXFLAGS
value: -Wextra -Werror -march=native
- name: clang
matrix:
- env_var: CLANG_VERSION
values: ['10', '8', '6.0', '4.0', '3.9']
commands:
- cat /proc/cpuinfo
- checkout
- git submodule update --init
- sudo apt-get update
- sudo apt-get install -y ninja-build python3-pip python3-setuptools gcovr clang-${CLANG_VERSION}
- pip3 install meson==0.55.0
- mkdir build
- CC="clang-${CLANG_VERSION}" CXX="clang++-${CLANG_VERSION}" ~/.local/bin/meson setup build -Db_coverage=true
- ninja -C build -v
- './build/test/run-tests --list | grep -oP ''^/([^\/]+)/([^\/]+)'' | sort -u | xargs parallel ./build/test/run-tests --color always {} :::'
- ninja -C build coverage-xml
env_vars:
- name: CFLAGS
value: -Weverything -Werror -march=native
- name: CXXFLAGS
value: -Weverything -Werror -march=native

52
thirdparty/simde/.travis.yml vendored Normal file
View file

@ -0,0 +1,52 @@
language: c
os: linux
dist: focal
jobs:
include:
- name: POWER9
if: branch != master OR type == pull_request
arch: ppc64le
compiler:
- clang
env:
- CC="clang"
- CXX="clang++"
- CFLAGS="-mcpu=power9 -Weverything -Werror"
- CXXFLAGS="-mcpu=power9 -Weverything -Werror"
- JOBS="$(nproc)"
addons:
apt:
packages: ninja-build python3-pip clang
- name: z/Arch
if: branch != master OR type == pull_request
arch: s390x
compiler:
- gcc
env:
- CC="gcc"
- CXX="g++"
- CFLAGS="-march=native -mzvector -Wextra -Werror"
- CXXFLAGS="-march=native -mzvector -Wextra -Werror"
- JOBS="$(nproc)"
addons:
apt:
packages: ninja-build python3-pip gcc g++
before_install:
- cat /proc/cpuinfo
- cat /proc/meminfo
install:
- pip3 install meson==0.55.0
script:
- meson setup build -Db_coverage=true
- ninja -C build -v -j${JOBS}
after_success:
- meson test -C build --print-errorlogs
notifications:
email: false

85
thirdparty/simde/CONTRIBUTING.md vendored Normal file
View file

@ -0,0 +1,85 @@
# Contributing to SIMDe
First off, if you're even reading this, thank you! There is a lot of
work to do, and any help is appreciated.
If you haven't already, please read the
[README](https://github.com/simd-everywhere/simde/blob/master/README.md). The
[wiki](https://github.com/simd-everywhere/simde/wiki) also has some good
information, especially the
[FAQ](https://github.com/simd-everywhere/simde/wiki/FAQ) and a guide on how to
[implement a new
function](https://github.com/simd-everywhere/simde/wiki/Implementing-a-New-Function).
For information on developing for architectures you don't have access
to, please see the [Development
Environment](https://github.com/simd-everywhere/simde/wiki/Development-Environment)
page on the wiki.
If you still have questions, or if anything below doesn't make sense
to you, please feel free to use the [issue
tracker](https://github.com/simd-everywhere/simde/issues) or the [mailing
list](https://groups.google.com/forum/#!forum/simde) to ask. I know
the SIMDe documentation needs a lot of improvement, and asking
questions will help us understand what is missing, so please don't be
shy!
## Building the Tests
SIMDe contains an extensive test suite used for development. Most
users will never need to build the suite, but if you're contributing
code to SIMDe you'll need to build them.
Here is the basic procedure for compiling and running the tests:
### On Unix
```bash
mkdir -p build
cd build
CFLAGS="-march=native" CXXFLAGS="-march=native" meson setup ..
ninja test
```
Note that `-march=native` may not be the right flag for your compiler.
That should work for most compilers on x86/x86_64, though MSVC is an
exception (try `/arch:AVX2` instead of `-march=native`). On other
architectures please consult your compiler documentation to find out
what flags you should use to enable the SIMD extension for your target
platform. Here are a few to try:
* ARM:
* `-march=armv8-a+simd` (for AArch64)
* `-march=armv8-a+simd -mfpu=auto` (for ARMv8)
* `-march=armv7-a -mfpu=neon` (for ARMv7)
* POWER
* `-mcpu=native`
If you need a flag not listed above, please let us know so we can add
it to the list.
### On Windows:
```bash
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" arm64
mkdir build
cd build
set CFLAGS="/std:c11"
set CXXFLAGS="/Zc:preprocessor"
meson setup ..
ninja test
```
Note change arm64 to x64 on x86_64 CPU.
You may also want to take a look at the
[Docker container](https://github.com/simd-everywhere/simde/tree/master/docker)
which has many builds pre-configured, including cross-compilers and emulators.
## Coding Style
SIMDe has an [EditorConfig](https://editorconfig.org/) file to
configure your editor for things like tabs vs. spaces, how many spaces,
etc. If you use an editor which doesn't support it out of the box then
odds are good there is a plugin you can download; please do so.
For other coding style information, please see the
[Coding Style](https://github.com/simd-everywhere/simde/wiki/Coding-Style)
document in the Wiki.

20
thirdparty/simde/COPYING vendored Normal file
View file

@ -0,0 +1,20 @@
Copyright (c) 2017 Evan Nemerson <evan@nemerson.com>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

422
thirdparty/simde/README.md vendored Normal file
View file

@ -0,0 +1,422 @@
# SIMD Everywhere
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-18-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/simd-everywhere/community)
The SIMDe header-only library provides fast, portable implementations of
[SIMD intrinsics](https://en.wikipedia.org/wiki/SIMD) on hardware which
doesn't natively support them, such as calling [SSE](https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions)
functions on ARM. There is no performance penalty if the hardware
supports the native implementation (*e.g.*, SSE/[AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions)
runs at full speed on [x86](https://en.wikipedia.org/wiki/X86),
[NEON](https://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_(Neon)) on [ARM](https://en.wikipedia.org/wiki/ARM_architecture),
*etc.*).
This makes porting code to other architectures much easier in a few
key ways:
First, instead of forcing you to rewrite everything for each
architecture, SIMDe lets you get a port up and running almost
effortlessly. You can then start working on switching the most
performance-critical sections to native intrinsics, improving
performance gradually. SIMDe lets (for example) SSE/AVX and NEON code
exist side-by-side, in the same implementation.
Second, SIMDe makes it easier to write code targeting [ISA](https://en.wikipedia.org/wiki/Instruction_set_architecture)
extensions you don't have convenient access to. You can run NEON code on your
x86 machine *without an emulator*. Obviously you'll eventually want
to test on the actual hardware you're targeting, but for most
development, SIMDe can provide a much easier path.
SIMDe takes a very different approach from most other SIMD abstraction
layers in that it aims to expose the entire functionality of the
underlying instruction set. Instead of limiting functionality to the
lowest common denominator, SIMDe tries to minimize the amount of
effort required to port while still allowing you the space to optimize
as needed.
The current focus is on writing complete portable implementations,
though a large number of functions already have accelerated
implementations using one (or more) of the following:
* SIMD intrinsics from other ISA extensions (e.g., using NEON to
implement SSE).
* Compiler-specific vector extensions and built-ins such as
[`__builtin_shufflevector`](http://clang.llvm.org/docs/LanguageExtensions.html#langext-builtin-shufflevector)
and
[`__builtin_convertvector`](http://clang.llvm.org/docs/LanguageExtensions.html#langext-builtin-convertvector)
* Compiler auto-vectorization hints, using:
* [OpenMP 4 SIMD](http://www.openmp.org/)
* [Cilk Plus](https://www.cilkplus.org/)
* [GCC loop-specific pragmas](https://gcc.gnu.org/onlinedocs/gcc/Loop-Specific-Pragmas.html)
* [clang pragma loop hint directives](http://llvm.org/docs/Vectorizers.html#pragma-loop-hint-directives)
You can [try SIMDe online](https://simde.netlify.app/godbolt/demo)
using Compiler Explorer and an amalgamated SIMDe header.
If you have any questions, please feel free to use the
[issue tracker](https://github.com/simd-everywhere/simde/issues) or the
[mailing list](https://groups.google.com/forum/#!forum/simde).
## Current Status
There are currently complete implementations of the following instruction
set extensions:
* x86 / x86_64
* [MMX](https://en.wikipedia.org/wiki/MMX_(instruction_set))
* [SSE](https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions)
* [SSE2](https://en.wikipedia.org/wiki/SSE2)
* [SSE3](https://en.wikipedia.org/wiki/SSE3)
* [SSSE3](https://en.wikipedia.org/wiki/SSSE3)
* [SSE4.1](https://en.wikipedia.org/wiki/SSE4#SSE4.1)
* [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions)
* [AVX2](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2)
* [FMA](https://en.wikipedia.org/wiki/FMA_instruction_set)
* [GFNI](https://en.wikipedia.org/wiki/AVX-512#GFNI)
* [CLMUL](https://en.wikipedia.org/wiki/CLMUL_instruction_set)
* [XOP](https://en.wikipedia.org/wiki/XOP_instruction_set)
* [SVML](https://software.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top/compiler-reference/intrinsics/intrinsics-for-intel-advanced-vector-extensions-512-intel-avx-512-instructions/intrinsics-for-arithmetic-operations-1/intrinsics-for-short-vector-math-library-svml-operations.html)
* WebAssembly
* [SIMD128](https://github.com/WebAssembly/simd)
As well as partial support for many others, including NEON and SVE in
addition to several AVX-512 extensions. See the
[instruction-set-support](https://github.com/simd-everywhere/simde/issues?q=is%3Aissue+is%3Aopen+label%3Ainstruction-set-support+sort%3Aupdated-desc)
label in the issue tracker for details on progress. If you'd like to
be notified when an instruction set is available you may subscribe to
the relevant issue.
If you have a project you're interested in using with SIMDe but we
don't yet support all the functions you need, please file an issue
with a list of what's missing so we know what to prioritize.
The default branch is protected so commits never reach it unless
they have passed extensive CI checks. Status badges don't really
make sense since they will always be green, but here are the links:
* [GitHub Actions](https://github.com/simd-everywhere/simde/actions)
* [Cirrus CI](https://cirrus-ci.com/github/simd-everywhere/simde)
* [Semaphore CI](https://nemequ.semaphoreci.com/projects/simde)
* [Circle CI](https://app.circleci.com/pipelines/github/simd-everywhere/simde)
* [AppVeyor](https://ci.appveyor.com/project/nemequ/simde)
* [Azure Pipelines](https://dev.azure.com/simd-everywhere/SIMDe/_build)
* [Drone CI](https://cloud.drone.io/simd-everywhere/simde/)
If you're adding a new build I suggest Cirrus CI, which is where we
currently have the most room given the number of builds currently on
the platform and the quotas for free/open-source usage. Alternately,
feel free to set up another provider (such as
[Codefresh](https://codefresh.io/),
[Shippable](https://www.shippable.com/),
[Bitrise](https://www.bitrise.io/),
[Werkaer](https://app.wercker.com/), etc.).
*Notice*: we plan on changing the name of the default branch from
"master" to something else soon; we are just trying to wait to see what
name git settles on so we can be consistent.
## Contributing
First off, if you're reading this: thank you! Even considering
contributing to SIMDe is very much appreciated!
SIMDe is a fairly large undertaking; there are a *lot* of functions to
get through and a lot of opportunities for optimization on different
platforms, so we're very happy for any help you can provide.
Programmers of all skill levels are welcome, there are lots of tasks
which are pretty straightforward and don't require any special
expertise.
If you're not sure how you'd like to contribute, please consider taking
a look at [the issue tracker](https://github.com/simd-everywhere/simde/issues).
There is a [good first issue](https://github.com/simd-everywhere/simde/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
tag if you want to ease into a your first contributions, but if you're
interested in something else please get in touch via the issue tracker;
we're happy to help you get a handle on whatever you are interested in.
If you're interested in implementing currently unimplemented functions,
there is [a
guide](https://github.com/simd-everywhere/simde/wiki/Implementing-a-New-Function)
explaining how to add new functions and how to quickly and easily get
a test case in place. It's a bit rough right now, but if anything is
unclear please feel free to use the issue tracker to ask about
anything you're not clear on.
## Usage
First, it is important to note that *you do not need two separate
versions* (one using SIMDe, the other native). If the native functions
are available SIMDe will use them, and compilers easily optimize away
any overhead from SIMDe; all they have to do is some basic inlining.
`-O2` should be enough, but we strongly recommend `-O3` (or whatever
flag instructs your compiler to aggressizely optimize) since many of
the portable fallbacks are substantially faster with aggressive
auto-vectorization that isn't enabled at lower optimization levels.
Each instruction set has a separate file; `x86/mmx.h` for MMX,
`x86/sse.h` for SSE, `x86/sse2.h` for SSE2, and so on. Just include
the header for whichever instruction set(s) you want *instead of the
native version* (if you include the native version after SIMDe it will
result in compile-time errors if native aliases are enabled). SIMDe
will provide the fastest implementation it can given which extensions
you've enabled in your compiler (i.e., if you want to use NEON to
implement SSE, you may need to pass something like `-mfpu=neon`
or `-march=armv8-a+simd`. See
[GCC ARM-Options](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html)
for more information).
If you define `SIMDE_ENABLE_NATIVE_ALIASES` before including SIMDe
you can use the same names as the native functions. Unfortunately,
this is somewhat error-prone due to portability issues in the APIs, so
it's recommended to only do this for testing. When
`SIMDE_ENABLE_NATIVE_ALIASES` is undefined only the versions prefixed
with `simde_` will be available; for example, the MMX `_mm_add_pi8`
intrinsic becomes `simde_mm_add_pi8`, and `__m64` becomes `simde__m64`.
Since SIMDe is meant to be portable, many functions which assume types
are of a specific size have been altered to use fixed-width types
instead. For example, Intel's APIs use `char` for signed 8-bit
integers, but `char` on ARM is generally unsigned. SIMDe uses `int8_t`
to make the API portable, but that means your code may require some
minor changes (such as using `int8_t` instead of `char`) to work on
other platforms.
That said, the changes are usually quite minor. It's often enough to
just use search and replace, manual changes are required pretty
infrequently.
### OpenMP 4 SIMD
SIMDe makes extensive use of annotations to help the compiler vectorize
code. By far the best annotations use the SIMD support built in to
OpenMP 4, so if your compiler supports these annotations we strongly
recommend you enable them.
If you are already using OpenMP, SIMDe will automatically detect it
using the `_OPENMP` macro and no further action is required.
Some compilers allow you to enable OpenMP SIMD *without* enabling the
full OpenMP. In such cases there is no runtime dependency on OpenMP
and no runtime overhead; SIMDe will just be faster. Unfortunately,
SIMDe has no way to detect such situations (the `_OPENMP` macro is not
defined), so after enabling it in your compiler you'll need to define
`SIMDE_ENABLE_OPENMP` (e.g., by passing `-DSIMDE_ENABLE_OPENMP`) to get
SIMDe to output the relevant pragmas.
Enabling OpenMP SIMD support varies by compiler:
* GCC 4.9+ and clang 6+ support a `-fopenmp-simd` command line flag.
* ICC supports a `-qopenmp-simd` command line flag.
* MCST's LCC enables OpenMP SIMD by default, so no flags are needed
(technically you don't even need to pass `-DSIMDE_ENABLE_OPENMP`).
We are not currently aware of any other compilers which allow you to
enable OpenMP SIMD support without enabling full OpenMP (if you are
please file an issue to let us know). You should determine whether you
wish to enable full OpenMP support on a case-by-case basis, but it is
likely that the overhead of linking to (but not using) the OpenMP
runtime library will be dwarfed by the performance improvements from
using the OpenMP SIMD annotations in SIMDe.
If you choose not to use OpenMP SIMD, SIMDe also supports
using [Cilk Plus](https://www.cilkplus.org/), [GCC loop-specific
pragmas](https://gcc.gnu.org/onlinedocs/gcc/Loop-Specific-Pragmas.html),
or [clang pragma loop hint
directives](http://llvm.org/docs/Vectorizers.html#pragma-loop-hint-directives),
though these are not nearly as effective as OpenMP SIMD and depending
on them will likely result in less efficient code. All of these are
detected automatically by SIMDe, so if they are enabled in your
compiler nothing more is required.
If for some reason you do not wish to enable OpenMP 4 SIMD support even
though SIMDe detects it, you should define `SIMDE_DISABLE_OPENMP` prior
to including SIMDe.
## Portability
### Compilers
SIMDe does depend on some C99 features, though the subset supported by
MSVC also works. While we do our best to make sure we provide optimized
implementations where they are supported, SIMDe does contain portable
fallbacks which are designed to work on any C99 compiler.
Every commit is tested in CI on multiple compilers, platforms, and
configurations, and our test coverage is extremely extensive.
Currently tested compilers include:
* GCC versions back to 4.8
* Clang versions back to 3.8
* Microsoft Visual Studio back to 12 (2013)
* IBM XL C/C++
* Intel C/C++ Compiler (ICC)
I'm generally willing to accept patches to add support for other
compilers, as long as they're not too disruptive, *especially* if we
can get CI support going. If using one of our existing CI providers
isn't an option then other CI platforms can be added.
### Hardware
The following architectures are tested in CI for every commit:
* x86_64
* x86
* AArch64
* ARMv8
* ARMv7
* PPC64
* MIPS Loongson
We would love to add more, so patches are extremely welcome!
## Related Projects
* The "builtins" module in
[portable-snippets](https://github.com/nemequ/portable-snippets)
does much the same thing, but for compiler-specific intrinsics
(think `__builtin_clz` and `_BitScanForward`), **not** SIMD
intrinsics.
* Intel offers an emulator, the [Intel® Software Development
Emulator](https://software.intel.com/en-us/articles/intel-software-development-emulator/)
which can be used to develop software which uses Intel intrinsics
without having to own hardware which supports them, though it
doesn't help for deployment.
* [Iris](https://github.com/AlexYaruki/iris) is the only other project
I'm aware of which is attempting to create portable implementations
like SIMDe. SIMDe is much further along on the Intel side, but Iris
looks to be in better shape on ARM. C++-only, Apache 2.0 license.
AFAICT there are no accelerated fallbacks, nor is there a good way to
add them since it relies extensively on templates.
* There are a few projects trying to implement one set with another:
* [ARM_NEON_2_x86_SSE](https://github.com/intel/ARM_NEON_2_x86_SSE)
— implementing NEON using SSE. Quite extensive, Apache 2.0
license.
* [sse2neon](https://github.com/jratcliff63367/sse2neon) —
implementing SSE using NEON. This code has already been merged
into SIMDe.
* [veclib](https://github.com/IvantheDugtrio/veclib) — implementing
SSE2 using AltiVec/VMX, using a non-free IBM library called
[powerveclib](https://www.ibm.com/developerworks/community/groups/community/powerveclib/)
* [SSE-to-NEON](https://github.com/otim/SSE-to-NEON) — implementing
SSE with NEON. Non-free, C++.
* [arm-neon-tests](https://github.com/christophe-lyon/arm-neon-tests)
contains tests to verify NEON implementations.
If you know of any other related projects, please [let us
know](https://github.com/simd-everywhere/simde/issues/new)!
## Caveats
Sometime features can't be emulated. If SIMDe is operating in native
mode the functions will work as expected, but if there is no native
support some caveats apply:
* Many functions require <math.h> and/or <fenv.h>. SIMDe will still
work without those headers, but the results of those functions are
undefined.
* x86 / x86_64
* SSE
* `SIMDE_MM_SET_ROUNDING_MODE()` will use `fesetround()`, altering
the global rounding mode.
* `simde_mm_getcsr` and `simde_mm_setcsr` only implement bits 13
and 14 (rounding mode).
* AVX
* `simde_mm256_test*` do not set the CF/ZF registers as there is
no portable way to implement that functionality.
* `simde_mm256_zeroall` and `simde_mm256_zeroupper` are not
implemented as there is no portable way to implement that
functionality.
Additionally, there are some known limitations which apply when using
native aliases (`SIMDE_ENABLE_NATIVE_ALIASES`):
* On Windows x86 (but not x86_64), some MMX functions and SSE/SSE2
functions which use MMX types (__m64) other than for pointers may
return incorrect results.
Also, as mentioned earlier, while some APIs make assumptions about
basic types (*e.g.*, `int` is 32 bits), SIMDe does not, so many types
have been altered to use portable fixed-width versions such as
`int32_t`.
If you find any other differences, please file an issue so we can either fix
it or add it to the list above.
## Benefactors
SIMDe uses resources provided for free by a number of organizations.
While this shouldn't be taken to imply endorsement of SIMDe, we're
tremendously grateful for their support:
* [IntegriCloud](https://integricloud.com/) — provides access to a very
fast POWER9 server for developing AltiVec/VMX support.
* [GCC Compile Farm](https://gcc.gnu.org/wiki/CompileFarm) — provides
access to a wide range of machines with different architectures for
developing support for various ISA extensions.
* [CodeCov.io](https://codecov.io/) — provides code coverage analysis
for our test cases.
* [Google](https://www.google.com/) ­— financing
[Summer of Code](https://summerofcode.withgoogle.com/), substantial
amounts of code (Sean Maher's contributions), and an [Open Source Peer
Bonus](https://opensource.google/docs/growing/peer-bonus/).
Without such organizations donating resources, SIMDe wouldn't be nearly
as useful or usable as it is today.
We would also like to thank anyone who has helped develop the myriad
of software on which SIMDe relies, including compilers and analysis
tools.
Finally, a special thank you to
[anyone who has contributed](https://github.com/simd-everywhere/simde/graphs/contributors)
to SIMDe, filed bugs, provided suggestions, or helped with SIMDe
development in any way.
## License
SIMDe is distributed under an MIT-style license; see COPYING for
details.
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://nemequ.github.io/"><img src="https://avatars0.githubusercontent.com/u/1151?v=4" width="100px;" alt=""/><br /><sub><b>Evan Nemerson</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=nemequ" title="Code">💻</a> <a href="#content-nemequ" title="Content">🖋</a> <a href="https://github.com/simd-everywhere/simde/commits?author=nemequ" title="Documentation">📖</a> <a href="#example-nemequ" title="Examples">💡</a> <a href="#ideas-nemequ" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-nemequ" title="Answering Questions">💬</a> <a href="https://github.com/simd-everywhere/simde/pulls?q=is%3Apr+reviewed-by%3Anemequ" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/simd-everywhere/simde/commits?author=nemequ" title="Tests">⚠️</a> <a href="#tutorial-nemequ" title="Tutorials">✅</a> <a href="#talk-nemequ" title="Talks">📢</a> <a href="https://github.com/simd-everywhere/simde/issues?q=author%3Anemequ" title="Bug reports">🐛</a> <a href="#infra-nemequ" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-nemequ" title="Maintenance">🚧</a> <a href="#projectManagement-nemequ" title="Project Management">📆</a></td>
<td align="center"><a href="https://orcid.org/0000-0002-2961-9670"><img src="https://avatars3.githubusercontent.com/u/1330696?v=4" width="100px;" alt=""/><br /><sub><b>Michael R. Crusoe</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/issues?q=author%3Amr-c" title="Bug reports">🐛</a> <a href="https://github.com/simd-everywhere/simde/commits?author=mr-c" title="Code">💻</a> <a href="#eventOrganizing-mr-c" title="Event Organizing">📋</a> <a href="#fundingFinding-mr-c" title="Funding Finding">🔍</a> <a href="#ideas-mr-c" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-mr-c" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#platform-mr-c" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/simd-everywhere/simde/commits?author=mr-c" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/himanshi18037"><img src="https://avatars1.githubusercontent.com/u/43923076?v=4" width="100px;" alt=""/><br /><sub><b>HIMANSHI MATHUR</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=himanshi18037" title="Code">💻</a> <a href="https://github.com/simd-everywhere/simde/commits?author=himanshi18037" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/masterchef2209"><img src="https://avatars0.githubusercontent.com/u/27916352?v=4" width="100px;" alt=""/><br /><sub><b>Hidayat Khan</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=masterchef2209" title="Code">💻</a> <a href="https://github.com/simd-everywhere/simde/commits?author=masterchef2209" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/rosbif"><img src="https://avatars1.githubusercontent.com/u/553899?v=4" width="100px;" alt=""/><br /><sub><b>rosbif</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=rosbif" title="Code">💻</a> <a href="https://github.com/simd-everywhere/simde/commits?author=rosbif" title="Tests">⚠️</a> <a href="https://github.com/simd-everywhere/simde/issues?q=author%3Arosbif" title="Bug reports">🐛</a> <a href="#ideas-rosbif" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center"><a href="http://junaruga.hatenablog.com/"><img src="https://avatars2.githubusercontent.com/u/121989?v=4" width="100px;" alt=""/><br /><sub><b>Jun Aruga</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=junaruga" title="Code">💻</a> <a href="#ideas-junaruga" title="Ideas, Planning, & Feedback">🤔</a> <a href="#platform-junaruga" title="Packaging/porting to new platform">📦</a> <a href="#infra-junaruga" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-junaruga" title="Maintenance">🚧</a> <a href="https://github.com/simd-everywhere/simde/commits?author=junaruga" title="Tests">⚠️</a> <a href="https://github.com/simd-everywhere/simde/issues?q=author%3Ajunaruga" title="Bug reports">🐛</a></td>
<td align="center"><a href="https://github.com/marmeladema"><img src="https://avatars2.githubusercontent.com/u/1629419?v=4" width="100px;" alt=""/><br /><sub><b>Élie ROUDNINSKI</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=marmeladema" title="Code">💻</a> <a href="https://github.com/simd-everywhere/simde/commits?author=marmeladema" title="Tests">⚠️</a></td>
</tr>
<tr>
<td align="center"><a href="http://www.bache.name"><img src="https://avatars3.githubusercontent.com/u/7937081?v=4" width="100px;" alt=""/><br /><sub><b>Jesper Storm Bache</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=jsbache" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/jeffdaily"><img src="https://avatars1.githubusercontent.com/u/904248?v=4" width="100px;" alt=""/><br /><sub><b>Jeff Daily</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=jeffdaily" title="Code">💻</a> <a href="#infra-jeffdaily" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center"><a href="https://github.com/yekm"><img src="https://avatars2.githubusercontent.com/u/205196?v=4" width="100px;" alt=""/><br /><sub><b>Pavel</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=yekm" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/sabarishbollapragada"><img src="https://avatars3.githubusercontent.com/u/36379720?v=4" width="100px;" alt=""/><br /><sub><b>Sabarish Bollapragada</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=sabarishbollapragada" title="Code">💻</a></td>
<td align="center"><a href="http://www.thegavinli.com/"><img src="https://avatars2.githubusercontent.com/u/371529?v=4" width="100px;" alt=""/><br /><sub><b>Gavin Li</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=gh2o" title="Code">💻</a></td>
<td align="center"><a href="http://www.yiningkarlli.com"><img src="https://avatars0.githubusercontent.com/u/1057198?v=4" width="100px;" alt=""/><br /><sub><b>Yining Karl Li</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=betajippity" title="Code">💻</a></td>
<td align="center"><a href="https://www.facebook.com/anirbandey303"><img src="https://avatars1.githubusercontent.com/u/29774651?v=4" width="100px;" alt=""/><br /><sub><b>Anirban Dey</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=anirbandey303" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Un1Gfn"><img src="https://avatars3.githubusercontent.com/u/28521292?v=4" width="100px;" alt=""/><br /><sub><b>Darren Ng</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=Un1Gfn" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/FaresSalem"><img src="https://avatars0.githubusercontent.com/u/7736245?v=4" width="100px;" alt=""/><br /><sub><b>FaresSalem</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=FaresSalem" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/GorePradnyesh"><img src="https://avatars0.githubusercontent.com/u/843197?v=4" width="100px;" alt=""/><br /><sub><b>Pradnyesh Gore</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=GorePradnyesh" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/seanptmaher"><img src="https://avatars0.githubusercontent.com/u/39571964?v=4" width="100px;" alt=""/><br /><sub><b>Sean Maher</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=seanptmaher" title="Code">💻</a></td>
</tr>
</table>
<!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind are welcome!

59
thirdparty/simde/amalgamate.py vendored Executable file
View file

@ -0,0 +1,59 @@
#!/usr/bin/python3
# amalgamate.py
# Written by Evan Nemerson <evan@nemerson.com>
#
# To the extent possible under law, the author(s) have dedicated all
# copyright and related and neighboring rights to this software to
# the public domain worldwide. This software is distributed without
# any warranty.
#
# For details, see <http://creativecommons.org/publicdomain/zero/1.0/>.
# SPDX-License-Identifier: CC0-1.0
# Quick and dirty script to amalgamate C into a single file. Includes
# using angle brackets (#include <foo.h>) will be preserved, but for
# includes using double quotes (#include "foo.h") the file will be
# included by this script.
#
# If you make any improvements please report them in the SIMDe issue
# tracker at <https://github.com/simd-everywhere/simde/issues> or
# directly to the author so they can be merged back into the original
# version.
import sys, re, os, subprocess
amalgamate_include = re.compile('^\\s*#\\s*include\\s+\\"([^)]+)\\"\\s$')
already_included = []
def amalgamate(filename, stream):
full_path = os.path.realpath(os.path.realpath(filename))
srcdir = os.path.dirname(full_path)
print('/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */')
git_id = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=srcdir).decode().strip()
print("/* {:s} */".format(git_id))
if full_path not in already_included:
already_included.insert(-1, full_path)
with open(filename) as input_file:
stream.write('/* :: Begin ' + os.path.relpath(full_path) + ' :: */\n')
for source_line in input_file:
a9e_inc_m = amalgamate_include.match(source_line)
if a9e_inc_m:
amalgamate(os.path.join(srcdir, a9e_inc_m.group(1)), stream)
else:
stream.write(source_line)
stream.write('/* :: End ' + os.path.relpath(full_path) + ' :: */\n')
if len(sys.argv) != 2:
sys.stderr.write("USAGE: " + sys.argv[0] + ' SOURCE_FILE\n\n')
sys.stderr.write("This will print a copy of $SOURCE_FILE to stdout, while replacing\n")
sys.stderr.write("all '#include AMALGAMATE(file)' lines with copies of file.\n")
sys.exit(1)
amalgamate(sys.argv[1], sys.stdout)

3
thirdparty/simde/codecov.yml vendored Normal file
View file

@ -0,0 +1,3 @@
comment: false
ignore:
- "test"

122
thirdparty/simde/docker/Dockerfile vendored Normal file
View file

@ -0,0 +1,122 @@
# Dockerfile for SIMDe development
ARG RELEASE=testing
FROM debian:${RELEASE}-slim
ARG DEBIAN_FRONTEND=noninteractive
ARG QEMU_GIT=n
ARG ARCHS="arm64 armel armhf i386 mips64el ppc64el s390x"
RUN \
apt-get update -y && \
apt-get upgrade -y && \
apt-get install -y netselect-apt && \
if netselect-apt -n ${release}; then \
mv sources.list /etc/apt/sources.list; \
fi
COPY docker/bin /tmp/simde-bin
RUN \
for script in simde-reset-build.sh; do \
ln -s /usr/local/src/simde/docker/bin/"${script}" /usr/bin/"${script}"; \
done
# Common packages
RUN \
apt-get update -y && \
apt-get upgrade -y && \
apt-get install -yq --no-install-recommends \
git build-essential \
ccache cmake ninja-build \
'^clang-[0-9\.]+$' \
'^llvm-[0-9\.]+$' \
'^g(cc|\+\+)-[0-9\.]+$' \
gdb valgrind \
binfmt-support qemu-user-static \
creduce screen htop parallel nano rsync strace \
npm libsleef-dev \
python3-pip wget
# Meson on stable is too old, and we want to make sure we keep 0.55
# working for a while.
RUN pip3 install meson==0.55.0
# GCC cross-compilers
RUN \
apt-get update -y && \
apt-get upgrade -y && \
apt-get install -y apt-file && \
apt-file update
RUN \
PACKAGES_TO_INSTALL=""; \
for ARCH in ${ARCHS}; do \
PACKAGES_TO_INSTALL="${PACKAGES_TO_INSTALL} libc6-${ARCH}-cross libstdc++-[0-9]*-dev-${ARCH}-cross"; \
PACKAGES_TO_INSTALL="${PACKAGES_TO_INSTALL} $(apt-file search -x "/usr/bin/$(/tmp/simde-bin/arch2gcc.sh ${ARCH})-(ar|g(cc|\+\+)-[0-9\.]+)" | awk -F: '{ print $1}')"; \
done; \
echo ${PACKAGES_TO_INSTALL} ; \
apt-get install -yq ${PACKAGES_TO_INSTALL}
ENV PATH="/usr/lib/ccache:$PATH"
# ICC
RUN \
apt-get update -y && \
apt-get upgrade -y && \
apt-get install -yq curl gpg && \
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
| gpg --dearmor > /usr/share/keyrings/oneapi-archive-keyring.gpg && \
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" > /etc/apt/sources.list.d/oneAPI.list && \
apt-get update && \
apt-get install -yq --no-install-recommends intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler-dpcpp-cpp && \
for exe in icc icpc icx icpx; do \
printf '#!/bin/bash\nARGS="$@"\nsource /opt/intel/oneapi/compiler/latest/env/vars.sh >/dev/null\n%s ${ARGS}\n' "${exe}" > /usr/bin/"${exe}" && \
chmod 0755 /usr/bin/"${exe}" ; \
done
# # xlc -- Install fails.
# # Once IBM releases a version for Ubuntu Focal (20.04) I hope I can
# # get this working.
# RUN \
# curl -s 'https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/public.gpg' | apt-key add - && \
# echo "deb [arch=ppc64el] https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/ bionic main" > /etc/apt/sources.list.d/xlc.list && \
# apt-get update && \
# XLC_VERSION="$(apt-cache search '^xlc\.[0-9]+\.[0-9]+\.[0-9]+$' | awk '{ print substr($1, 5) }')" && \
# apt-get install "xlc.${XLC_VERSION}:ppc64el" "xlc-license-community.${XLC_VERSION}:ppc64el" && \
# /opt/ibm/xlC/${XLC_VERSION}/bin/xlc_configure <<< 1 >/dev/null
# Intel SDE
COPY test/download-sde.sh /tmp/simde-bin/download-sde.sh
RUN \
"/tmp/simde-bin/download-sde.sh" "/opt/intel/sde" && \
for executable in sde sde64; do \
ln -s "/opt/intel/sde/${executable}" "/usr/bin/${executable}"; \
done
# Emscripten
RUN \
git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk && \
cd /opt/emsdk && ./emsdk install tot ccache-git-emscripten-64bit && ./emsdk activate tot ccache-git-emscripten-64bit && \
ln -s /opt/emsdk/upstream/bin/wasm-ld /usr/bin/wasm-ld && \
npm install jsvu -g && jsvu --os=linux64 --engines=v8 && ln -s "/root/.jsvu/bin/v8" "/usr/bin/v8" && \
echo 'source "/opt/emsdk/emsdk_env.sh"' >> $HOME/.bash_profile && \
echo 'export PATH=/opt/emsdk/ccache/git-emscripten_64bit/bin:$PATH' >> $HOME/.bash_profile
# Meson cross files
RUN \
mkdir -p "/usr/local/share/meson/cross" && ln -s /usr/local/src/simde/docker/cross-files /usr/local/share/meson/cross/simde
# Install QEMU git (necessary for MIPS)
RUN \
if [ ${QEMU_GIT} = "y" ]; then \
apt-get install -y pkg-config libglib2.0-dev libpixman-1-dev && \
git clone https://gitlab.com/qemu-project/qemu.git /usr/local/src/qemu && \
mkdir -p /usr/local/src/qemu/build && cd /usr/local/src/qemu/build && \
../configure --prefix=/opt/qemu && \
make -j$(nproc) && \
make install; \
rm -rf /usr/local/src/qemu; \
fi
RUN mkdir -p /opt/simde
WORKDIR /opt/simde
ENV CCACHE_DIR=/opt/simde/.ccache CCACHE_COMPRESS=1

50
thirdparty/simde/docker/README.md vendored Normal file
View file

@ -0,0 +1,50 @@
# SIMDe Development Container
The basic idea is to set up a Debian system with lots of different
compilers and emulators for different architectures and configure
multiple builds in different directories.
Note that there are also several docker files in the test/
subdirectory. These can be used to test other operating systems,
especially older compilers which aren't supported on Debian testing
anymore.
To use this, just run the `simde-dev.sh` script and go grab ~a cup of
coffee~ lunch (it will take a while, and download a *lot* of packages).
Once the container is ready it will drop you into a bash shell in
`/opt/simde`; this is the build directory.
This will bind the parent directory (the root of the SIMDe checkout)
to `/usr/local/src/simde`; any changes to either will propogate to the
other, meaning you can continue using your normal development
environment and just re-run ninja in the container to (re)build SIMDe.
If you would like build directories to persist across multiple
invocations of `simde-dev.sh`, you can set the `PERSISTENT_BUILD_DIR`
to a directory on the host filesystem and it will be mapped to
`/opt/simde` in the container.
Once your container is finished building, just `simde-reset-build.sh`
and it should be populated with a bunch of subdirectories which you can
build with ninja. For example, `ninja -C gcc-10` will build SIMDe
using GCC 10. If you want to run the tests, `ninja -C gcc-10 test`
(or `cd gcc-10 && ninja test`).
You can also run `simde-reset-build.sh build-name` to (re)generate a
single build.
# Debian Version
By default, we use Debian testing. If you would like to use Debian
unstable instead, just run `simde-dev.sh unstable`.
## Altering or Adding Builds
Each build has an associated Meson cross file (see the `cross-files/`
subdirectory). We kind of abuse these by adding flags like `-Wextra`,
`-Werror`, `-march=...`, *etc.*, which aren't really about
cross-compilation. However, you can add or remove C/C++ flags in the
cross files, or if you want to *add* flags you can just put them in
the `CFLAGS`/`CXXFLAGS` environment variables and reconfigure the
build. You can also create a new cross file with your preferred
configuration.

65
thirdparty/simde/docker/bin/arch2gcc.sh vendored Executable file
View file

@ -0,0 +1,65 @@
#!/bin/sh
case "${1}" in
"alpha")
echo "alpha-linux-gnu"
;;
"amd64")
echo "x86_64-linux-gnu"
;;
"arm64")
echo "aarch64-linux-gnu"
;;
"armhf")
echo "arm-linux-gnueabihf"
;;
"armel")
echo "arm-linux-gnueabi"
;;
"hppa")
echo "hppa-linux-gnu"
;;
"hppa64")
echo "hppa64-linux-gnu"
;;
"i386")
echo "i686-linux-gnu"
;;
"m68k")
echo "m68k-linux-gnu"
;;
"mips64el")
echo "mips64el-linux-gnuabi64"
;;
"mipsel")
echo "mips64-linux-gnuabi64"
;;
"ppc")
echo "powerpc-linux-gnu"
;;
"ppc64")
echo "powerpc64-linux-gnu"
;;
"ppc64el")
echo "powerpc64le-linux-gnu"
;;
"riscv64")
echo "riscv64-linux-gnu"
;;
"s390x")
echo "s390x-linux-gnu"
;;
"sh4")
echo "sh4-linux-gnu"
;;
"sparc64")
echo "sparc64-linux-gnu"
;;
"x32")
echo "x86_64-linux-gnux32"
;;
*)
echo "Unknown architecture: ${1}" >&2
exit 1
;;
esac

View file

@ -0,0 +1,12 @@
#!/bin/bash
if [ $# = 0 ]; then
for crossfile in /usr/local/share/meson/cross/simde/*.cross; do
basename "$crossfile" .cross
done | xargs "$0"
else
while [ $# -gt 0 ]; do
ninja -C /opt/simde-build/"$1" test || exit 1
shift
done
fi

View file

@ -0,0 +1,30 @@
#!/bin/bash
function configure {
if [ -e "/opt/simde/${1}" ]; then
rm -rf "/opt/simde/${1}";
fi
if [ -e "/usr/local/share/meson/cross/simde/${1}.cross" ]; then
meson --cross-file="/usr/local/share/meson/cross/simde/${1}.cross" "/opt/simde/${1}" "/usr/local/src/simde"
fi
}
if [ $# -gt 0 ]; then
while [ $# -ge 1 ]; do
configure "$1"
shift
done
else
for cross in /usr/local/share/meson/cross/simde/*.cross; do
target="$(basename "$cross" .cross)"
if [ ! -e "/opt/simde/${target}" ]; then
configure "$(basename "${target}" .cross)"
fi
done
for target in "aarch64-clang-10" "emscripten"; do
if [ ! -e "/opt/simde/${target}" ]; then
configure "$(basename "${target}" .cross)"
fi
done
fi

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-10'
cpp = 'clang++-10'
ar = 'llvm-ar-10'
strip = 'llvm-strip-10'
objcopy = 'llvm-objcopy-10'
ld = 'llvm-ld-10'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-11'
cpp = 'clang++-11'
ar = 'llvm-ar-11'
strip = 'llvm-strip-11'
objcopy = 'llvm-objcopy-11'
ld = 'llvm-ld-11'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-12'
cpp = 'clang++-12'
ar = 'llvm-ar-12'
strip = 'llvm-strip-12'
objcopy = 'llvm-objcopy-12'
ld = 'llvm-ld-12'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-13'
cpp = 'clang++-13'
ar = 'llvm-ar-13'
strip = 'llvm-strip-13'
objcopy = 'llvm-objcopy-13'
ld = 'llvm-ld-13'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-14'
cpp = 'clang++-14'
ar = 'llvm-ar-14'
strip = 'llvm-strip-14'
objcopy = 'llvm-objcopy-14'
ld = 'llvm-ld-14'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-15'
cpp = 'clang++-15'
ar = 'llvm-ar-15'
strip = 'llvm-strip-15'
objcopy = 'llvm-objcopy-15'
ld = 'llvm-ld-15'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'aarch64-linux-gnu-gcc-10'
cpp = 'aarch64-linux-gnu-g++-10'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['-march=armv8-a+sve', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+sve', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'aarch64-linux-gnu-gcc-11'
cpp = 'aarch64-linux-gnu-g++-11'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['-march=armv8-a+sve', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+sve', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'aarch64-linux-gnu-gcc-12'
cpp = 'aarch64-linux-gnu-g++-12'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['-march=armv8-a+sve', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+sve', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-10'
cpp = 'clang++-10'
ar = 'llvm-ar-10'
strip = 'llvm-strip-10'
objcopy = 'llvm-objcopy-10'
ld = 'llvm-ld-10'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-11'
cpp = 'clang++-11'
ar = 'llvm-ar-11'
strip = 'llvm-strip-11'
objcopy = 'llvm-objcopy-11'
ld = 'llvm-ld-11'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+sha3+dotprod+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+sha3+dotprod+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-12'
cpp = 'clang++-12'
ar = 'llvm-ar-12'
strip = 'llvm-strip-12'
objcopy = 'llvm-objcopy-12'
ld = 'llvm-ld-12'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-13'
cpp = 'clang++-13'
ar = 'llvm-ar-13'
strip = 'llvm-strip-13'
objcopy = 'llvm-objcopy-13'
ld = 'llvm-ld-13'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-14'
cpp = 'clang++-14'
ar = 'llvm-ar-14'
strip = 'llvm-strip-14'
objcopy = 'llvm-objcopy-14'
ld = 'llvm-ld-14'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-15'
cpp = 'clang++-15'
ar = 'llvm-ar-15'
strip = 'llvm-strip-15'
objcopy = 'llvm-objcopy-15'
ld = 'llvm-ld-15'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-6.0'
cpp = 'clang++-6.0'
ar = 'llvm-ar-6.0'
strip = 'llvm-strip-6.0'
objcopy = 'llvm-objcopy-6.0'
ld = 'llvm-ld-6.0'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unused-parameter']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd=fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unused-parameter']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-7'
cpp = 'clang++-7'
ar = 'llvm-ar-7'
strip = 'llvm-strip-7'
objcopy = 'llvm-objcopy-7'
ld = 'llvm-ld-7'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unused-parameter']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unused-parameter']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-8'
cpp = 'clang++-8'
ar = 'llvm-ar-8'
strip = 'llvm-strip-8'
objcopy = 'llvm-objcopy-8'
ld = 'llvm-ld-8'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unused-parameter']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unused-parameter']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-9'
cpp = 'clang++-9'
ar = 'llvm-ar-9'
strip = 'llvm-strip-9'
objcopy = 'llvm-objcopy-9'
ld = 'llvm-ld-9'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'aarch64-linux-gnu-gcc-10'
cpp = 'aarch64-linux-gnu-g++-10'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'aarch64-linux-gnu-gcc-11'
cpp = 'aarch64-linux-gnu-g++-11'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
cpp_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
c_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
cpp_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'aarch64-linux-gnu-gcc-11'
cpp = 'aarch64-linux-gnu-g++-11'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = ['ccache', 'aarch64-linux-gnu-gcc-12']
cpp = ['ccache', 'aarch64-linux-gnu-g++-12']
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'aarch64-linux-gnu-gcc-12'
cpp = 'aarch64-linux-gnu-g++-12'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
cpp_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
c_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
cpp_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'aarch64-linux-gnu-gcc-12'
cpp = 'aarch64-linux-gnu-g++-12'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'aarch64-linux-gnu-gcc-7'
cpp = 'aarch64-linux-gnu-g++-7'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['-march=armv8-a+simd', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+simd', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'aarch64-linux-gnu-gcc-8'
cpp = 'aarch64-linux-gnu-g++-8'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['-march=armv8-a+simd', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+simd', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'aarch64-linux-gnu-gcc-9'
cpp = 'aarch64-linux-gnu-g++-9'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
[properties]
c_args = ['-march=armv8-a+simd', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+simd', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'arm-linux-gnueabi-gcc-11'
cpp = 'arm-linux-gnueabi-g++-11'
ar = 'arm-linux-gnueabi-ar'
strip = 'arm-linux-gnueabi-strip'
objcopy = 'arm-linux-gnueabi-objcopy'
ld = 'arm-linux-gnueabi-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi']
[properties]
c_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
cpp_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
c_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
cpp_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv7-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'arm-linux-gnueabi-gcc-12'
cpp = 'arm-linux-gnueabi-g++-12'
ar = 'arm-linux-gnueabi-ar'
strip = 'arm-linux-gnueabi-strip'
objcopy = 'arm-linux-gnueabi-objcopy'
ld = 'arm-linux-gnueabi-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi']
[properties]
c_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
cpp_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
c_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
cpp_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv7-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-11'
cpp = 'arm-linux-gnueabihf-g++-11'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
cpp_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
c_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
cpp_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv7-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-12'
cpp = 'arm-linux-gnueabihf-g++-12'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
cpp_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
c_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
cpp_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv7-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-11'
cpp = 'clang++-11'
ar = 'llvm-ar-11'
strip = 'llvm-strip-11'
objcopy = 'llvm-objcopy-11'
ld = 'llvm-ld-11'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-12'
cpp = 'clang++-12'
ar = 'llvm-ar-12'
strip = 'llvm-strip-12'
objcopy = 'llvm-objcopy-12'
ld = 'llvm-ld-12'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-13'
cpp = 'clang++-13'
ar = 'llvm-ar-13'
strip = 'llvm-strip-13'
objcopy = 'llvm-objcopy-13'
ld = 'llvm-ld-13'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-14'
cpp = 'clang++-14'
ar = 'llvm-ar-14'
strip = 'llvm-strip-14'
objcopy = 'llvm-objcopy-14'
ld = 'llvm-ld-14'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-15'
cpp = 'clang++-15'
ar = 'llvm-ar-15'
strip = 'llvm-strip-15'
objcopy = 'llvm-objcopy-15'
ld = 'llvm-ld-15'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-6.0'
cpp = 'clang++-6.0'
ar = 'llvm-ar-6.0'
strip = 'llvm-strip-6.0'
objcopy = 'llvm-objcopy-6.0'
ld = 'llvm-ld-6.0'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-10'
cpp = 'arm-linux-gnueabihf-g++-10'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['-march=armv7-a+simd+neon-fp16', '-mfpu=auto', '-Wextra', '-Werror']
cpp_args = ['-march=armv7-a+simd+neon-fp16', '-mfpu=auto', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv7-a'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-11'
cpp = 'arm-linux-gnueabihf-g++-11'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['-march=armv7-a+simd+neon-fp16', '-mfpu=auto', '-Wextra', '-Werror']
cpp_args = ['-march=armv7-a+simd+neon-fp16', '-mfpu=auto', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv7-a'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-12'
cpp = 'arm-linux-gnueabihf-g++-12'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['-march=armv7-a+simd+neon-fp16', '-mfpu=auto', '-Wextra', '-Werror']
cpp_args = ['-march=armv7-a+simd+neon-fp16', '-mfpu=auto', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv7-a'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-8'
cpp = 'arm-linux-gnueabihf-g++-8'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['-march=armv7-a+simd+neon-fp16', '-mfpu=auto', '-Wextra', '-Werror']
cpp_args = ['-march=armv7-a+simd+neon-fp16', '-mfpu=auto', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv7-a'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-10'
cpp = 'arm-linux-gnueabihf-g++-10'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = 'qemu-arm-static'
[properties]
c_args = ['-march=armv8.1-m.main+mve', '-mfloat-abi=hard', '-Wextra', '-Werror']
cpp_args = ['-march=armv8.1-m.main+mve', '-mfloat-abi=hard', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-11'
cpp = 'arm-linux-gnueabihf-g++-11'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = 'qemu-arm-static'
[properties]
c_args = ['-march=armv8.1-m.main+mve', '-mfloat-abi=hard', '-Wextra', '-Werror']
cpp_args = ['-march=armv8.1-m.main+mve', '-mfloat-abi=hard', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-12'
cpp = 'arm-linux-gnueabihf-g++-12'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = 'qemu-arm-static'
[properties]
c_args = ['-march=armv8.1-m.main+mve', '-mfloat-abi=hard', '-Wextra', '-Werror']
cpp_args = ['-march=armv8.1-m.main+mve', '-mfloat-abi=hard', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-10'
cpp = 'clang++-10'
ar = 'llvm-ar-10'
strip = 'llvm-strip-10'
objcopy = 'llvm-objcopy-10'
ld = 'llvm-ld-10'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-11'
cpp = 'clang++-11'
ar = 'llvm-ar-11'
strip = 'llvm-strip-11'
objcopy = 'llvm-objcopy-11'
ld = 'llvm-ld-11'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-12'
cpp = 'clang++-12'
ar = 'llvm-ar-12'
strip = 'llvm-strip-12'
objcopy = 'llvm-objcopy-12'
ld = 'llvm-ld-12'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-13'
cpp = 'clang++-13'
ar = 'llvm-ar-13'
strip = 'llvm-strip-13'
objcopy = 'llvm-objcopy-13'
ld = 'llvm-ld-13'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-14'
cpp = 'clang++-14'
ar = 'llvm-ar-14'
strip = 'llvm-strip-14'
objcopy = 'llvm-objcopy-14'
ld = 'llvm-ld-14'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-15'
cpp = 'clang++-15'
ar = 'llvm-ar-15'
strip = 'llvm-strip-15'
objcopy = 'llvm-objcopy-15'
ld = 'llvm-ld-15'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-6.0'
cpp = 'clang++-6.0'
ar = 'llvm-ar-6.0'
strip = 'llvm-strip-6.0'
objcopy = 'llvm-objcopy-6.0'
ld = 'llvm-ld-6.0'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-8'
cpp = 'clang++-8'
ar = 'llvm-ar-8'
strip = 'llvm-strip-8'
objcopy = 'llvm-objcopy-8'
ld = 'llvm-ld-8'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,20 @@
[binaries]
c = 'clang-9'
cpp = 'clang++-9'
ar = 'llvm-ar-9'
strip = 'llvm-strip-9'
objcopy = 'llvm-objcopy-9'
ld = 'llvm-ld-9'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv8-a', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-10'
cpp = 'arm-linux-gnueabihf-g++-10'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['-march=armv8-a+simd', '-mfpu=auto', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+simd', '-mfpu=auto', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-11'
cpp = 'arm-linux-gnueabihf-g++-11'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['-march=armv8-a+simd', '-mfpu=auto', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+simd', '-mfpu=auto', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-12'
cpp = 'arm-linux-gnueabihf-g++-12'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['-march=armv8-a+simd', '-mfpu=auto', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+simd', '-mfpu=auto', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,18 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-9'
cpp = 'arm-linux-gnueabihf-g++-9'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']
[properties]
c_args = ['-march=armv8-a+simd', '-mfpu=auto', '-Wextra', '-Werror']
cpp_args = ['-march=armv8-a+simd', '-mfpu=auto', '-Wextra', '-Werror']
[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'

View file

@ -0,0 +1,11 @@
[binaries]
c = 'clang-10'
cpp = 'clang++-10'
ar = 'llvm-ar-10'
strip = 'llvm-strip-10'
objcopy = 'llvm-objcopy-10'
ld = 'llvm-ld-10'
[properties]
c_args = ['-march=native','-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['-march=native', '-Weverything', '-fno-lax-vector-conversions', '-Werror']

View file

@ -0,0 +1,11 @@
[binaries]
c = 'clang-11'
cpp = 'clang++-11'
ar = 'llvm-ar-11'
strip = 'llvm-strip-11'
objcopy = 'llvm-objcopy-11'
ld = 'llvm-ld-11'
[properties]
c_args = ['-march=native','-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['-march=native', '-Weverything', '-fno-lax-vector-conversions', '-Werror']

View file

@ -0,0 +1,11 @@
[binaries]
c = 'clang-12'
cpp = 'clang++-12'
ar = 'llvm-ar-12'
strip = 'llvm-strip-12'
objcopy = 'llvm-objcopy-12'
ld = 'llvm-ld-12'
[properties]
c_args = ['-march=native','-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['-march=native', '-Weverything', '-fno-lax-vector-conversions', '-Werror']

View file

@ -0,0 +1,11 @@
[binaries]
c = 'clang-13'
cpp = 'clang++-13'
ar = 'llvm-ar-13'
strip = 'llvm-strip-13'
objcopy = 'llvm-objcopy-13'
ld = 'llvm-ld-13'
[properties]
c_args = ['-march=native','-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['-march=native', '-Weverything', '-fno-lax-vector-conversions', '-Werror']

View file

@ -0,0 +1,11 @@
[binaries]
c = 'clang-14'
cpp = 'clang++-14'
ar = 'llvm-ar-14'
strip = 'llvm-strip-14'
objcopy = 'llvm-objcopy-14'
ld = 'llvm-ld-14'
[properties]
c_args = ['-march=native','-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['-march=native', '-Weverything', '-fno-lax-vector-conversions', '-Werror']

View file

@ -0,0 +1,11 @@
[binaries]
c = 'clang-15'
cpp = 'clang++-15'
ar = 'llvm-ar-15'
strip = 'llvm-strip-15'
objcopy = 'llvm-objcopy-15'
ld = 'llvm-ld-15'
[properties]
c_args = ['-march=native','-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['-march=native', '-Weverything', '-fno-lax-vector-conversions', '-Werror']

View file

@ -0,0 +1,11 @@
[binaries]
c = 'clang-9'
cpp = 'clang++-9'
ar = 'llvm-ar-9'
strip = 'llvm-strip-9'
objcopy = 'llvm-objcopy-9'
ld = 'llvm-ld-9'
[properties]
c_args = ['-march=native','-Weverything', '-fno-lax-vector-conversions', '-Werror']
cpp_args = ['-march=native', '-Weverything', '-fno-lax-vector-conversions', '-Werror']

View file

@ -0,0 +1,20 @@
[binaries]
c = '/opt/emsdk/upstream/emscripten/emcc'
cpp = '/opt/emsdk/upstream/emscripten/em++'
ar = '/opt/emsdk/upstream/emscripten/emar'
strip = '/opt/emsdk/upstream/bin/llvm-strip'
objcopy = '/opt/emsdk/upstream/bin/llvm-objcopy'
exe_wrapper = ['v8']
[properties]
skip_sanity_check = true
c_args = ['-Weverything', '-fno-lax-vector-conversions', '-Werror', '-O2', '-msimd128', '-Wno-unsafe-buffer-usage']
cpp_args = ['-Weverything', '-fno-lax-vector-conversions', '-Werror', '-O2', '-msimd128', '-Wno-unsafe-buffer-usage']
c_link_args = ['-s', 'ENVIRONMENT=shell']
cpp_link_args = ['-s', 'ENVIRONMENT=shell']
[host_machine]
system = 'emscripten'
cpu_family = 'wasm32'
cpu = 'wasm32'
endian = 'little'

View file

@ -0,0 +1,11 @@
[binaries]
c = 'gcc-10'
cpp = 'g++-10'
ar = 'ar'
strip = 'strip'
objcopy = 'objcopy'
ld = 'ld'
[properties]
c_args = ['-Wall', '-Wextra', '-Werror', '-ffast-math']
cpp_args = ['-Wall', '-Wextra', '-Werror', '-ffast-math']

View file

@ -0,0 +1,11 @@
[binaries]
c = 'gcc-10'
cpp = 'g++-10'
ar = 'ar'
strip = 'strip'
objcopy = 'objcopy'
ld = 'ld'
[properties]
c_args = ['-Wextra', '-Werror', '-march=native']
cpp_args = ['-Wextra', '-Werror', '-march=native']

View file

@ -0,0 +1,13 @@
[binaries]
c = 'gcc-11'
cpp = 'g++-11'
ar = 'ar'
strip = 'strip'
objcopy = 'objcopy'
ld = 'ld'
[properties]
c_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
cpp_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
c_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
cpp_link_args = ['-Wl,-z,relro', '-Wl,-z,now']

View file

@ -0,0 +1,11 @@
[binaries]
c = 'gcc-11'
cpp = 'g++-11'
ar = 'ar'
strip = 'strip'
objcopy = 'objcopy'
ld = 'ld'
[properties]
c_args = ['-Wall', '-Wextra', '-Werror', '-ffast-math']
cpp_args = ['-Wall', '-Wextra', '-Werror', '-ffast-math']

View file

@ -0,0 +1,11 @@
[binaries]
c = 'gcc-11'
cpp = 'g++-11'
ar = 'ar'
strip = 'strip'
objcopy = 'objcopy'
ld = 'ld'
[properties]
c_args = ['-Wextra', '-Werror', '-march=native']
cpp_args = ['-Wextra', '-Werror', '-march=native']

View file

@ -0,0 +1,13 @@
[binaries]
c = 'gcc-12'
cpp = 'g++-12'
ar = 'ar'
strip = 'strip'
objcopy = 'objcopy'
ld = 'ld'
[properties]
c_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
cpp_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
c_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
cpp_link_args = ['-Wl,-z,relro', '-Wl,-z,now']

View file

@ -0,0 +1,11 @@
[binaries]
c = 'gcc-12'
cpp = 'g++-12'
ar = 'ar'
strip = 'strip'
objcopy = 'objcopy'
ld = 'ld'
[properties]
c_args = ['-Wall', '-Wextra', '-Werror', '-ffast-math']
cpp_args = ['-Wall', '-Wextra', '-Werror', '-ffast-math']

View file

@ -0,0 +1,11 @@
[binaries]
c = 'gcc-12'
cpp = 'g++-12'
ar = 'ar'
strip = 'strip'
objcopy = 'objcopy'
ld = 'ld'
[properties]
c_args = ['-Wall', '-Wextra', '-Werror', '-march=native']
cpp_args = ['-Wall', '-Wextra', '-Werror', '-march=native']

Some files were not shown because too many files have changed in this diff Show more