manylinux-x86: Fix build of Openssl and CMake

This commit fixes the error reported below by ensuring openssl and CMake
are configured and build as x86 binaries.

It also removes the download of CMake binaries that was introduced
by mistake in 1354fe2 (manylinux-x86: Initial addition).

Error:

```
Configured for linux-x86_64.
making all in crypto...
make[1]: Entering directory `/usr/src/openssl-1.0.2j/crypto'
/usr/bin/perl ../util/mkbuildinf.pl "gcc -I. -I.. -I../include  -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM" "linux-x86_64" >buildinf.h
gcc -I. -I.. -I../include  -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM   -c -o cryptlib.o cryptlib.c
cryptlib.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
 /* crypto/cryptlib.c */
 ^
make[1]: *** [cryptlib.o] Error 1
```
This commit is contained in:
Jean-Christophe Fillion-Robin 2016-11-05 17:55:58 -04:00
parent 6f7e7b05fd
commit 3b6e09b520
No known key found for this signature in database
GPG Key ID: 15C1A2812F958BD3
3 changed files with 12 additions and 13 deletions

View File

@ -8,24 +8,26 @@ WORKDIR /usr/src
RUN wget https://www.openssl.org/source/openssl-1.0.2j.tar.gz && \ RUN wget https://www.openssl.org/source/openssl-1.0.2j.tar.gz && \
tar -xzvf openssl-1.0.2j.tar.gz && \ tar -xzvf openssl-1.0.2j.tar.gz && \
cd openssl-1.0.2j && \ cd openssl-1.0.2j && \
./config && \ WRAPPER=$([[ $DEFAULT_DOCKCROSS_IMAGE == "dockcross/manylinux-x86" ]] && echo "linux32") && \
make && \ CONFIG_FLAG=$([[ $DEFAULT_DOCKCROSS_IMAGE == "dockcross/manylinux-x86" ]] && echo "-m32") && \
${WRAPPER} ./config $CONFIG_FLAG && \
${WRAPPER} make && \
cd .. && \ cd .. && \
git clone git://cmake.org/cmake.git CMake && \ git clone git://cmake.org/cmake.git CMake && \
cd CMake && \ cd CMake && \
git checkout ab2ae4823c3b60347825da4b851cd4e676f8bed1 && \ git checkout ab2ae4823c3b60347825da4b851cd4e676f8bed1 && \
mkdir /usr/src/CMake-build && \ mkdir /usr/src/CMake-build && \
cd /usr/src/CMake-build && \ cd /usr/src/CMake-build && \
/usr/src/CMake/bootstrap \ ${WRAPPER} /usr/src/CMake/bootstrap \
--parallel=$(grep -c processor /proc/cpuinfo) \ --parallel=$(grep -c processor /proc/cpuinfo) \
--prefix=/usr && \ --prefix=/usr && \
make -j$(grep -c processor /proc/cpuinfo) && \ ${WRAPPER} make -j$(grep -c processor /proc/cpuinfo) && \
./bin/cmake \ ${WRAPPER} ./bin/cmake \
-DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_USE_OPENSSL:BOOL=ON \ -DCMAKE_USE_OPENSSL:BOOL=ON \
-DOPENSSL_ROOT_DIR:PATH=/usr/src/openssl-1.0.2j \ -DOPENSSL_ROOT_DIR:PATH=/usr/src/openssl-1.0.2j \
. && \ . && \
make install && \ ${WRAPPER} make install && \
cd .. && rm -rf CMake* && rm -rf /usr/src/openssl-1.0.2j cd .. && rm -rf CMake* && rm -rf /usr/src/openssl-1.0.2j
RUN git clone "https://github.com/ninja-build/ninja.git" && \ RUN git clone "https://github.com/ninja-build/ninja.git" && \

View File

@ -1,6 +1,8 @@
FROM quay.io/pypa/manylinux1_x86_64:latest FROM quay.io/pypa/manylinux1_x86_64:latest
MAINTAINER Matt McCormick "matt.mccormick@kitware.com" MAINTAINER Matt McCormick "matt.mccormick@kitware.com"
ENV DEFAULT_DOCKCROSS_IMAGE dockcross/manylinux-x64
#include "common.docker" #include "common.docker"
#include "common.manylinux" #include "common.manylinux"
@ -18,7 +20,6 @@ COPY linux-x64/${CROSS_TRIPLE}-noop.sh /usr/bin/${CROSS_TRIPLE}-noop
COPY manylinux-x64/Toolchain.cmake ${CROSS_ROOT}/../lib/ COPY manylinux-x64/Toolchain.cmake ${CROSS_ROOT}/../lib/
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/../lib/Toolchain.cmake ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/../lib/Toolchain.cmake
ENV DEFAULT_DOCKCROSS_IMAGE dockcross/manylinux-x64
# Build-time metadata as defined at http://label-schema.org # Build-time metadata as defined at http://label-schema.org
ARG BUILD_DATE ARG BUILD_DATE

View File

@ -1,6 +1,8 @@
FROM quay.io/pypa/manylinux1_i686:latest FROM quay.io/pypa/manylinux1_i686:latest
MAINTAINER Matt McCormick "matt.mccormick@kitware.com" MAINTAINER Matt McCormick "matt.mccormick@kitware.com"
ENV DEFAULT_DOCKCROSS_IMAGE dockcross/manylinux-x86
#include "common.docker" #include "common.docker"
#include "common.manylinux" #include "common.manylinux"
@ -18,12 +20,6 @@ COPY linux-x86/${CROSS_TRIPLE}-noop.sh /usr/bin/${CROSS_TRIPLE}-noop
COPY manylinux-x86/Toolchain.cmake ${CROSS_ROOT}/../lib/ COPY manylinux-x86/Toolchain.cmake ${CROSS_ROOT}/../lib/
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/../lib/Toolchain.cmake ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/../lib/Toolchain.cmake
ENV DEFAULT_DOCKCROSS_IMAGE dockcross/manylinux-x86
RUN curl -O https://cmake.org/files/v3.6/cmake-3.6.2-Linux-i386.tar.gz && \
tar xzf cmake-3.6.2-Linux-i386.tar.gz && \
cp -a cmake-3.6.2-Linux-i386/* /usr/ && \
rm -rf cmake-3.6.2-Linux-i386
COPY linux-x86/linux32-entrypoint.sh /dockcross/ COPY linux-x86/linux32-entrypoint.sh /dockcross/
ENTRYPOINT ["/dockcross/linux32-entrypoint.sh"] ENTRYPOINT ["/dockcross/linux32-entrypoint.sh"]