On 2014-02-03 17:55, David Chase wrote:
On 2014-02-03, at 9:59 AM, Magnus Ihse Bursie <magnus.ihse.bur...@oracle.com>
wrote:
You seem to have gotten a mismatch due to several versions of freetype
installed.
At first I agreed with you, but after looking a little more I think I have been
using the same one all along,
and it just changed. Perhaps this is just an early warning. Or perhaps my X11
is old and stale.
I'm sure there's a mixup here, and it's starting to be clearer for me
now...
Checking step by step:
In file included from
/Users/dr2chase/work/jdk9/jdk/src/share/native/sun/font/freetypeScaler.c:34:
/usr/X11/include/ft2build.h:56:38: warning: freetype/config/ftheader.h: No such
file or directory
When building, we do include the ft2build.h from /usr/X11. This is
incorrect, given your configuration.
configure:44157: checking for FREETYPE
configure:44164: $PKG_CONFIG --exists --print-errors "freetype2"
configure:44167: $? = 0
configure:44180: $PKG_CONFIG --exists --print-errors "freetype2"
configure:44183: $? = 0
configure:44218: result: yes
configure:44235: checking for freetype
configure:44237: result: yes (using pkg-config)
configure:46621: checking if we can compile and link with freetype
configure:46646: /usr/bin/g++ -o conftest -I/opt/local/include/freetype2
conftest.cpp -L/opt/local/lib -lfreetype >&5
configure:46646: $? = 0
configure:46648: result: yes
So, we use pkg-config to locate freetype, and it is found in
/opt/local/. This seems correct.
spec.gmk:FREETYPE_CFLAGS:=-I/opt/local/include/freetype2
... and it's properly exported.
I don't know what your basis for "it seems unlikely" is.
That I forgot about pkg-config. :-) Sorry, it is of course completely
reasonable that configure works like this.
Using the --with-freetype option is the preferred mode, instead of modifying
system files.
I thought the preferred mode was for configure to work properly without human
intervention :-).
Yeah, yeah... :-)
dr2chase:~ dr2chase$ which pkg-config
/opt/local/bin/pkg-config
That looks like a likely cause, but that appears to be the only pkg-config on
the box.
I think pkg-config is working alright. And you surely did right to
install freetype.
I think the cause of the issue is, as Omair wrote in another mail, is
that freetype headers have changed their structure. If you updated, you
might just have gotten the new version. However, since the pattern to
include freetype properly is:
#include <ft2build.h>
#include FT_FREETYPE_H
(which is what we do), this *should* have expanded to a correct include
anyway.
But if ft2build.h is picked up from /usr/X11, then it's not updated to
match the new layout, but it probably still expands to the old paths for
the rest of the include files. And that path has changed.
So I'm guessing we're putting /usr/X11 before the freetype include in
the compiler command line, and that this is the cause of failure.
*checking* Yep, that seems to be the case.
Can you please try the following patch and see if it solves your problem?
diff --git a/make/lib/Awt2dLibraries.gmk b/make/lib/Awt2dLibraries.gmk
--- a/make/lib/Awt2dLibraries.gmk
+++ b/make/lib/Awt2dLibraries.gmk
@@ -792,9 +792,9 @@
endif
BUILD_LIBFONTMANAGER_CFLAGS_COMMON := \
+ $(FONT_HEADERS) \
$(X_CFLAGS) \
-DLE_STANDALONE -DHEADLESS \
- $(FONT_HEADERS) \
-I$(JDK_TOPDIR)/src/share/native/sun/font \
-I$(JDK_TOPDIR)/src/share/native/sun/font/layout \
-I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
/Magnus