Blob Blame History Raw
From c17d66e5dce011acef34435598eddf7122458b33 Mon Sep 17 00:00:00 2001
From: Jean-Francois Dockes <jf@dockes.org>
Date: Thu, 13 Dec 2018 18:39:43 +0100
Subject: [PATCH] Ensure that the samples use the same largefile options as the
 library

Create a configuration file specific to the samples, to mimick what a
regular application would have to do.
---
 .gitignore                            |  2 ++
 configure.ac                          |  2 +-
 upnp/sample/common/config_sample.h.in | 21 +++++++++++++++++++++
 upnp/sample/common/sample_util.h      |  1 +
 4 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 upnp/sample/common/config_sample.h.in

diff --git a/configure.ac b/configure.ac
index 108ad7bf..670d3632 100644
--- a/configure.ac
+++ b/configure.ac
@@ -432,7 +432,7 @@ AC_CANONICAL_HOST
 #    libraries : it contains information on the configuration of the
 #    installed libraries.
 #
-AC_CONFIG_HEADERS([autoconfig.h upnp/inc/upnpconfig.h])
+AC_CONFIG_HEADERS([autoconfig.h upnp/inc/upnpconfig.h upnp/sample/common/config_sample.h])
 AX_SYS_LARGEFILE_SENSITIVE
 
 if test "x$ac_cv_sys_largefile_sensitive" = "xyes"; then
diff --git a/upnp/sample/common/config_sample.h.in b/upnp/sample/common/config_sample.h.in
new file mode 100644
index 00000000..8fbc38e3
--- /dev/null
+++ b/upnp/sample/common/config_sample.h.in
@@ -0,0 +1,21 @@
+/*
+ * On systems where the size of off_t depends on compile flags, libupnp needs
+ * the programs which use it to be built with the same options as itself.
+ * This is checked at compile time, but the actual variables (such as
+ * _FILE_OFFSET_BITS) are not exported by the library (to avoid surprises in
+ * applications).
+ * A "normal" application would need to explicitely configure large file
+ * support depending on how libupnp was built, using its own configure
+ * routines. For the samples, we equivalently let the main libupnp configure
+ * create this file.
+ */
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
+#undef _LARGEFILE_SOURCE
+
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
+
diff --git a/upnp/sample/common/sample_util.h b/upnp/sample/common/sample_util.h
index 2bca04ff..6d853efb 100644
--- a/upnp/sample/common/sample_util.h
+++ b/upnp/sample/common/sample_util.h
@@ -44,6 +44,7 @@
 extern "C" {
 #endif /* __cplusplus */
 
+#include "config_sample.h"
 #include "ithread.h"
 #include "ixml.h" /* for IXML_Document, IXML_Element */
 #include "upnp.h" /* for Upnp_EventType */