From b77db7fa6cd00e1412fdd186180996f8d622b275 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Sun, 7 Sep 2014 12:21:04 +0200
Subject: [PATCH 5/5] ld_iscsi: fix largefile related issues

This commit fixes two related issues in the ld_iscsi example with
largefile support.

The first issue appears when building libiscsi against the glibc C
library, with the flags -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64:

{standard input}: Assembler messages:
{standard input}:2774: Error: symbol `__fxstat64' is already defined
{standard input}:2850: Error: symbol `__lxstat64' is already defined
{standard input}:2938: Error: symbol `__xstat64' is already defined

This is due to the fact that when _FILE_OFFSET_BITS=64 is passed, the
*64() functions are defined by the C library as aliases to the
non-64*() functions, because those ones directly support large files
(i.e 64 bits).

The second issue appears when building libiscsi against the uClibc C
library, in a configuration that doesn't have largefile support. In
this case, the ld_iscsi that tries to use stat64 or some other *64()
functions cannot build, because such functions are not provided by the
C library. Of course, ld_iscsi does not need to wrap the *64()
functions in such a situation, because they do not exist.

This commit fixes those problems by enclosing the *64() related code
of ld_iscsi in the following compile time conditional:

This ensures that the *64() function handling is here only if
largefile support is available and enabled (_LARGEFILE_SOURCE64) and
if non-*64() functions are not already 64 bits capable (in which case
the 64*() functions are just aliases for the non-64*() ones).

See also
http://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
for more details about the meaning of those macros.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 examples/ld_iscsi.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/examples/ld_iscsi.c b/examples/ld_iscsi.c
index 0cf2724..02f9d25 100644
--- a/examples/ld_iscsi.c
+++ b/examples/ld_iscsi.c
@@ -543,6 +543,7 @@ int dup2(int oldfd, int newfd)
 	return real_dup2(oldfd, newfd);
 }
 
+#if defined(_LARGEFILE64_SOURCE) && _FILE_OFFSET_BITS != 64
 
 int (*real_fxstat64)(int ver, int fd, struct stat64 *buf);
 
@@ -591,6 +592,7 @@ int __xstat64(int ver, const char *path, struct stat64 *buf)
 	return __lxstat64(ver, path, buf);
 }
 
+#endif
 
 static void __attribute__((constructor)) _init(void)
 {
@@ -669,6 +671,7 @@ static void __attribute__((constructor)) _init(void)
 		exit(10);
 	}
 
+#if defined(_LARGEFILE64_SOURCE) && _FILE_OFFSET_BITS != 64
 	real_fxstat64 = dlsym(RTLD_NEXT, "__fxstat64");
 	if (real_fxstat64 == NULL) {
 		LD_ISCSI_DPRINTF(0,"Failed to dlsym(__fxstat64)");
@@ -683,4 +686,5 @@ static void __attribute__((constructor)) _init(void)
 	if (real_xstat64 == NULL) {
 		LD_ISCSI_DPRINTF(0,"Failed to dlsym(__xstat64)");
 	}
+#endif
 }
-- 
2.0.0

