re PR libgcj/16204 (File I/O fails on files >= 2^31 bytes (2GB))

2004-07-14  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/16204
	* Makefile.am (AM_CXXFLAGS): Add -D_FILE_OFFSET_BITS=64 to enable
	large file support.
	* Makefile.in: Rebuilt.
	* testsuite/libjava.lang/LargeFile.java: New test case.
	* testsuite/libjava.lang/LargeFile.out: New file.

From-SVN: r84733
This commit is contained in:
Bryce McKinlay 2004-07-15 00:58:41 +00:00 committed by Bryce McKinlay
parent 018479fbad
commit b845ed9ff8
5 changed files with 50 additions and 1 deletions

View file

@ -1,3 +1,12 @@
2004-07-14 Bryce McKinlay <mckinlay@redhat.com>
PR libgcj/16204
* Makefile.am (AM_CXXFLAGS): Add -D_FILE_OFFSET_BITS=64 to enable
large file support.
* Makefile.in: Rebuilt.
* testsuite/libjava.lang/LargeFile.java: New test case.
* testsuite/libjava.lang/LargeFile.out: New file.
2004-07-14 Jerry Quinn <jlquinn@optonline.net> 2004-07-14 Jerry Quinn <jlquinn@optonline.net>
* java/beans/EventHandler.java: Remove debugging statements. * java/beans/EventHandler.java: Remove debugging statements.

View file

@ -111,6 +111,8 @@ AM_CXXFLAGS = -fno-rtti -fnon-call-exceptions $(THREADCXXFLAGS) \
-fdollars-in-identifiers \ -fdollars-in-identifiers \
## Detect bugs in the verifier implementation, and maybe other places. ## Detect bugs in the verifier implementation, and maybe other places.
-Wswitch-enum \ -Wswitch-enum \
## Some systems, including Linux, need this to enable > 2GB file support.
-D_FILE_OFFSET_BITS=64 \
@LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE \ @LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE \
-DPREFIX="\"$(prefix)\"" -DLIBDIR="\"$(libdir)\"" \ -DPREFIX="\"$(prefix)\"" -DLIBDIR="\"$(libdir)\"" \
-DBOOT_CLASS_PATH="\"$(jardir)/$(jar_DATA)\"" \ -DBOOT_CLASS_PATH="\"$(jardir)/$(jar_DATA)\"" \

View file

@ -215,6 +215,7 @@ WARNINGS = -Wextra -Wall
AM_CXXFLAGS = -fno-rtti -fnon-call-exceptions $(THREADCXXFLAGS) \ AM_CXXFLAGS = -fno-rtti -fnon-call-exceptions $(THREADCXXFLAGS) \
-fdollars-in-identifiers \ -fdollars-in-identifiers \
-Wswitch-enum \ -Wswitch-enum \
-D_FILE_OFFSET_BITS=64 \
@LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE \ @LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE \
-DPREFIX="\"$(prefix)\"" -DLIBDIR="\"$(libdir)\"" \ -DPREFIX="\"$(prefix)\"" -DLIBDIR="\"$(libdir)\"" \
-DBOOT_CLASS_PATH="\"$(jardir)/$(jar_DATA)\"" \ -DBOOT_CLASS_PATH="\"$(jardir)/$(jar_DATA)\"" \
@ -3076,7 +3077,7 @@ libgcj-test.spec.in libgcj.pc.in libgcj.spec.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar TAR = gtar
GZIP_ENV = --best GZIP_ENV = --best
DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include
DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \

View file

@ -0,0 +1,36 @@
/* Test to ensure files >= 2^31 bytes are supported. */
import java.io.*;
public class LargeFile
{
public static void main(String[] args) throws IOException
{
File file = new File("LargeFile.tmp");
try
{
RandomAccessFile rfile = new RandomAccessFile(file, "rw");
long pos = (long) Math.pow(2, 31);
rfile.seek(pos);
rfile.write('O');
rfile.write('K');
rfile.close();
// Re-open, read byte back using FileInputStream and clean up.
FileInputStream fis = new FileInputStream(file);
fis.skip(pos);
System.out.print((char) fis.read());
System.out.println((char) fis.read());
fis.close();
}
finally
{
if (file.exists())
file.delete();
}
}
}

View file

@ -0,0 +1 @@
OK