Patches
=======

PRx denotes bug x in the IcedTea bug database (http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=x)
Sx denotes bug x in the Sun bug database (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=x)

The following patches are applied early in the build to meet the Free Software guidelines and are also
included in the tarball resulting from the dist-openjdk-fsg target:

[ currently no patches applied ]

The fsg.sh script is also run to delete certain files with dubious licensing and/or only occuring
in binary format.

The following patches are currently applied before the building of OpenJDK or OpenJDK6 by IcedTea:

* icedtea-ant.patch: Remove use of $(ANT_HOME).
* icedtea-uname.patch: Handle output of uname on arm and mips{,el}.
* icedtea-bytebuffer-compact.patch: Add clearMark() method to java.nio.Buffer (PR60).
* icedtea-copy-plugs.patch: Add IcedTea's 'plugs' for Java WebStart support, add
  cast to getAnnotation and trapAuthenticationFailure variable to com.sun.jmx.snmp.SnmpPduTrap.
* icedtea-core-build.patch: Add support for building IcedTea core VM.
* icedtea-debuginfo.patch: Add -g option to build to generate debugging information.
* icedtea-demos.patch: Fix building of JVMTI demo.
* icedtea-enum-bug-181.patch: Fixes class type check (PR181/S6736248)
* icedtea-float-double-trailing-zeros.patch: Remove trailing zeros from Double/Float (PR29/30)
* icedtea-fonts.patch: Add Fedora fontconfig.
* icedtea-gcc-4.3.patch: Fix code to compile with GCC 4.3 and turn off -Werror.
* icedtea-gcc-suffix.patch: Append $(GCC_SUFFIX) to end of 'gcc' binary name.
* icedtea-graphics.patch: Fix word wrap in JTextArea (PR57/S6593649)
* icedtea-ia64-fdlibm.patch: Fix name of ia64 architecture from _M_IA64 to ia64.
* icedtea-javac-debuginfo.patch: Ensure debugging information is generated for all class files.
* icedtea-javafiles.patch: Add missing Java files to list.
* icedtea-jpegclasses.patch: Add com.sun.image.codec.jpeg support.
* icedtea-lcms-leak.patch: Fix LCMS memory leak.
* icedtea-LCMS-setTagData.patch: Add support for setTagData to LCMS peer.
* icedtea-lib64.patch: Add support for building on platforms with /usr/lib64.
* icedtea-libraries.patch: Use system JPEG and zlib libraries.
* icedtea-linker-options.patch: Add -Xlinker option when linking.
* icedtea-memory-limits.patch: Increase default memory limits.
* icedtea-no-bcopy.patch: Don't define local copies of bcopy, bzero and bcmp from BSD.
* icedtea-override-redirect-metacity.patch: Enable override redirect for Metacity window manager.
* icedtea-print-lsb-release.patch: Use information from Debian LSB file for crash reports.
* icedtea-rhino.patch: Add support for Javascript.
* icedtea-rmi_amd64.patch: Build RMI binaries on all platforms not just 32-bit ones.
* icedtea-sparc64-linux.patch: Fixes needed to build the SPARC port on 32-bit SPARC as used by Fedora.
* icedtea-sparc-ptracefix.patch: Avoid importing asm-sparc/ptrace.h by including pt_regs directly.
* icedtea-sparc-trapsfix.patch: Include traps.h from correct directory.
* icedtea-ssl.patch: Add casts to AlgorithmParameterSpec in sun.security.ssl package.
* icedtea-static-libstdc++.patch: Don't use static C++ on PPC64.
* icedtea-sunsrc.patch: Remove service property files from TOOLS list.
* icedtea-text-relocations.patch: Use correct -fPIC/-fpic flag on all platforms.
* icedtea-timerqueue.patch: Fix setting of running variable (PR87).
* icedtea-tools.patch: Remove DebugHelperHelper and add sources in make/java/awt/Makefile to fix build of jvmti.
* icedtea-use-system-tzdata.patch: Use timezone data from the system (PR70/S6593486).
* icedtea-version.patch: Replace name and bug URL with IcedTea versions.
* icedtea-webservices.patch: Add applet support.
* icedtea-zero-build.patch: Add support for the zero assembler build.
* icedtea-shark-build.patch: Add support for building the Shark JIT.
* icedtea-alpha-fixes.patch: Fix build issues on alpha-linux.
* icedtea-arch.patch: Add support for additional architectures.
* icedtea-alt-jar.patch: Add support for using an alternate jar tool in JDK building. 
* icedtea-hotspot7-tests.patch: Adds hotspot compiler tests from jdk7 tree.
* icedtea-renderer-crossing.patch: Check whether crossing is initialized in Pisces Renderer.
* icedtea-stroker-finish.patch: Make sure cap calculation doesn't result in
  divide by zero on tiny paths.
