Skip to content

Commit 6571f44

Browse files
Reduce binary sizes by stripping symbols
1 parent cd51467 commit 6571f44

File tree

4 files changed

+36
-3
lines changed

4 files changed

+36
-3
lines changed

.github/actions/build-native-binary/action.yaml

+13-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,19 @@ runs:
6868
-DSUA_MEASURE_CODE_COVERAGE=NO \
6969
..
7070
make -j
71-
make install
71+
make install/strip
72+
shell: bash
73+
74+
- name: Strip binaries for amd64
75+
if: ${{ inputs.arch == 'amd64' }}
76+
run: |
77+
strip dist_${{ inputs.arch }}/lib/lib*
78+
shell: bash
79+
80+
- name: Strip binaries for arm64
81+
if: ${{ inputs.arch == 'arm64' }}
82+
run: |
83+
aarch64-linux-gnu-strip dist_${{ inputs.arch }}/lib/lib*
7284
shell: bash
7385

7486
- name: Build for amd64 with code-coverage enabled

Dockerfile.amd64

+10-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,16 @@ RUN cd /work \
5151

5252
RUN cd /work \
5353
&& cd build_amd64 \
54-
&& make install
54+
&& make install/strip
55+
56+
RUN cd /work \
57+
&& strip dist_amd64/lib/lib* \
58+
&& strip /work/build_amd64/glib/gio/libgio-2.0.so.0 \
59+
&& strip /work/build_amd64/glib/gobject/libgobject-2.0.so.0 \
60+
&& strip /work/build_amd64/glib/glib/libglib-2.0.so.0 \
61+
&& strip /work/build_amd64/glib/gmodule/libgmodule-2.0.so.0 \
62+
&& strip /work/build_amd64/glib/subprojects/libffi/src/libffi.so.7 \
63+
&& strip /work/build_amd64/glib/subprojects/zlib-1.2.11/libz.so
5564

5665
#Define RUNTIME environment, the final image
5766
FROM --platform=${TARGETPLATFORM} scratch as runtime

Dockerfile.arm64

+10-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,16 @@ RUN cd /work \
5151

5252
RUN cd /work \
5353
&& cd build_arm64 \
54-
&& make install
54+
&& make install/strip
55+
56+
RUN cd /work \
57+
&& aarch64-linux-gnu-strip dist_arm64/lib/lib* \
58+
&& aarch64-linux-gnu-strip /work/build_arm64/glib/gio/libgio-2.0.so.0 \
59+
&& aarch64-linux-gnu-strip /work/build_arm64/glib/gobject/libgobject-2.0.so.0 \
60+
&& aarch64-linux-gnu-strip /work/build_arm64/glib/glib/libglib-2.0.so.0 \
61+
&& aarch64-linux-gnu-strip /work/build_arm64/glib/gmodule/libgmodule-2.0.so.0 \
62+
&& aarch64-linux-gnu-strip /work/build_arm64/glib/subprojects/libffi/src/libffi.so.7 \
63+
&& aarch64-linux-gnu-strip /work/build_arm64/glib/subprojects/zlib-1.2.11/libz.so
5564

5665
#Define RUNTIME environment, the final image
5766
FROM --platform=${TARGETPLATFORM} scratch as runtime

src/CMakeLists.txt

+3
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@ list(FILTER SRCS EXCLUDE REGEX "main.cpp" )
4141
list(APPEND SRCS ${CMAKE_CURRENT_BINARY_DIR}/version.cpp)
4242

4343
add_library(sua SHARED ${SRCS})
44+
set_target_properties(sua PROPERTIES LINK_FLAGS -s)
45+
4446
add_executable(${PROJECT_NAME} ${SRCS} main.cpp)
47+
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS -s)
4548

4649
link_directories(${CMAKE_BINARY_DIR}/3rdparty/curl/lib)
4750

0 commit comments

Comments
 (0)