From e3e9fc0e7f677a77e3bdc7a44c43119d7a881ed6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mamy=20Andr=C3=A9-Ratsimbazafy?= Date: Mon, 31 Aug 2020 23:04:41 +0200 Subject: [PATCH] Add Linux 32-bit to Azure --- README.md | 2 +- azure-pipelines.yml | 39 ++++++++++++++++++++++++++++++++++----- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index cf5909a..5d706c9 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![Stability: experimental](https://img.shields.io/badge/stability-experimental-orange.svg)\ ![Github Actions CI](https://github.com/mratsim/constantine/workflows/Constantine%20CI/badge.svg)\ [![Build Status: Travis](https://img.shields.io/travis/com/mratsim/constantine/master?label=Travis%20%28Linux%20x86_64%2FARM64,%20MacOS%20x86_64%29)](https://travis-ci.com/mratsim/constantine)\ -[![Build Status: Azure](https://img.shields.io/azure-devops/build/numforge/07a2a7a5-995a-45d3-acd5-f5456fe7b04d/4?label=Azure%20%28Linux%2064-bit%2C%20Windows%2032%2F64-bit%2C%20MacOS%2064-bit%29)](https://dev.azure.com/numforge/Constantine/_build?definitionId=4&branchName=master) +[![Build Status: Azure](https://img.shields.io/azure-devops/build/numforge/07a2a7a5-995a-45d3-acd5-f5456fe7b04d/4?label=Azure%20%28Linux%2032%2F64-bit%2C%20Windows%2032%2F64-bit%2C%20MacOS%2064-bit%29)](https://dev.azure.com/numforge/Constantine/_build?definitionId=4&branchName=master) This library provides constant-time implementation of elliptic curve cryptography. diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8e2b0df..3b07d91 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -31,11 +31,11 @@ strategy: CHANNEL: devel WEAVE_TEST_LANG: cpp - # Linux_devel_32bit: - # VM: 'ubuntu-16.04' - # UCPU: i686 - # CHANNEL: devel - # TEST_LANG: c + Linux_devel_32bit: + VM: 'ubuntu-16.04' + UCPU: i686 + CHANNEL: devel + TEST_LANG: c MacOS_devel_64bit: VM: 'macOS-10.15' @@ -119,6 +119,29 @@ steps: echo "##vso[task.setvariable variable=ncpu;]$ncpu" displayName: 'Detecting number of cores' + - bash: | + sudo dpkg --add-architecture i386 + + sudo apt-fast update -qq + # `:i386` (e.g. in `libffi-dev:i386`) is needed otherwise you may get: + # `could not load: libffi.so` during dynamic loading. + DEBIAN_FRONTEND='noninteractive' \ + sudo apt-fast install --no-install-recommends --allow-downgrades -yq \ + g++-multilib gcc-multilib libcurl4-openssl-dev:i386 libgc-dev:i386 \ + libffi-dev:i386 + cat << EOF > bin/gcc + #!/bin/bash + exec $(which gcc) -m32 "\$@" + EOF + cat << EOF > bin/g++ + #!/bin/bash + exec $(which g++) -m32 "\$@" + EOF + chmod 755 bin/gcc + chmod 755 bin/g++ + displayName: 'Install dependencies (i386 Linux)' + condition: and(eq(variables['Agent.OS'], 'Linux'), eq(variables['CPU'], 'i686')) + - bash: | echo "PATH=${PATH}" gcc -v @@ -178,6 +201,12 @@ steps: # displayName: 'Downloading GMP (MacOS)' # condition: eq(variables['Agent.OS'], 'Darwin') + - bash: | + echo "PATH=${PATH}" + sudo apt-get install libgmp-dev + displayName: 'Downloading GMP (Linux 32-bit)' + condition: and(eq(variables['Agent.OS'], 'Linux'), eq(variables['CPU'], 'i686')) + - bash: | echo "PATH=${PATH}" nimble refresh