Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Dec 2012 22:24:02 -0500
From:      "Mikhail T." <mi+thun@aldan.algebra.com>
To:        glewis@FreeBSD.org
Cc:        java@FreeBSD.org
Subject:   openjdk7 - use installed png and jpeg libraries
Message-ID:  <50D527D2.9060100@aldan.algebra.com>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------050604000704080406030109
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hello!

The attached diff teaches java/openjdk7 to rely on the 
graphics/{png,jpeg} ports instead of compiling libpng and libjpeg from 
sources bundled by Oracle.

This is especially important for jpeg, because currently build uses the 
already installed headers while compiling the bundled sources -- in case 
of any discrepancies there may be nasty problems.

It is also just cleaner and affords the use of better optimized image 
libraries (such as assembly-optimized png and jpeg-turbo).

Unfortunately, the port currently does not include check/regression-test 
target, so I my limited testing consisted of simply restarting vuze -- 
this worked, but I am not certain, it exercises the modified code.

Please, take a look. Thank you! Yours,

    -mi


--------------050604000704080406030109
Content-Type: text/plain; charset=KOI8-U;
 name="openjdk7-jpeg-png.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="openjdk7-jpeg-png.diff"

Index: files/patch-jpeg-png
===================================================================
--- files/patch-jpeg-png	(revision 0)
+++ files/patch-jpeg-png	(revision 0)
@@ -0,0 +1,141 @@
+--- jdk/make/sun/jpeg/Makefile	2012-08-10 13:21:52.000000000 -0400
++++ jdk/make/sun/jpeg/Makefile	2012-12-20 12:52:38.000000000 -0500
+@@ -28,4 +28,5 @@
+ LIBRARY = jpeg
+ PRODUCT = sun
++LDLIBS = -ljpeg
+ 
+ # Use highest optimization level
+@@ -37,5 +38,4 @@
+ # Files
+ #
+-include FILES_c.gmk
+ 
+ AUTO_FILES_JAVA_DIRS = sun/awt/image com/sun/imageio/plugins/jpeg
+@@ -87,9 +87,3 @@
+ include $(BUILDDIR)/common/Library.gmk
+ 
+-#
+-# Add to ambient vpath to get files in a subdirectory
+-#
+-vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/image/jpeg
+-
+ CLASSES.export += java.io.InputStream
+-
+--- jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c	2012-08-10 13:30:30.000000000 -0400
++++ jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c	2012-12-20 19:14:01.000000000 -0500
+@@ -26,7 +26,7 @@
+ #include "splashscreen_impl.h"
+ 
+-#include "jinclude.h"
+-#include "jpeglib.h"
+-#include "jerror.h"
++#include <jconfig.h>
++#include <jpeglib.h>
++#include <jerror.h>
+ 
+ #include <setjmp.h>
+@@ -108,9 +108,9 @@
+         cinfo->src = (struct jpeg_source_mgr *)
+             (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
+-            JPOOL_PERMANENT, SIZEOF(stream_source_mgr));
++            JPOOL_PERMANENT, sizeof(stream_source_mgr));
+         src = (stream_src_ptr) cinfo->src;
+         src->buffer = (JOCTET *)
+             (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
+-            JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET));
++            JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET));
+     }
+ 
+--- jdk/make/sun/splashscreen/FILES_c.gmk	2012-08-10 13:21:55.000000000 -0400
++++ jdk/make/sun/splashscreen/FILES_c.gmk	2012-12-20 21:21:20.000000000 -0500
+@@ -32,80 +32,3 @@
+ 	splashscreen_png.c \
+ 	splashscreen_sys.c \
+-	png.c \
+-	pngerror.c \
+-	pngget.c \
+-	pngmem.c  \
+-	pngpread.c \
+-	pngread.c \
+-	pngrio.c \
+-	pngrtran.c \
+-	pngrutil.c \
+-	pngset.c \
+-	pngtrans.c \
+-	pngwio.c \
+-	pngwrite.c \
+-	pngwtran.c \
+-	pngwutil.c \
+-	dgif_lib.c \
+-	gif_err.c \
+-	gifalloc.c \
+-	jcomapi.c \
+-	jdapimin.c \
+-	jdapistd.c \
+-	jdcoefct.c \
+-	jdcolor.c \
+-	jddctmgr.c \
+-	jdhuff.c \
+-	jdinput.c \
+-	jdmainct.c \
+-	jdmarker.c \
+-	jdmaster.c \
+-	jdmerge.c \
+-	jdphuff.c \
+-	jdpostct.c \
+-	jdsample.c \
+-	jerror.c \
+-	jidctflt.c \
+-	jidctfst.c \
+-	jidctint.c \
+-	jidctred.c \
+-	jmemmgr.c \
+-	jmemnobs.c \
+-	jquant1.c \
+-	jquant2.c \
+-	jutils.c \
+-	jcapimin.c \
+-	jcapistd.c \
+-	jccoefct.c \
+-	jccolor.c \
+-	jcdctmgr.c \
+-	jchuff.c \
+-	jcinit.c \
+-	jcmainct.c \
+-	jcmarker.c \
+-	jcmaster.c \
+-	jcparam.c \
+-	jcphuff.c \
+-	jcprepct.c \
+-	jcsample.c \
+-	jctrans.c \
+-	jdtrans.c \
+-	jfdctflt.c \
+-	jfdctfst.c \
+-	jfdctint.c
+ 
+-ifneq ($(SYSTEM_ZLIB),true)
+-  FILES_c += \
+-	compress.c \
+-	deflate.c \
+-	gzio.c \
+-	infback.c \
+-	inffast.c \
+-	inflate.c \
+-	inftrees.c \
+-	trees.c \
+-	uncompr.c \
+-	zadler32.c \
+-	zcrc32.c \
+-	zutil.c
+-endif
+--- jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c	2012-08-10 13:30:30.000000000 -0400
++++ jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c	2012-12-21 17:09:28.000000000 -0500
+@@ -26,5 +26,5 @@
+ #include "splashscreen_impl.h"
+ 
+-#include "../libpng/png.h"
++#include <png.h>
+ 
+ #include <setjmp.h>
Index: files/patch-set
===================================================================
--- files/patch-set	(revision 309313)
+++ files/patch-set	(working copy)
@@ -3067,6 +3067,10 @@
  else # PLATFORM
    CFLAGS += -DWITH_WIN32
    OTHER_LDLIBS += kernel32.lib user32.lib gdi32.lib delayimp.lib /DELAYLOAD:user32.dll
