From b882004687554eb6f9ca7596af7f365b3e1b598b Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 19 Nov 2005 09:13:33 +0000 Subject: simplify Makefile rules for handling of LFS files by tweaking the way we compile the source files as suggested by psm --- libc/stdio/Makefile.in | 23 +++-------------------- libc/stdio/fgetpos.c | 10 ---------- libc/stdio/fgetpos64.c | 16 ++++++++++++++++ libc/stdio/fopen.c | 9 +-------- libc/stdio/fopen64.c | 15 +++++++++++++++ libc/stdio/freopen.c | 9 +-------- libc/stdio/freopen64.c | 15 +++++++++++++++ libc/stdio/fseeko.c | 13 +------------ libc/stdio/fseeko64.c | 15 +++++++++++++++ libc/stdio/fsetpos.c | 11 ----------- libc/stdio/fsetpos64.c | 16 ++++++++++++++++ libc/stdio/ftello.c | 12 +----------- libc/stdio/ftello64.c | 15 +++++++++++++++ 13 files changed, 99 insertions(+), 80 deletions(-) create mode 100644 libc/stdio/fgetpos64.c create mode 100644 libc/stdio/fopen64.c create mode 100644 libc/stdio/freopen64.c create mode 100644 libc/stdio/fseeko64.c create mode 100644 libc/stdio/fsetpos64.c create mode 100644 libc/stdio/ftello64.c (limited to 'libc') diff --git a/libc/stdio/Makefile.in b/libc/stdio/Makefile.in index ba9468971..3de5436e3 100644 --- a/libc/stdio/Makefile.in +++ b/libc/stdio/Makefile.in @@ -7,8 +7,6 @@ # Licensed under LGPL v2.1, see the file COPYING.LIB in this tarball for details. # -# Note: The *64.o objects are empty when compiled without large file support. - # SUSv3 functions CSRC := \ fclose.c fcloseall.c fdopen.c fgetpos.c fopen.c freopen.c \ @@ -19,6 +17,9 @@ CSRC := \ asprintf.c sprintf.c vasprintf.c vdprintf.c vsnprintf.c \ tmpfile.c tmpnam.c tmpnam_r.c popen.c tempnam.c ctermid.c +# Note: The *64.o objects are empty when compiled without large file support +CSRC += fgetpos64.c fopen64.c freopen64.c fseeko64.c fsetpos64.c ftello64.c + # getc -> alias for fgetc # putc -> alias for fputc # rename is a syscall @@ -52,12 +53,6 @@ CUSRC := \ # getc_unlocked -> alias for fgetc_unlocked # putc_unlocked -> alias for fputc_unlocked -# Largefile functions (%64.o) -CLSRC := -ifeq ($(UCLIBC_HAS_LFS),y) -CLSRC := fgetpos.c fopen.c freopen.c fseeko.c fsetpos.c ftello.c # tmpfile -endif - # vfprintf and support functions MSRC1 := vfprintf.c ifneq ($(USE_OLD_VFPRINTF),y) @@ -104,8 +99,6 @@ STDIO_SRC := $(patsubst %.c,$(STDIO_DIR)/%.c,$(CSRC)) STDIO_OBJ := $(patsubst %.c,$(STDIO_OUT)/%.o,$(CSRC)) STDIO_CUSRC := $(patsubst %.c,$(STDIO_DIR)/%.c,$(CUSRC)) STDIO_CUOBJ := $(patsubst %.c,$(STDIO_OUT)/%_unlocked.o,$(CUSRC)) -STDIO_CLSRC := $(patsubst %.c,$(STDIO_OUT)/%64.c,$(CLSRC)) -STDIO_CLOBJ := $(patsubst %.c,$(STDIO_OUT)/%64.o,$(CLSRC)) STDIO_MSRC1 := $(patsubst %.c,$(STDIO_DIR)/%.c,$(MSRC1)) STDIO_MSRC2 := $(patsubst %.c,$(STDIO_DIR)/%.c,$(MSRC2)) @@ -129,16 +122,6 @@ STDIO_NO_MULTI := $(STDIO_CUOBJ) $(STDIO_CLOBJ) %_unlocked.os: %.c $(compile.c) -D__DO_UNLOCKED -# need this, else the other %64 files will get false rules -$(STDIO_CLSRC): $(STDIO_OUT)/%64.c : $(STDIO_DIR)/%.c - @cp $< $@ - -$(STDIO_CLOBJ): %.o : %.c - $(compile.c) -D__DO_LARGEFILE - -$(STDIO_CLOBJ:.o=.os): %.os : %.c - $(compile.c) -D__DO_LARGEFILE - $(STDIO_MOBJ1): $(STDIO_MSRC1) $(compile.m) diff --git a/libc/stdio/fgetpos.c b/libc/stdio/fgetpos.c index 9c6c26297..84cf0b98c 100644 --- a/libc/stdio/fgetpos.c +++ b/libc/stdio/fgetpos.c @@ -7,16 +7,6 @@ #include "_stdio.h" -#ifdef __DO_LARGEFILE -# ifndef __UCLIBC_HAS_LFS__ -# error large file support is not enabled! -# endif - -# define fgetpos fgetpos64 -# define fpos_t fpos64_t -# define ftell ftello64 -#endif - int fgetpos(FILE * __restrict stream, register fpos_t * __restrict pos) { #ifdef __STDIO_MBSTATE diff --git a/libc/stdio/fgetpos64.c b/libc/stdio/fgetpos64.c new file mode 100644 index 000000000..d222a1a98 --- /dev/null +++ b/libc/stdio/fgetpos64.c @@ -0,0 +1,16 @@ +/* Copyright (C) 2004 Manuel Novoa III + * + * GNU Library General Public License (LGPL) version 2 or later. + * + * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details. + */ + +#include "_stdio.h" + +#ifdef __UCLIBC_HAS_LFS__ +# define __DO_LARGEFILE +# define fgetpos fgetpos64 +# define fpos_t fpos64_t +# define ftell ftello64 +# include "fgetpos.c" +#endif diff --git a/libc/stdio/fopen.c b/libc/stdio/fopen.c index 8303fa88c..244304acf 100644 --- a/libc/stdio/fopen.c +++ b/libc/stdio/fopen.c @@ -7,14 +7,7 @@ #include "_stdio.h" -#ifdef __DO_LARGEFILE -# ifndef __UCLIBC_HAS_LFS__ -# error large file support is not enabled! -# endif - -# define fopen fopen64 -# define FILEDES_ARG (-2) -#else +#ifndef __DO_LARGEFILE # define FILEDES_ARG (-1) #endif diff --git a/libc/stdio/fopen64.c b/libc/stdio/fopen64.c new file mode 100644 index 000000000..7510f9a93 --- /dev/null +++ b/libc/stdio/fopen64.c @@ -0,0 +1,15 @@ +/* Copyright (C) 2004 Manuel Novoa III + * + * GNU Library General Public License (LGPL) version 2 or later. + * + * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details. + */ + +#include "_stdio.h" + +#ifdef __UCLIBC_HAS_LFS__ +# define __DO_LARGEFILE +# define fopen fopen64 +# define FILEDES_ARG (-2) +# include "fopen.c" +#endif diff --git a/libc/stdio/freopen.c b/libc/stdio/freopen.c index 0eccaac1f..7df035d48 100644 --- a/libc/stdio/freopen.c +++ b/libc/stdio/freopen.c @@ -7,14 +7,7 @@ #include "_stdio.h" -#ifdef __DO_LARGEFILE -# ifndef __UCLIBC_HAS_LFS__ -# error large file support is not enabled! -# endif - -# define freopen freopen64 -# define FILEDES_ARG (-2) -#else +#ifndef __DO_LARGEFILE # define FILEDES_ARG (-1) #endif diff --git a/libc/stdio/freopen64.c b/libc/stdio/freopen64.c new file mode 100644 index 000000000..d3151bab8 --- /dev/null +++ b/libc/stdio/freopen64.c @@ -0,0 +1,15 @@ +/* Copyright (C) 2004 Manuel Novoa III + * + * GNU Library General Public License (LGPL) version 2 or later. + * + * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details. + */ + +#include "_stdio.h" + +#ifdef __UCLIBC_HAS_LFS__ +# define __DO_LARGEFILE +# define freopen freopen64 +# define FILEDES_ARG (-2) +# include "freopen.c" +#endif diff --git a/libc/stdio/fseeko.c b/libc/stdio/fseeko.c index 48979a06b..242292a43 100644 --- a/libc/stdio/fseeko.c +++ b/libc/stdio/fseeko.c @@ -11,22 +11,11 @@ # error Assumption violated -- values of SEEK_SET, SEEK_CUR, SEEK_END #endif -#ifdef __DO_LARGEFILE -# ifndef __UCLIBC_HAS_LFS__ -# error large file support is not enabled! -# endif - -# define FSEEK __fseeko64 -# define OFFSET_TYPE __off64_t - -#else - +#ifndef __DO_LARGEFILE # define FSEEK fseek # define OFFSET_TYPE long int - #endif - int FSEEK(register FILE *stream, OFFSET_TYPE offset, int whence) { #if defined(__UCLIBC_HAS_LFS__) && !defined(__DO_LARGEFILE) diff --git a/libc/stdio/fseeko64.c b/libc/stdio/fseeko64.c new file mode 100644 index 000000000..66778e963 --- /dev/null +++ b/libc/stdio/fseeko64.c @@ -0,0 +1,15 @@ +/* Copyright (C) 2004 Manuel Novoa III + * + * GNU Library General Public License (LGPL) version 2 or later. + * + * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details. + */ + +#include "_stdio.h" + +#ifdef __UCLIBC_HAS_LFS__ +# define __DO_LARGEFILE +# define FSEEK __fseeko64 +# define OFFSET_TYPE __off64_t +# include "fseeko.c" +#endif diff --git a/libc/stdio/fsetpos.c b/libc/stdio/fsetpos.c index 44104b4df..2b02f25e0 100644 --- a/libc/stdio/fsetpos.c +++ b/libc/stdio/fsetpos.c @@ -7,16 +7,6 @@ #include "_stdio.h" -#ifdef __DO_LARGEFILE -# ifndef __UCLIBC_HAS_LFS__ -# error large file support is not enabled! -# endif - -# define fsetpos fsetpos64 -# define fpos_t fpos64_t -# define fseek fseeko64 -#endif - int fsetpos(FILE *stream, register const fpos_t *pos) { #ifdef __STDIO_MBSTATE @@ -41,4 +31,3 @@ int fsetpos(FILE *stream, register const fpos_t *pos) #endif } - diff --git a/libc/stdio/fsetpos64.c b/libc/stdio/fsetpos64.c new file mode 100644 index 000000000..faae7a5b0 --- /dev/null +++ b/libc/stdio/fsetpos64.c @@ -0,0 +1,16 @@ +/* Copyright (C) 2004 Manuel Novoa III + * + * GNU Library General Public License (LGPL) version 2 or later. + * + * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details. + */ + +#include "_stdio.h" + +#ifdef __UCLIBC_HAS_LFS__ +# define __DO_LARGEFILE +# define fsetpos fsetpos64 +# define fpos_t fpos64_t +# define fseek fseeko64 +# include "fsetpos.c" +#endif diff --git a/libc/stdio/ftello.c b/libc/stdio/ftello.c index 38517acbd..a28333efc 100644 --- a/libc/stdio/ftello.c +++ b/libc/stdio/ftello.c @@ -7,19 +7,9 @@ #include "_stdio.h" -#ifdef __DO_LARGEFILE -# ifndef __UCLIBC_HAS_LFS__ -# error large file support is not enabled! -# endif - -# define FTELL __ftello64 -# define OFFSET_TYPE __off64_t - -#else - +#ifndef __DO_LARGEFILE # define FTELL ftell # define OFFSET_TYPE long int - #endif OFFSET_TYPE FTELL(register FILE *stream) diff --git a/libc/stdio/ftello64.c b/libc/stdio/ftello64.c new file mode 100644 index 000000000..3ba201968 --- /dev/null +++ b/libc/stdio/ftello64.c @@ -0,0 +1,15 @@ +/* Copyright (C) 2004 Manuel Novoa III + * + * GNU Library General Public License (LGPL) version 2 or later. + * + * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details. + */ + +#include "_stdio.h" + +#ifdef __UCLIBC_HAS_LFS__ +# define __DO_LARGEFILE +# define FTELL __ftello64 +# define OFFSET_TYPE __off64_t +# include "fgetpos.c" +#endif -- cgit v1.2.3