[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-2d-dev
Subject:    Re: [OpenJDK 2D-Dev] RFR: 8222362: Upgrade to Freetype 2.10.0
From:       Sergey Bylokhov <Sergey.Bylokhov () oracle ! com>
Date:       2019-04-17 23:06:27
Message-ID: 773e8acb-5f99-61fb-c60f-96c0b70ef1bc () oracle ! com
[Download RAW message or body]

+1

On 17/04/2019 06:15, Erik Joelsson wrote:
> Looks good!
> 
> /Erik
> 
> On 2019-04-16 16:40, Philip Race wrote:
> > freetype 2.10 has been released and this fix upgrades
> > the JDK's internal copy from the previous latest of 2.9.1
> > 
> > Bug : https://bugs.openjdk.java.net/browse/JDK-8222362
> > Webrev : http://cr.openjdk.java.net/~prr/8222362/
> > Built on all platforms - tested using --with-freetype=bundled
> > Automated regression tests run
> > Verified manually with Font2DTest & SwingSet2
> > The license is the same - just a version update is needed.
> > 
> > A couple of new build warnings needed to be disabled and
> > there was a build problem on Windows, so one change
> > in AwtLibraries.gmk is to deal with this error :
> > 
> > 
> > > t:\workspace\build\windows-x64\support\native\java.desktop\libfreetype\freetype.lib \
> > > : fatal error LNK1136: invalid or corrupt file Awt2dLibraries.gmk:602: recipe \
> > > for target '/cygdrive/t/workspace/build/windows-x64/support/modules_libs/java.desktop/fontmanager.dll' \
> > > failed make[3]: *** \
> > > [/cygdrive/t/workspace/build/windows-x64/support/modules_libs/java.desktop/fontmanager.dll] \
> > > Error 1
> > 
> > The problem is that freetype.lib is empty (0 bytes)
> > I inferred this was because for some reason there was no longer anything being \
> > exported. 
> > Hunting sound the source diff I found this :
> > 
> > src/java.desktop/share/native/libfreetype/include/freetype/config/ftconfig.h.udiff.html
> >  
> > -#if defined( _WIN32 )&&   ( defined( _DLL ) || defined( DLL_EXPORT ) )
> > +#if defined( _WIN32 )&&   defined( DLL_EXPORT )
> > #define FT_EXPORT( x )   __declspec( dllexport )   x
> > 
> > 
> > Since we were are passing /MD to VC++ cl.exe will define _DLL for us, but
> > now freetype no longer looks for it.
> > 
> > This can be tracked back to a change in freetype build so that it relies on
> > an explicit define of DLL_EXPORT set up in the vcxproj file.
> > The comment as to why is below although I don't really understand if the \
> > reference to static builds is meant to be a justification. My best guess is that \
> > they are trying to say that even if _DLL is defined sometimes you maybe don't \
> > want/ need to exports ymbols so we are now going to make you say so explicitly \
> > using DLL_EXPORT. 
> > > We no longer use predefined _DLL, which can be defined for static builds too \
> > > with /MD. We use DLL_EXPORT and DLL_IMPORT instead, following libtool \
> > > convention.
> > 
> > https://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/builds/windows/vc2010/freetype.vcxproj?id=4b97ab98a8e90ae5403058b73c345974247bf01e
> >  
> > https://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/include/freetype/config/ftconfig.h?id=4b97ab98a8e90ae5403058b73c345974247bf01e
> >                 
> > ----
> > 
> > So my fix is to add the same manual define to our build as used by freetype.
> > 
> > -phil.


-- 
Best regards, Sergey.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic