Bug#819375: libreoffice: FTBFS on ppc64el due to linking jawt from the wrong directory

2016-03-28 Thread Rene Engelhard
Hi,

On Sun, Mar 27, 2016 at 06:30:46PM +, Slavek Banko wrote:
> java dir for power64 and power64le are now different for reasons listed in
> https://bugs.openjdk.java.net/browse/JDK-8073139
> 
> Because of this there is FTBFS on ppc64el when linking libjawt. Attached
> patches are cherry-picked from the LibreOffice git and solve this problem.
> I hope that the patches can be useful for solving the problem with building
> a security update for Jessie@ppc64el.

Indeed, I remember I had this later, but didn't know some update in stable
also introduced this.. :/

Regards,

Rene



Bug#819375: libreoffice: FTBFS on ppc64el due to linking jawt from the wrong directory

2016-03-27 Thread Slavek Banko
Source: libreoffice
Version: 1:4.3.3-2+deb8u3
Severity: serious
Tags: upstream patch
Justification: fails to build from source (but built successfully in the past)

Dear Maintainer,

java dir for power64 and power64le are now different for reasons listed in
https://bugs.openjdk.java.net/browse/JDK-8073139

Because of this there is FTBFS on ppc64el when linking libjawt. Attached
patches are cherry-picked from the LibreOffice git and solve this problem.
I hope that the patches can be useful for solving the problem with building
a security update for Jessie@ppc64el.

Cheers
-- 
Slavek

-- System Information:
Debian Release: 8.3
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: ppc64el (ppc64le)

Kernel: Linux 3.16.0-4-amd64 (SMP w/6 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)
Shell: /bin/sh linked to /bin/dash
Init: unable to detect
commit 7a66dbe982623be620ad6ac426fe689a434e5f51
Author: David Tardon 
Date:   Tue May 12 10:37:53 2015 +0200

java dir for powepc64 and powepc64le can differ

E.g., RHEL >= 7.1 uses ppc64le for reasons listed in
https://bugs.openjdk.java.net/browse/JDK-8073139 .

Change-Id: I982e65cdf9e8a5ed23cf444ccb2aee764c4c

diff --git a/configure.ac b/configure.ac
index 26071dc..55157a9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6997,9 +6997,12 @@ then
 powerpc)
 my_java_arch=ppc
 ;;
-powerpc64*)
+powerpc64)
 my_java_arch=ppc64
 ;;
+powerpc64le)
+AS_IF([test -d "$JAVA_HOME/jre/lib/ppc64le"], [my_java_arch=ppc64le], [my_java_arch=ppc64])
+;;
 x86_64)
 my_java_arch=amd64
 ;;
commit d8eee8e4d1a303044bf34b28c2e95bd6da23fd79
Author: David Tardon 
Date:   Tue May 12 12:10:16 2015 +0200

java dir for powepc64 and powepc64le can differ

E.g., RHEL >= 7.1 uses ppc64le for reasons listed in
https://bugs.openjdk.java.net/browse/JDK-8073139 .

This is a follow-up to commit 7a66dbe982623be620ad6ac426fe689a434e5f51.

Change-Id: I685f76d51e9775788a7fb225c6a5e2309a45ceb7

diff --git a/config_host/config_java.h.in b/config_host/config_java.h.in
new file mode 100644
index 000..8b23de9
--- /dev/null
+++ b/config_host/config_java.h.in
@@ -0,0 +1,6 @@
+#ifndef CONFIG_JAVA_H
+#define CONFIG_JAVA_H
+
+#undef JAVA_ARCH
+
+#endif
diff --git a/configure.ac b/configure.ac
index 55157a9..5414754 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7002,6 +7002,7 @@ then
 ;;
 powerpc64le)
 AS_IF([test -d "$JAVA_HOME/jre/lib/ppc64le"], [my_java_arch=ppc64le], [my_java_arch=ppc64])
+JAVA_ARCH=$my_java_arch
 ;;
 x86_64)
 my_java_arch=amd64
@@ -7011,6 +7012,7 @@ then
 ;;
 esac
 JAWTLIB="-L$JAVA_HOME/jre/lib/$my_java_arch -ljawt"
+AS_IF([test "$JAVA_ARCH" != ""], [AC_DEFINE_UNQUOTED([JAVA_ARCH], ["$JAVA_ARCH"])])
 fi
 AC_MSG_RESULT([$JAWTLIB])
 fi
@@ -12988,6 +12990,7 @@ AC_CONFIG_HEADERS([config_host/config_folders.h])
 AC_CONFIG_HEADERS([config_host/config_gcc.h])
 AC_CONFIG_HEADERS([config_host/config_global.h])
 AC_CONFIG_HEADERS([config_host/config_graphite.h])
+AC_CONFIG_HEADERS([config_host/config_java.h])
 AC_CONFIG_HEADERS([config_host/config_lgpl.h])
 AC_CONFIG_HEADERS([config_host/config_locales.h])
 AC_CONFIG_HEADERS([config_host/config_mpl.h])
diff --git a/jvmfwk/inc/vendorbase.hxx b/jvmfwk/inc/vendorbase.hxx
index 2ecd01f..a01db56 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx
@@ -20,6 +20,8 @@
 #ifndef INCLUDED_JVMFWK_PLUGINS_SUNMAJOR_PLUGINLIB_VENDORBASE_HXX
 #define INCLUDED_JVMFWK_PLUGINS_SUNMAJOR_PLUGINLIB_VENDORBASE_HXX
 
+#include "config_java.h"
+
 #include "rtl/ustring.hxx"
 #include "rtl/ref.hxx"
 #include "osl/endian.h"
@@ -31,7 +33,9 @@ namespace jfw_plugin
 
 
 //Used by subclasses of VendorBase to build paths to Java runtime
-#if defined(__sparcv9)
+#if defined(JAVA_ARCH)
+#define JFW_PLUGIN_ARCH JAVA_ARCH
+#elif defined(__sparcv9)
 #define JFW_PLUGIN_ARCH "sparcv9"
 #elif defined SPARC
 #define JFW_PLUGIN_ARCH "sparc"
commit caacdc4b39460fcd9ba34652da7c25740f077160
Author: Caolán McNamara 
Date:   Wed Jul 1 08:34:58 2015 +0100

f22 openjdk for ppc64le has both these dirs, but jawt is only on one

Change-Id: Ie770ecceb8c8f5a6fa882a9f5d5a26806b029589

diff --git a/configure.ac b/configure.ac
index aecbe8f..8964c96 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7058,7 +7058,7 @@ then
 my_java_arch=ppc64
 ;;
 powerpc64le)
-AS_IF([test -d "$JAVA_HOME/jre/lib/ppc64le"], [my_java_arch=ppc64le], [my_java_arch=ppc64])
+AS_IF([test -d "$JAVA_HOME/jre/lib/ppc64le/libjawt.so"], [my_java_arch=ppc64le], [my_java_arch=ppc64])
 JAVA_ARCH=$my_java_arch
 ;;
 x86_64)
comm