Package: mbedtls
Version: 2.16.4-1
Severity: minor
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu focal ubuntu-patch

Hi James,

In Ubuntu, we are in the process of moving the i386 architecture to a
compatibility-only layer on amd64, and therefore we are also moving our
autopkgtest infrastructure to test i386 binaries in a cross-environment.

This requires changes to some tests so that they are cross-aware and can do
the right thing.

The mbedtls tests currently fail in this environment, because they are build
tests that do not invoke the toolchain in a cross-aware manner and also do
not use cross-capable test dependencies.  I've verified that the attached
patch lets the tests successfully build (and run) i386 tests on an amd64
host.

Note that upstream autopkgtest doesn't currently set DEB_HOST_ARCH so this
is a complete no-op in Debian for the moment.  Support for cross-testing in
autopkgtest is currently awaiting review at
https://salsa.debian.org/ci-team/autopkgtest/merge_requests/69 and once
landed, will still have no effect unless autopkgtest is invoked with a '-a'
option.  So this change should be safe to land in your package despite this
not being upstream in autopkgtest.

Thanks for considering,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                   https://www.debian.org/
slanga...@ubuntu.com                                     vor...@debian.org
diff -Nru mbedtls-2.16.4/debian/tests/build mbedtls-2.16.4/debian/tests/build
--- mbedtls-2.16.4/debian/tests/build   2020-01-28 15:38:13.000000000 -0800
+++ mbedtls-2.16.4/debian/tests/build   2020-03-04 22:04:36.000000000 -0800
@@ -11,6 +11,13 @@
 fi
 
 cd "$AUTOPKGTEST_TMP"
+
+if [ -n "${DEB_HOST_GNU_TYPE:-}" ]; then
+    CROSS_COMPILE="$DEB_HOST_GNU_TYPE-"
+else
+    CROSS_COMPILE=
+fi
+
 cat <<EOF > mbedtls_sha1.c
 #include <mbedtls/md.h>
 #include <stdio.h>
@@ -37,9 +44,9 @@
 EOF
 
 # Build program shared + statically
-gcc -Wall -Werror -o mbedtls_sha1 mbedtls_sha1.c -lmbedcrypto
+${CROSS_COMPILE}gcc -Wall -Werror -o mbedtls_sha1 mbedtls_sha1.c -lmbedcrypto
 echo "build1: OK"
-gcc -Wall -Werror -static -o mbedtls_sha1_static mbedtls_sha1.c -lmbedcrypto
+${CROSS_COMPILE}gcc -Wall -Werror -static -o mbedtls_sha1_static 
mbedtls_sha1.c -lmbedcrypto
 echo "build2: OK"
 
 # Run it on a few strings
diff -Nru mbedtls-2.16.4/debian/tests/control 
mbedtls-2.16.4/debian/tests/control
--- mbedtls-2.16.4/debian/tests/control 2020-01-28 15:38:13.000000000 -0800
+++ mbedtls-2.16.4/debian/tests/control 2020-03-04 22:04:29.000000000 -0800
@@ -1,2 +1,2 @@
 Tests: build selftest
-Depends: gcc, libc-dev, libmbedtls-dev
+Depends: build-essential, libmbedtls-dev
diff -Nru mbedtls-2.16.4/debian/tests/selftest 
mbedtls-2.16.4/debian/tests/selftest
--- mbedtls-2.16.4/debian/tests/selftest        2020-01-28 15:38:13.000000000 
-0800
+++ mbedtls-2.16.4/debian/tests/selftest        2020-03-04 22:04:36.000000000 
-0800
@@ -10,10 +10,16 @@
        exit 1
 fi
 
+if [ -n "${DEB_HOST_GNU_TYPE:-}" ]; then
+    CROSS_COMPILE="$DEB_HOST_GNU_TYPE-"
+else
+    CROSS_COMPILE=
+fi
+
 # Build mbedtls_selftest shared / statically
-cc -Wall -Werror programs/test/selftest.c -o 
"$AUTOPKGTEST_TMP/mbedtls_selftest" -lmbedtls -lmbedx509 -lmbedcrypto
+${CROSS_COMPILE}gcc -Wall -Werror programs/test/selftest.c -o 
"$AUTOPKGTEST_TMP/mbedtls_selftest" -lmbedtls -lmbedx509 -lmbedcrypto
 echo "build1: OK"
-cc -Wall -Werror -static programs/test/selftest.c -o 
"$AUTOPKGTEST_TMP/mbedtls_selftest_static" -lmbedtls -lmbedx509 -lmbedcrypto 
-pthread
+${CROSS_COMPILE}gcc -Wall -Werror -static programs/test/selftest.c -o 
"$AUTOPKGTEST_TMP/mbedtls_selftest_static" -lmbedtls -lmbedx509 -lmbedcrypto 
-pthread
 echo "build2: OK"
 
 # Run the testsuite twice

Reply via email to