Files
Daniel Golle ae34d29eb6 libtorrent: stop discarding the target build flags
CONFIGURE_VARS is assigned rather than appended to, which discards the
default from package-defaults.mk: the cross compiler settings and the
CFLAGS, CXXFLAGS, CPPFLAGS and LDFLAGS the build system passes. The
library is configured with autoconf's own -g -O2 and built for the
toolchain's default architecture instead, without the target CPU flags,
the hardening flags and -ffile-prefix-map. On x86/geode that also costs
the 64-bit atomics: at the default -march=i486 the compiler cannot
inline them and emits __atomic_load_8 and __atomic_store_8 calls, so
every binary linking the static library needs libatomic.

Fixes: 13a058bed6 ("libtorrent: update to 0.15.3")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-15 18:08:12 +01:00

69 lines
1.8 KiB
Makefile

#
# Copyright (C) 2007-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libtorrent
PKG_VERSION:=0.15.5
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/rakshasa/libtorrent
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_MIRROR_HASH:=f5baa923bf45b84a2d1a8bc279815fc5d4f460e581e2d0e3070b97f134301378
PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=COPYING
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
define Package/libtorrent
SECTION:=libs
CATEGORY:=Libraries
TITLE:=Rakshasa's BitTorrent library
URL:=https://rakshasa.github.io/rtorrent/
DEPENDS:=+libopenssl +libstdcpp +zlib
BUILDONLY:=1
endef
define Package/libtorrent/description
LibTorrent is a BitTorrent library written in C++ for *nix, with a focus on
high performance and good code. The library differentiates itself from other
implementations by transferring directly from file pages to the network stack.
On high-bandwidth connections it is able to seed at 3 times the speed of the
official client.
endef
CONFIGURE_ARGS += \
--enable-shared \
--enable-static \
--disable-aligned \
--disable-debug \
--disable-instrumentation \
--with-epoll \
--with-zlib=$(STAGING_DIR)/usr \
--without-kqueue
CONFIGURE_VARS += \
ax_cv_cxx_compile_cxx17=yes
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/torrent $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libtorrent.a $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libtorrent.pc $(1)/usr/lib/pkgconfig/
endef
$(eval $(call BuildPackage,libtorrent))