btop: fix compilation with musl 1.2.4
authorNick Hainke <vincent@systemli.org>
Tue, 16 May 2023 22:08:36 +0000 (00:08 +0200)
committerTianling Shen <cnsztl@gmail.com>
Tue, 16 May 2023 23:46:11 +0000 (07:46 +0800)
_LARGEFILE64_SOURCE has to be defined in the source, or CFLAGS can be used
to pass -D_LARGEFILE64_SOURCE to allow to keep using LFS64 definitions.

Fixes errors in the form of:
Compiling src/linux/btop_collect.cpp
src/linux/btop_collect.cpp: In function 'Mem::mem_info& Mem::collect(bool)':
src/linux/btop_collect.cpp:1082:58: error: aggregate 'Mem::collect(bool)::statvfs64 vfs' has incomplete type and cannot be defined
 1082 |                                         struct statvfs64 vfs;
      |                                                          ^~~
src/linux/btop_collect.cpp:1083:79: error: invalid use of incomplete type 'struct Mem::collect(bool)::statvfs64'
 1083 |                                         if (statvfs64(mountpoint.c_str(), &vfs) < 0) {
      |                                                                               ^
src/linux/btop_collect.cpp:1082:48: note: forward declaration of 'struct Mem::collect(bool)::statvfs64'
 1082 |                                         struct statvfs64 vfs;
      |                                                ^~~~~~~~~
make[3]: *** [Makefile:274: obj/linux/btop_collect.o] Error 1
make[3]: Leaving directory '/home/nick/openwrt/build_dir/target-aarch64_cortex-a53_musl/btop-1.2.13'
make[2]: *** [Makefile:53: /home/nick/openwrt/build_dir/target-aarch64_cortex-a53_musl/btop-1.2.13/.built] Error 2
make[2]: Leaving directory '/home/nick/openwrt/feeds/packages/admin/btop'
time: package/feeds/packages/btop/compile#2.57#0.17#3.02
    ERROR: package/feeds/packages/btop failed to build.

Signed-off-by: Nick Hainke <vincent@systemli.org>
admin/btop/Makefile

index 8b8888b508f27c8277aa7cc6249889a53c2f63b4..b3a92d17ce003500761d2037eaa507097c3a95ff 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=btop
 PKG_VERSION:=1.2.13
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL=https://codeload.github.com/aristocratos/btop/tar.gz/v$(PKG_VERSION)?
@@ -37,6 +37,10 @@ MAKE_FLAGS+= \
        OPTFLAGS="$(TARGET_CXXFLAGS)" \
        LDCXXFLAGS="$(TARGET_LDFLAGS) -pthread"
 
+ifneq ($(CONFIG_USE_MUSL),)
+  TARGET_CFLAGS += -D_LARGEFILE64_SOURCE
+endif
+
 define Package/btop/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/local/bin/btop $(1)/usr/bin/