Date: Sat, 31 Jul 2004 11:32:57 -0700 (PDT) From: Jake Hamby <jhamby@anobject.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: java/69853: Patches to build java/jdk14 with GCC 3.4 Message-ID: <200407311832.i6VIWvnd012723@localhost.my.domain> Resent-Message-ID: <200407311840.i6VIeSJP062404@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 69853 >Category: java >Synopsis: Patches to build java/jdk14 with GCC 3.4 >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-java >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Jul 31 18:40:28 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Jake Hamby >Release: FreeBSD 5.2-CURRENT i386 >Organization: anObject >Environment: System: FreeBSD atheros 5.2-CURRENT FreeBSD 5.2-CURRENT #0: Thu Jul 29 17:26:29 PDT 2004 root@atheros:/usr/home/work/ATHEROS i386 gcc (GCC) 3.4.2 [FreeBSD] 20040728 >Description: JDK 1.4.2p6_4 doesn't build under GCC 3.4.2 due to stricter type checking (patches attached). >How-To-Repeat: Build java/jdk-1.4.2p6_4 using GCC 3.4.2 recently committed to -current. >Fix: Some notes on the patches. The first one is the only patch needed for the JDK itself (it's casting away a const, but needs to be (byte*&) rather than (byte*) or else GCC 3.4 won't find the matching member function). The second patch is a bit of a hack for the Netscape 6/Mozilla plugin (which I've verified will load and works okay for both mozilla-1.7.1,2 and firefox-0.9.1_1). For UNIX, the correct HAVE_CPP_* macros are supposed to be defined by autoconf in, for example, "xpcom/xpcom-config.h" (according to the headers installed by Mozilla). But this file is missing altogether from the version of the headers installed by the BSD JDK patches, and GCC 3.4 really needs HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX defined or else it fails because "template<>" isn't being inserted in the right spots. Since both GCC 3.4 and the Metrowerks compiler support all of the HAVE_CPP features, I cheated and reused those defines for the NS_UNIX build. --- patch-awt_fontmanager_t2kScalaerContext.cpp begins here --- --- ../../j2se/src/share/native/sun/awt/font/fontmanager/fontobjects/t2kScalerContext.cpp.orig Fri Jul 30 18:00:09 2004 +++ ../../j2se/src/share/native/sun/awt/font/fontmanager/fontobjects/t2kScalerContext.cpp Fri Jul 30 22:11:36 2004 @@ -937,14 +937,14 @@ CMAPMapper::CharsToGlyphs( int count, const Unicode16 unicodes[], UInt32 glyphs[]) const { - ConvertUnicodeToGlyphs(*font, (unsigned char *)cmap, count, unicodes, glyphs); + ConvertUnicodeToGlyphs(*font, (byte*&)cmap, count, unicodes, glyphs); } void CMAPMapper::CharsToGlyphs( int count, const Unicode32 unicodes[], UInt32 glyphs[]) const { - ConvertUnicodeToGlyphs(*font, (unsigned char *)cmap, count, unicodes, glyphs); + ConvertUnicodeToGlyphs(*font, (byte*&)cmap, count, unicodes, glyphs); } ////////////////////////////////////////////////////////////////////////////// --- patch-awt_fontmanager_t2kScalaerContext.cpp ends here --- --- patch-plugin::include::nscore.h begins here --- --- ../../deploy/src/plugin/oji-plugin/include/mozilla_headers_ns610/nscore.h.orig Fri Jul 30 18:00:05 2004 +++ ../../deploy/src/plugin/oji-plugin/include/mozilla_headers_ns610/nscore.h Fri Jul 30 23:23:36 2004 @@ -163,7 +163,7 @@ */ /* under Metrowerks (Mac), we don't have autoconf yet */ -#ifdef __MWERKS__ +#if defined(__MWERKS__) || defined(NS_UNIX) #define HAVE_CPP_SPECIALIZATION #define HAVE_CPP_PARTIAL_SPECIALIZATION #define HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX --- ../../deploy/src/plugin/oji-plugin/include/mozilla_headers_ns600/nscore.h.orig Fri Jul 30 18:00:04 2004 +++ ../../deploy/src/plugin/oji-plugin/include/mozilla_headers_ns600/nscore.h Fri Jul 30 23:32:31 2004 @@ -163,7 +163,7 @@ */ /* under Metrowerks (Mac), we don't have autoconf yet */ -#ifdef __MWERKS__ +#if defined(__MWERKS__) || defined(NS_UNIX) #define HAVE_CPP_SPECIALIZATION #define HAVE_CPP_PARTIAL_SPECIALIZATION #define HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX --- patch-plugin::include::nscore.h ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200407311832.i6VIWvnd012723>