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-debuginfo.patch: Add -g option to build to generate debugging information.
* icedtea-demos.patch: Fix building of JVMTI demo.
* icedtea-float-double-trailing-zeros.patch: Remove trailing zeros from Double/Float (PR29/30)
* icedtea-freetypeversion.patch: freetype backend only requires 2.2.1.
* 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-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: Applies security patch.
* icedtea-lcms-2.patch: Temporary fix for https://bugs.openjdk.java.net/show_bug.cgi?id=100050.
* icedtea-lib64.patch: Add support for building on platforms with /usr/lib64.
* icedtea-libraries.patch: Use system JPEG and zlib libraries.
* 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-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-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-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-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 when DISABLE_PRECOMPILED_HEADER is set.
* icedtea-includedb.patch: Add missing include files.
* icedtea-awt-window-size.patch: Fix X11 window size calculation (S6721088).
* icedtea-java2d-dasher.patch: Fix interpretation of dash array elements in BasicStroke (S6793344).
* icedtea-xml-encodinginfo.patch: Fix possible StackOverflowError in EncodingInfo (PR295).
* icedtea-jtreg-6592792.patch: Fix jtreg test for bug 6592792 so that it compiles.
* icedtea-s390-noinline.patch: Add special flags for javac on s390 to work around a VM problem with bad code generation during inlining.
* icedtea-jtreg-hatrun.patch: Fix jhat test by passing the classpath to the new jvm in HatRun.java.
* icedtea-jtreg-dnd.patch: Fix classpath issues in java/awt/dnd/FileListBetweenJVMsTest.
* icedtea-jtreg-colortest.patch: Remove call to System.exit() that was causing SystemBgColorTest to fail.
* icedtea-jtreg-printjob-multiple-end.patch: Fix test to not require any user interaction.
* icedtea-network-unreachable.patch: Check for ENETUNREACH and EHOSTUNREACH early on when doing a Socket.connect().
* icedtea-jtreg-printjob-edgetest-manual.patch: Mark test that requires user interaction as manual.
* icedtea-jtreg-jrunscript.patch: Fix jrunscript test so it works with newer versions of rhino (by comparing the actual numbers).
* icedtea-ignore-unrecognized-options.patch: Add -XX:+IgnoreUnrecognizedVMOptions flag to hotspot (S6788376).
* icedtea-java2d-mitre-join.patch: Backport fix for mitre join decoration (S6812600).
* icedtea-java2d-stroker-internal-joint.patch: Fix penultimate joint created by GeneralPath.closePath().
* icedtea-java2d-stroker-internal-close-joint.patch: Fix final joint created by GeneralPath.closePath().
* icedtea-cacao.patch: For the 'java' command, create new thread depending on the current VM.
* icedtea-cacao-no-mmap-first-page.patch: Don't mmap the first memory page.
* cacao/no-strict-aliasing.patch: Turn off strict aliasing which causes an issue with the verifier when building with GCC 4.4 (cacao PR129).
* icedtea-shark.patch: Add support for the Shark JIT.
* icedtea-xshm.patch: Support newer X11 headers for awt_GraphicsEnv.h.

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.
* icedtea-timezone.patch : Makes java only look for time zone information in
  /etc/sysconfig/clock if /etc/localtime is not found (fix for rh-489586)
* icedtea-timezone-default-permission.patch: Partial fix for PR381
  (in combination with icedtea-use-system-tzdata.patch) security check
  debug printing overflow. Also in openjdk7 b22, but apparently lost
  since b22 was from "before hg".
* icedtea-simpletimezone-relax.patch: Fix for PR377, Jordan end of day rule
  in Asia/Amman TimeZone. SimpleTimeZone checks too strict.
* icedtea-dnd-filelists.patch: Fix drag and drop behaviour when dragging a file list between JVMs (S5079469). Backported from OpenJDK.
* icedtea-signed-types-hot6.patch: Make use of unsigned/signed types explicit.
* openjdk/6648816.patch: Backport of regression (NPE) fix in AccessControlContext (PR364/S6648816)
* icedtea-nss-config.patch: Add the NSS PKCS11 security provider. (PR356)
* icedtea-nss-6763530.patch: Fix PKCS11 provider when used with newer version of NSS (>=3.12.3) (PR356, S6763530).
* libpng.patch: Use png_sig_cmp instead of png_check_sig so we can build against libpng 1.4.
* icedtea-jaxws-getdtdtype.patch: Workaround for incorrect return type in gcj < 4.4 / GNU Classpath < 0.98

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 when building with the plugin support:

* icedtea-liveconnect.patch: Add LiveConnect support to plugin.

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

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-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.
* icedtea-hotspot-6b14-7b24.patch: Upgrade HotSpot to a version with the C++ interpreter; not required with HS14.
* icedtea-hotspot7-build-fixes.patch: Remove KERNEL #ifdef; not required with HS14.
* icedtea-signed-types.patch: Make use of unsigned/signed types explicit; not required with HS14.
* icedtea-hotspot-citypeflow.patch: Not required with HS14.
* icedtea-core-zero-build.patch: Not required with HS14.
* icedtea-bytecodeInterpreterWithChecks.patch: Same as icedtea-xslfix.patch (OpenJDK6 only, S6707485); not required with HS14.
* icedtea-eclipse-hotspot-6614100-7b24.patch: Fix Eclipse crash (S6614100). Fixed in OpenJDK7 b29/hs13.  Not required with HS14.
* icedtea-bytecodeInterpreter.patch: Replace fast opcodes with opc_default.  Not required with HS14.
* icedtea-signature-iterator.patch: Add zero-specific signature handling.  Obsoleted by zero/6890308.patch.
* icedtea-static-libstdc++.patch: Don't use static C++ on PPC64.  Obsoleted by zero/6890308.patch.
* icedtea-zero.patch: Generalise architecture support, add ARM and #ifdef out non-zero applicable parts.  Obsoleted by zero/6890308.patch.
* icedtea-core-build.patch: Add support for building IcedTea core VM.  Obsoleted by zero/6891677.patch.
* icedtea-linker-options.patch: Add -Xlinker option when linking.  Obsoleted by zero/6891677.patch.
* icedtea-zero-build.patch: Add support for the zero assembler build.  Obsoleted by zero/6891677.patch.
* icedtea-cc-interp-backedge.patch: Remove some duplicated code in DO_BACKEDGE_CHECKS.  Obsoleted by zero/6896043.patch.
* icedtea-cc-interp-jvmti.patch: Disable some JVMTI capabilities which are unsupported or do not work with the C++ interpreter.  Obsoleted by zero/6896043.patch.
* icedtea-ia64-bugfix.patch: Remove workaround for IA64 GCC bug.  Obsoleted by zero/6896043.patch.
* icedtea-s390-serialize.patch: Correctly detect serialization segfaults on s390.  Obsoleted by zero/6896043.patch.
* icedtea-test-atomic-operations.patch: Add check to see if GCC's sync_lock_test works.  Obsoleted by zero/6896043.patch.
* icedtea-ia64-fdlibm.patch: Fix name of ia64 architecture from _M_IA64 to ia64.  Obsoleted by zero/6903453.patch.
