Skip to content

Commit c8b14e6

Browse files
committed
Build Linux binaries with a CentOS 7 container for maximum glibc compatibility
1 parent ef9ab22 commit c8b14e6

2 files changed

Lines changed: 24 additions & 3 deletions

File tree

.github/workflows/ci.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,23 +88,31 @@ jobs:
8888
../src/main/resources/libbloscjni-x86_64.dylib
8989
rm ../src/main/resources/libbloscjni-*.dylib
9090
91+
- name: Build CentOS7 docker (Linux)
92+
if: ${{ matrix.os == 'ubuntu' }}
93+
run: |
94+
cd bloscjni
95+
docker build -t centos7-jdk8 -f Dockerfile.centos7 .
96+
9197
- name: Build c-blosc (Linux)
9298
if: ${{ matrix.os == 'ubuntu' }}
9399
run: |
94-
cd c-blosc
100+
docker run -i -v$(pwd):/app -w /app/c-blosc centos7-jdk8 bash << EOF
95101
mkdir build
96102
cd build
97103
cmake .. -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release
98104
cmake --build . -j8 --config Release
105+
EOF
99106
100107
- name: Build bloscjni (Linux)
101108
if: ${{ matrix.os == 'ubuntu' }}
102109
run: |
110+
docker run -i -v$(pwd):/app -w /app centos7-jdk8 bash <<EOF
103111
cd bloscjni
104-
gcc \
105-
-I"$JAVA_HOME/include" -I"$JAVA_HOME/include/linux" \
112+
gcc -I"\$JAVA_HOME/include" -I"\$JAVA_HOME/include/linux" \
106113
-shared -lc -fPIC -o ../src/main/resources/libbloscjni.so -O3 \
107114
bloscjni.c ../c-blosc/build/blosc/libblosc.a
115+
EOF
108116
109117
- name: Build blosc-java
110118
run: mvn compile

bloscjni/Dockerfile.centos7

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
FROM amd64/centos:7
2+
3+
RUN yum -y update && \
4+
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel gcc make && \
5+
java -version
6+
7+
RUN cd /usr/local/src && \
8+
curl -LO https://github.com/Kitware/CMake/releases/download/v3.22.2/cmake-3.22.2-linux-x86_64.tar.gz && \
9+
tar -xvf cmake-3.22.2-linux-x86_64.tar.gz && \
10+
mv cmake-3.22.2-linux-x86_64 /usr/local/cmake
11+
12+
ENV PATH="/usr/local/cmake/bin:$PATH"
13+
ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64

0 commit comments

Comments
 (0)