Skip to content

Commit

Permalink
main/tinyxml2: fix lfs64 usage
Browse files Browse the repository at this point in the history
Apply patch from leethomason/tinyxml2#945
  • Loading branch information
Ikke committed Oct 22, 2023
1 parent 7a4152c commit b3503df
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 1 deletion.
5 changes: 4 additions & 1 deletion main/tinyxml2/APKBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ arch="all"
license="Zlib"
makedepends="meson"
subpackages="$pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/leethomason/tinyxml2/archive/$pkgver.tar.gz"
source="$pkgname-$pkgver.tar.gz::https://github.com/leethomason/tinyxml2/archive/$pkgver.tar.gz
no-lfs64.patch
"

build() {
abuild-meson \
Expand All @@ -28,4 +30,5 @@ package() {

sha512sums="
9c5ce8131984690df302ca3e32314573b137180ed522c92fd631692979c942372a28f697fdb3d5e56bcf2d3dc596262b724d088153f3e1d721c9536f2a883367 tinyxml2-9.0.0.tar.gz
a7a14fd31e414122e38cf2680f63d132ea06d9e8c9676bf87def2ac2a5082dc5bd769c1e1a62c1172eac57cc7bdc049c9d73dc3b05c79401d2309fed8972a049 no-lfs64.patch
"
57 changes: 57 additions & 0 deletions main/tinyxml2/no-lfs64.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
From f439598036842212b7a886095ff1c85e9a3cbf22 Mon Sep 17 00:00:00 2001
From: Violet Purcell <[email protected]>
Date: Thu, 8 Jun 2023 14:57:30 +0000
Subject: [PATCH] Remove LFS64 calls and set _FILE_OFFSET_BITS=64

Musl 1.2.4 made the LFS64 interfaces only available when
_LARGEFILE64_SOURCE is defined, and they will be removed altogether in
Musl 1.2.5. This commit replaces the LFS64 calls with their non-LFS64
versions and defines _FILE_OFFSET_BITS=64, which makes all interfaces
64-bit.

Bug: https://bugs.gentoo.org/905999
---
CMakeLists.txt | 1 +
Makefile | 2 +-
tinyxml2.cpp | 3 ---
3 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8802fb81..2a45e459 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -31,6 +31,7 @@ target_compile_definitions(
PUBLIC $<$<CONFIG:Debug>:TINYXML2_DEBUG>
INTERFACE $<$<BOOL:${BUILD_SHARED_LIBS}>:TINYXML2_IMPORT>
PRIVATE $<$<CXX_COMPILER_ID:MSVC>:_CRT_SECURE_NO_WARNINGS>
+ PUBLIC _FILE_OFFSET_BITS=64
)

set_target_properties(
diff --git a/Makefile b/Makefile
index e76d8ec0..6ca8544e 100644
--- a/Makefile
+++ b/Makefile
@@ -10,7 +10,7 @@ ARFLAGS = cr
RM = rm -f
RANLIB = ranlib
MKDIR = mkdir -p
-CXXFLAGS = -fPIC
+CXXFLAGS = -D_FILE_OFFSET_BITS=64 -fPIC

INSTALL = install
INSTALL_PROGRAM = $(INSTALL)
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index 4b561b3d..e3618180 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -106,9 +106,6 @@ distribution.
#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__ANDROID__)
#define TIXML_FSEEK fseeko
#define TIXML_FTELL ftello
-#elif defined(__unix__) && defined(__x86_64__)
- #define TIXML_FSEEK fseeko64
- #define TIXML_FTELL ftello64
#else
#define TIXML_FSEEK fseek
#define TIXML_FTELL ftell

0 comments on commit b3503df

Please sign in to comment.