aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog9
-rw-r--r--libjava/Makefile.am2
-rw-r--r--libjava/Makefile.in3
-rw-r--r--libjava/testsuite/libjava.lang/LargeFile.java36
-rw-r--r--libjava/testsuite/libjava.lang/LargeFile.out1
5 files changed, 50 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 516a34d..7b36105 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -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>
* java/beans/EventHandler.java: Remove debugging statements.
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index fb77561..7e5f6af 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -111,6 +111,8 @@ AM_CXXFLAGS = -fno-rtti -fnon-call-exceptions $(THREADCXXFLAGS) \
-fdollars-in-identifiers \
## Detect bugs in the verifier implementation, and maybe other places.
-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 \
-DPREFIX="\"$(prefix)\"" -DLIBDIR="\"$(libdir)\"" \
-DBOOT_CLASS_PATH="\"$(jardir)/$(jar_DATA)\"" \
diff --git a/libjava/Makefile.in b/libjava/Makefile.in
index d9c8a5f..f6da908 100644
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -215,6 +215,7 @@ WARNINGS = -Wextra -Wall
AM_CXXFLAGS = -fno-rtti -fnon-call-exceptions $(THREADCXXFLAGS) \
-fdollars-in-identifiers \
-Wswitch-enum \
+ -D_FILE_OFFSET_BITS=64 \
@LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE \
-DPREFIX="\"$(prefix)\"" -DLIBDIR="\"$(libdir)\"" \
-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)
-TAR = tar
+TAR = gtar
GZIP_ENV = --best
DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include
DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
diff --git a/libjava/testsuite/libjava.lang/LargeFile.java b/libjava/testsuite/libjava.lang/LargeFile.java
new file mode 100644
index 0000000..1bb8aec
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/LargeFile.java
@@ -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();
+ }
+ }
+}
diff --git a/libjava/testsuite/libjava.lang/LargeFile.out b/libjava/testsuite/libjava.lang/LargeFile.out
new file mode 100644
index 0000000..d86bac9
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/LargeFile.out
@@ -0,0 +1 @@
+OK