apk: build static

libapk as a library is used nowhere else and makes no sense to link it
shared. By linking static, we can take advantage of LTO and get the size
reduced further.

Some numbers locally:

Before:

168K staging_dir/target-mips_24kc_musl/root-ath79/usr/bin/apk*
252K staging_dir/target-mips_24kc_musl/root-ath79/usr/lib/libapk.so.2.99.0*

Static:
344K staging_dir/target-mips_24kc_musl/root-ath79/usr/bin/apk*

Static + LTO:
305K staging_dir/target-mips_24kc_musl/root-ath79/usr/bin/apk*

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17109
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
Rosen Penev 2024-11-28 13:15:29 -08:00 committed by Robert Marko
parent 55dfe3fcea
commit 39b0f081ec

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=apk PKG_NAME:=apk
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE_URL=https://gitlab.alpinelinux.org/alpine/apk-tools.git PKG_SOURCE_URL=https://gitlab.alpinelinux.org/alpine/apk-tools.git
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
@ -53,10 +53,12 @@ MESON_HOST_VARS+=VERSION=$(PKG_VERSION)
MESON_VARS+=VERSION=$(PKG_VERSION) MESON_VARS+=VERSION=$(PKG_VERSION)
MESON_COMMON_ARGS = \ MESON_COMMON_ARGS = \
-Db_lto=true \
-Dcompressed-help=false \ -Dcompressed-help=false \
-Ddocs=disabled \ -Ddocs=disabled \
-Dhelp=enabled \ -Dhelp=enabled \
-Dlua_version=5.1 \ -Dlua_version=5.1 \
-Ddefault_library=static \
-Durl_backend=wget \ -Durl_backend=wget \
-Dzstd=false -Dzstd=false
@ -81,9 +83,6 @@ define Package/apk/default/install
$(INSTALL_DIR) $(1)/usr/bin $(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/apk $(1)/usr/bin/apk $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/apk $(1)/usr/bin/apk
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libapk.so.* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/etc/apk/repositories.d $(INSTALL_DIR) $(1)/etc/apk/repositories.d
$(INSTALL_DATA) ./files/customfeeds.list $(1)/etc/apk/repositories.d/customfeeds.list $(INSTALL_DATA) ./files/customfeeds.list $(1)/etc/apk/repositories.d/customfeeds.list
endef endef