* icedtea-alsa-default-device.patch: Fix problems with using the ALSA 'default' device.
* icedtea-linker-libs-order.patch: When linking, put the referenced libraries after the object files (PR237).
* icedtea-f2i-overflow.patch: Replaces the code used by [fd]2[il] bytecodes to correctly handle overflows. (PR244, S6779290)
* icedtea-6761856-freetypescaler.patch: Fix IcedTea bug #227, OpenJDK bug
  #6761856, swing TextLayout.getBounds() returns shifted bounds.
* icedtea-display-mode-changer.patch: Add extra test class.
* icedtea-testenv.patch: Provide public reachable machines for net/nio tests.
* icedtea-samejvm-safe.patch: Add samejvmsafe dirs to TEST.ROOT.
* icedtea-6728542-epoll.patch: Make EPoll work on non-x86 platforms. (PR265)
* icedtea-fortify-source.patch: Fix build failures with -D_FORTIFY_SOURCE=2.
* icedtea-format-warnings.patch: Fix build failures with -Wformat=1.
* icedtea-io_util-overflow.patch: Replace some code to correctly handle overflows. (S6788196)
* icedtea-cc-interp-jvmti.patch: Disable some JVMTI capabilities which are unsupported or do not work with the C++ interpreter.
* icedtea-demo-swingapplet.patch: Add missing html file needed to run the demo.
* icedtea-6791168.patch: Fix build failure with GCC-4.4 (PR 38725) and compiler warnings.
* icedtea-no-precompiled.patch: Don't use precompiled header files in hotspot.
* icedtea-includedb.patch: Add missing include files.
* icedtea-awt-window-size.patch: Fix X11 window size calculation (S6721088).

The following patches are only applied to OpenJDK6 in IcedTea6:

* icedtea-sparc.patch: Add support for GNU/Linux on SPARC.
* icedtea-jdk-docs-target.patch: Always set DOCS_TARGET.
* icedtea-lucene-crash.patch: Fix lucene bad code generation bug #6707044.
* icedtea-6700047-loopopts.patch: Fix partial peeling issue, bug #6700047.
* icedtea-6712835-ifnode.patch: Fix infinite loop in PhaseIterGVN::transform.

The following patches are only applied to OpenJDK in IcedTea:

* icedtea-override.patch: Remove @Override annotation in javax.management.AttributeValueExp (unsupported by ecj < 3.4).

The following patches are only applied to the icedtea-ecj bootstrap tree:

* icedtea-ecj.patch: Don't generate CORBA sources using MC/idlj, link against -lgcj
  instead of -ljava, force use of boot tools, don't run HotSpot's test_gamma, use
  javac executable with Ant, remove -Werror from javac call, don't build JDK demos,
  don't run sun.awt.X11.ToBin, explicitly pull in timezone data and rt.jar in javac
  calls, replace hexadecimal floating point literals with decimal variants in
  java.lang.Double and java.lang.Float.
* icedtea-ecj-pr261.patch: Adds a couple of classes that are omitted from rt.jar. (PR261)

The following patches are only applied for IcedTea builds using the zero-assembler:

