Hi, Martin,
I have just filed a new bug
6744609: Disable MMX support when building libpng library
which will be visible via bugs.sun.com in a few hours/days. Next, a
couple of words about the proposed fix:
1. It seems that on windows platform __MMX__ symbol is never defined, so
libpng is compiled without MMX support there. That's why defining
PNG_NO_MMX_CODE unconditionally on all the platforms looks reasonable.
2. A question is about adding pnggccrd.c to the list of files in
make/sun/splashscreen/FILES_c.gmk - I see some code unrelated to MMX there.
As for pushing the fix to the workspace, I don't know if you have access
there. BTW, I don't see you in the list of people signed SCA, which is
required when contributing any code to OpenJDK.
Thanks,
Artem
Martin Buchholz wrote:
Hi Anthony and Artem,
My current patch looks like below.
Except for one remaining minor technical disagreement,I
the only thing "wrong" is the need for a new bug id
(I am reusing the old one, already in Fix Delivered state)
Again, I am proposing to push this to jdk7/awt-gate/jdk
Thanks,
Martin
# HG changeset patch
# User martin
# Date 1220032048 25200
# Node ID abbc627dfd7e7d1e2c613287d5dddb83df3aee93
# Parent 1267605489211c6c162bb246f653759e933bd06e
6613927: Compilation of splashscreen png library failed on Ubuntu 7.04 (64bit)
Summary: Define -DPNG_NO_MMX_CODE unconditionally, not just on 64-bit Linux
Reviewed-by: anthony, art
diff --git a/make/sun/splashscreen/Makefile b/make/sun/splashscreen/Makefile
--- a/make/sun/splashscreen/Makefile
+++ b/make/sun/splashscreen/Makefile
@@ -85,13 +85,6 @@
CPPFLAGS += -I$(PLATFORM_SRC)/native/$(PKGDIR)/splashscreen
-I$(SHARE_SRC)/native/$(PKGDIR)/splashscreen
CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/image/jpeg
-I$(SHARE_SRC)/native/java/util/zip/zlib-1.1.3
-ifeq ($(PLATFORM), linux)
- ifeq ($(ARCH_DATA_MODEL), 64)
- # 64-bit gcc has problems compiling MMX instructions.
- # Google it for more details. Possibly the newer versions of
- # the PNG-library and/or the new compiler will not need this
- # option in the future.
- CPPFLAGS += -DPNG_NO_MMX_CODE
- endif
-endif
-
+# Shun the less than portable MMX assembly code in pnggccrd.c,
+# and use alternative implementations in C.
+CPPFLAGS += -DPNG_NO_MMX_CODE