Skip to content

ipc: add cache flushing and invalidation for IPC data #4182

ipc: add cache flushing and invalidation for IPC data

ipc: add cache flushing and invalidation for IPC data #4182

Workflow file for this run

---
name: Build test all components
# 'workflow_dispatch' allows running this workflow manually from the
# 'Actions' tab
# yamllint disable-line rule:truthy
on: [pull_request, workflow_dispatch, workflow_call]
jobs:
stub-build:
runs-on: ubuntu-22.04
strategy:
matrix:
# Keep these names short due to questionable Github UI choices
IPC: [3, 4]
steps:
- name: add i386 arch
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
- name: apt-get install i386 packages
run: |
# We don't know why Github requires us to explicit all these i386
# dependencies. On a vanilla Ubuntu 22.04 the last apt-get is
# enough.
# Also, it does not seem possible to download Github images for
# local testing which means trial and error for this requires a
# force-push every time: excruciatingly slow!
sudo apt-get -y install \
libgcc-s1:i386 libc6-dev:i386 libstdc++6:i386 \
libgomp1:i386 libitm1:i386 libatomic1:i386 \
libasan8:i386 libubsan1:i386 libquadmath0:i386 \
sudo apt-get -y install \
libc6-dev-i386 libstdc++-12-dev:i386
- name: apt-get install build tools
run:
sudo apt-get -y install
clang llvm ninja-build device-tree-compiler python3-pyelftools
- uses: actions/checkout@v4
with:
path: ./workspace/sof
filter: 'tree:0'
- name: west update
run: |
cd workspace/sof
pip3 install west
west init -l
west update --narrow --fetch-opt=--filter=tree:0
# This is not fuzzing. Fuzzing just happens to require stubbing
# which provides be a great solution to compile-check many CONFIG_*
# at once.
- name: stubs build
run: |
cd workspace
clang --verbose
set -x
sof/scripts/fuzz.sh -b -i '${{ matrix.IPC }}' -- \
-DEXTRA_CFLAGS='-Werror' -DEXTRA_CXXFLAGS='-Werror' \
-DEXTRA_CONF_FILE='stub_build_all_ipc${{ matrix.IPC }}.conf'