+@@ -133,2 +134,3 @@
+ # and use alternative implementations in C.
+ CPPFLAGS += -DPNG_NO_MMX_CODE
++OTHER_LDLIBS += -ljpeg -lpng
 --- jdk/make/sun/xawt/Makefile	2012-08-10 10:21:55.000000000 -0700
 +++ jdk/make/sun/xawt/Makefile	2012-08-19 12:39:47.000000000 -0700
 @@ -52,6 +52,9 @@
Index: Makefile
===================================================================
--- Makefile	(revision 309313)
+++ Makefile	(working copy)
@@ -7,7 +7,7 @@
 
 PORTNAME=	openjdk
 PORTVERSION=	${JDK_MAJOR_VERSION}.${PORT_MINOR_VERSION}.${PORT_BUILD_NUMBER}
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	java devel
 MASTER_SITES=	http://download.java.net/openjdk/jdk${JDK_MAJOR_VERSION}u${JDK_MINOR_VERSION}/promoted/b${JDK_BUILD_NUMBER}/ \
 		http://download.java.net/jaxp/1.4.5/:jaxp \
@@ -56,6 +56,8 @@
 LATEST_LINK=		openjdk7
 
 LIB_DEPENDS+=	freetype:${PORTSDIR}/print/freetype2 \
+		jpeg:${PORTSDIR}/graphics/jpeg	\
+		png:${PORTSDIR}/graphics/png	\
 		asound:${PORTSDIR}/audio/alsa-lib
 BUILD_DEPENDS+=	zip:${PORTSDIR}/archivers/zip \
 		unzip:${PORTSDIR}/archivers/unzip \
@@ -137,6 +139,8 @@
 post-patch:
 	@${REINPLACE_CMD} "s|%%LOCALBASE%%|${LOCALBASE}|" \
 		${WRKSRC}/hotspot/src/os/bsd/vm/os_bsd.cpp
+	${RM} -r ${WRKSRC}/jdk/src/share/native/sun/awt/image/jpeg	\
+		${WRKSRC}/jdk/src/share/native/sun/awt/libpng
 .if ${PORT_OPTIONS:MPOLICY}
 	@${REINPLACE_CMD} 's|build-policy install-limited|build-policy install-unlimited|' \
 		${WRKSRC}/jdk/make/javax/crypto/Makefile

--------------050604000704080406030109--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50D527D2.9060100>