tcg: Build ffi data structures for helpers

Add libffi as a build requirement for TCI.
Add libffi to the dockerfiles to satisfy that requirement.

Construct an ffi_cif structure for each unique typemask.
Record the result in a separate hash table for later lookup;
this allows helper_table to stay const.

Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson
2021-06-19 08:51:11 -07:00
parent fa52e66062
commit 22f15579fa
12 changed files with 75 additions and 1 deletions
+1
View File
@@ -22,6 +22,7 @@ ENV PACKAGES \
libaio-dev \
libbpf-dev \
libcap-ng-dev \
libffi-dev \
libjpeg-turbo-dev \
libnfs-dev \
libpng-dev \
+1
View File
@@ -17,6 +17,7 @@ ENV PACKAGES \
libbpf-devel \
libepoxy-devel \
libfdt-devel \
libffi-devel \
libgcrypt-devel \
lzo-devel \
make \
+1
View File
@@ -26,6 +26,7 @@ RUN apt update && \
gdb-multiarch \
gettext \
git \
libffi-dev \
libncurses5-dev \
ninja-build \
pkg-config \
@@ -6,6 +6,7 @@ ENV PACKAGES \
findutils \
gcc \
git \
libffi-devel.i686 \
libtasn1-devel.i686 \
libzstd-devel.i686 \
make \
@@ -19,6 +19,7 @@ ENV PACKAGES \
mingw32-gmp \
mingw32-gnutls \
mingw32-gtk3 \
mingw32-libffi \
mingw32-libjpeg-turbo \
mingw32-libpng \
mingw32-libtasn1 \
@@ -18,6 +18,7 @@ ENV PACKAGES \
mingw64-glib2 \
mingw64-gmp \
mingw64-gtk3 \
mingw64-libffi \
mingw64-libjpeg-turbo \
mingw64-libpng \
mingw64-libtasn1 \
+1
View File
@@ -33,6 +33,7 @@ ENV PACKAGES \
libepoxy-devel \
libfdt-devel \
libbpf-devel \
libffi-devel \
libiscsi-devel \
libjpeg-devel \
libpmem-devel \
+1
View File
@@ -28,6 +28,7 @@ ENV PACKAGES \
libdrm-dev \
libepoxy-dev \
libfdt-dev \
libffi-dev \
libgbm-dev \
libgnutls28-dev \
libgtk-3-dev \
@@ -16,6 +16,7 @@ ENV PACKAGES \
libdrm-dev \
libepoxy-dev \
libfdt-dev \
libffi-dev \
libgbm-dev \
libgtk-3-dev \
libibverbs-dev \
@@ -19,6 +19,7 @@ ENV PACKAGES flex bison \
libdrm-dev \
libepoxy-dev \
libfdt-dev \
libffi-dev \
libgbm-dev \
libgtk-3-dev \
libibverbs-dev \