Browse Source

Only include lockf64 when large file support is enabled, fixing
a problem noticed by Jeff Mock. Sorry about that.
-Erik

Eric Andersen 21 years ago
parent
commit
5faa9568e4
2 changed files with 23 additions and 1 deletions
  1. 5 1
      libc/misc/file/Makefile
  2. 18 0
      libc/misc/file/lockf64.c

+ 5 - 1
libc/misc/file/Makefile

@@ -24,7 +24,11 @@
 TOPDIR=../../../
 include $(TOPDIR)Rules.mak
 
-CSRC=lockf.c lockf64.c
+ifeq ($(strip $(UCLIBC_HAS_LFS)),y)
+CSRC = lockf.c lockf64.c
+else
+CSRC = lockf.c
+endif
 COBJS=$(patsubst %.c,%.o, $(CSRC))
 OBJS=$(COBJS)
 

+ 18 - 0
libc/misc/file/lockf64.c

@@ -16,6 +16,23 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
+#include <features.h>
+
+#ifdef __UCLIBC_HAS_LFS__
+#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS != 64 
+#undef _FILE_OFFSET_BITS
+#define	_FILE_OFFSET_BITS   64
+#endif
+#ifndef __USE_FILE_OFFSET64
+# define __USE_FILE_OFFSET64	1
+#endif
+#ifndef __USE_LARGEFILE64
+# define __USE_LARGEFILE64	1
+#endif
+#endif
+
+#define __USE_GNU
+
 #include <sys/types.h>
 #include <unistd.h>
 #include <fcntl.h>
@@ -83,3 +100,4 @@ int lockf64 (int fd, int cmd, off64_t len64)
 
     return fcntl(fd, cmd, &fl);
 }
+