From ee225020a880e41cd4007af09ae488bc9cf1a536 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 23 Nov 2016 20:51:35 +0100 Subject: Only workaround fts.h if we have a bad version that doesn't handle LFS. Older versions of glibc included an fts implementation that didn't have Large File System support. We worked around that in linux-kernel-modules.c by including it early before config.h and then redefining some symbols to get the 64-bit versions. This is somewhat fragile and not necessary with newer glibc. If possible we want the 64bit fts version always. Signed-off-by: Mark Wielaard --- libdwfl/linux-kernel-modules.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'libdwfl/linux-kernel-modules.c') diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c index 54c0b908..9cd8ea93 100644 --- a/libdwfl/linux-kernel-modules.c +++ b/libdwfl/linux-kernel-modules.c @@ -26,10 +26,12 @@ the GNU Lesser General Public License along with this program. If not, see . */ -/* We include this before config.h because it can't handle _FILE_OFFSET_BITS. +/* In case we have a bad fts we include this before config.h because it + can't handle _FILE_OFFSET_BITS. Everything we need here is fine if its declarations just come first. */ - -#include +#ifdef BAD_FTS + #include +#endif #include @@ -44,11 +46,15 @@ #include #include -/* Since fts.h is included before config.h, its indirect inclusions may not +/* If fts.h is included before config.h, its indirect inclusions may not give us the right LFS aliases of these functions, so map them manually. */ -#ifdef _FILE_OFFSET_BITS -#define open open64 -#define fopen fopen64 +#ifdef BAD_FTS + #ifdef _FILE_OFFSET_BITS + #define open open64 + #define fopen fopen64 + #endif +#else + #include #endif -- cgit v1.2.3