Skip to content

Commit 517669c

Browse files
committed
Add i386 test build
Compile openssl with different i386 settings
1 parent 9465fa6 commit 517669c

File tree

3 files changed

+28
-4
lines changed

3 files changed

+28
-4
lines changed

.github/workflows/ci.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,3 +119,15 @@ jobs:
119119
sudo apt-get install -y cmake clang
120120
- name: Compile deps target
121121
run: ./scripts/compile_target.sh deps
122+
123+
# Ensure that the repository can be built for i386
124+
Testi386:
125+
runs-on: ubuntu-latest
126+
steps:
127+
- name: Build Fuzzers
128+
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
129+
with:
130+
oss-fuzz-project-name: 'curl'
131+
dry-run: false
132+
keep-unaffected-fuzz-targets: true
133+
architecture: 'i386'

CMakeLists.txt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,12 @@ if(NOT (DEFINED ENV{SANITIZER} AND "$ENV{SANITIZER}" STREQUAL "memory"))
5656
set(OPENSSL_SRC_DIR ${CMAKE_BINARY_DIR}/openssl/src/openssl_external)
5757

5858
# Architecture and sanitizer logic
59-
set(OPENSSL_ARCH_PROG "")
59+
set(OPENSSL_ARCH_TARGET "")
60+
set(OPENSSL_ARCH_FLAG "")
6061
set(OPENSSL_EC_FLAG "enable-ec_nistp_64_gcc_128")
6162
if(DEFINED ENV{ARCHITECTURE} AND "$ENV{ARCHITECTURE}" STREQUAL "i386")
62-
set(OPENSSL_ARCH_PROG "setarch i386")
63+
set(OPENSSL_ARCH_TARGET "linux-generic32")
64+
set(OPENSSL_ARCH_FLAG "386")
6365
set(OPENSSL_EC_FLAG "no-threads")
6466
endif()
6567

@@ -70,14 +72,17 @@ if(NOT (DEFINED ENV{SANITIZER} AND "$ENV{SANITIZER}" STREQUAL "memory"))
7072

7173
# Compose the config command
7274
set(OPENSSL_CONFIGURE_COMMAND
73-
${OPENSSL_ARCH_PROG} ./config
75+
./Configure
76+
${OPENSSL_ARCH_TARGET}
7477
--prefix=${OPENSSL_INSTALL_DIR}
7578
--libdir=lib
7679
--debug
7780
-DPEDANTIC
7881
-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
7982
no-shared
83+
no-tests
8084
${OPENSSL_ASM_FLAG}
85+
${OPENSSL_ARCH_FLAG}
8186
enable-tls1_3
8287
enable-rc5
8388
enable-md2

scripts/compile_target.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@ echo "CFLAGS: ${CFLAGS:-undefined}"
4646
echo "CXXFLAGS: ${CXXFLAGS:-undefined}"
4747
echo "ARCHITECTURE: ${ARCHITECTURE:-undefined}"
4848

49+
if [[ "${ARCHITECTURE:-}" == "i386" ]]
50+
then
51+
CMAKE_VERBOSE_FLAG="-v"
52+
else
53+
CMAKE_VERBOSE_FLAG=""
54+
fi
55+
4956
export MAKEFLAGS+="-j$(nproc)"
5057

5158
# Create a build directory for the dependencies.
@@ -55,5 +62,5 @@ mkdir -p ${BUILD_DIR}
5562
# Compile the dependencies.
5663
pushd ${BUILD_DIR}
5764
cmake ${CMAKE_GDB_FLAG} ..
58-
cmake --build . --target ${TARGET}
65+
cmake --build . --target ${TARGET} ${CMAKE_VERBOSE_FLAG}
5966
popd

0 commit comments

Comments
 (0)