* icedtea-bytecodeInterpreter.patch: Replace fast opcodes with opc_default.
* icedtea-bytecodeInterpreterWithChecks.patch: Same as icedtea-xslfix.patch (OpenJDK6 only, S6707485).
* icedtea-eclipse-hotspot-6614100-7b24.patch: Fix Eclipse crash (S6614100). Fixed in OpenJDK7 b29/hs13.
* icedtea-hotspot-6b12-7b24.patch: Upgrade to HotSpot from OpenJDK b24 (OpenJDK6 only).
   - Never edit this patch.  It should be regenerated by unzipping the
     openjdk6 build you're using into openjdk6, and the openjdk7 build
     you want to use into openjdk, then running:
       diff -ruNb openjdk{6,}/hotspot/src/share > icedtea-hotspot-6bXX-7bYY.patch
       diff -ruNb openjdk{6,}/hotspot/src/os/linux >> icedtea-hotspot-6bXX-7bYY.patch
* icedtea-hotspot7-build-fixes.patch: Remove KERNEL #ifdef.
* icedtea-ia64-bugfix.patch: Remove workaround for IA64 GCC bug.
* icedtea-signature-iterator.patch: Add zero-specific signature handling.
* icedtea-signed-types.patch: Make use of unsigned/signed types explicit.
* icedtea-test-atomic-operations.patch: Add check to see if GCC's sync_lock_test works.
* icedtea-zero.patch: Generalise architecture support, add ARM and #ifdef out non-zero applicable parts.

The following patches are only applied for IcedTea builds not using the zero-assembler:

* icedtea-signed-types-hot6.patch: Make use of unsigned/signed types explicit.

The following patches are only applied for IcedTea builds using the Shark JIT:

* icedtea-shark.patch: Add support for the Shark JIT.

The following patches are only applied when building with experimental NetX plugin support:

* icedtea-netx-plugin.patch: Use NetxPanel instead of AppletViewerPanel.

The following patches are only applied when building with the CACAO virtual machine:

* icedtea-cacao.patch: Don't run 'java' in a new thread.

The following patches are to support Xrender pipeline (-Dsun.java2d.xrender):

* icedtea-xrender-xxx.patch: Numbered patches from xrender branch
  http://hg.openjdk.java.net/xrender/xrender/jdk

Obsolete Patches
================

The following patches were previously applied, but have been made obsolete by
changes to the OpenJDK code base and/or changes within IcedTea:

* icedtea-certbundle.patch: Add support for certificates packaged by Fedora in /etc/pki: Methodology for certificates changed.
* icedtea-color-profiles.patch: Add missing color profiles (S6523403): Included upstream in OpenJDK6 b10 and OpenJDK7 b28. 
* icedtea-hat-spl-gpl.patch: JHat has conflicting GPL/SPL licensing terms (PR143/S6695553): Included upstream in OpenJDK6 b10 and OpenJDK7 b29.
* icedtea-freetype.patch: Use detected freetype in $FT2_LIB and $FREETYPE_HEADERS_PATH: Obsoleted by icedtea-headers.patch.
* icedtea-liveconnect.patch: Add LiveConnect support to plugin: No longer developed.
* icedtea-netx-applet-visibility.patch: Make applet classes package-private for the plugin: Obsoleted by icedtea-webservices.patch.
* icedtea-xinerama.patch: Fix crash talking to second X screen (S6604044): Included upstream in OpenJDK6 b10 and OpenJDK7 b28.
* icedtea-xslfix.patch: Fix malformed bytecodeInterpreterWithChecks XSL file (S6707485): Included upstream in OpenJDK7 b29/hs13.
* openjdk-color.patch: Include Free java.awt.color and java.awt.image (S6662775): Included upstream in OpenJDK6 b06 and OpenJDK7 b28.
* icedtea-cc-interp-no-fer.patch: Replaced with icedtea-cc-interp-jvmti.patch, of which it is a subset.
