Package: src:gcc-6
Version: 6.1.1-7

This patch produce gre/jdk/libgcj17 from cross build,
and it also install libgcj.spec also.
The above makes cross gcj works better.

Please review this patch.
I am not fully confident about it.

-- 
YunQiang Su
diff --git a/debian/control.m4 b/debian/control.m4
index 3010377..608b54c 100644
--- a/debian/control.m4
+++ b/debian/control.m4
@@ -20,6 +20,7 @@ define(`MAINTAINER', `Debian GCC Maintainers 
<debian-gcc@lists.debian.org>')
 
 define(`depifenabled', `ifelse(index(enabled_languages, `$1'), -1, `', `$2')')
 define(`ifenabled', `ifelse(index(enabled_languages, `$1'), -1, `dnl', `$2')')
+define(`ifenabled_newline', `ifelse(index(enabled_languages, `$1'), -1, `', 
`$2')')
 
 ifdef(`TARGET',`ifdef(`CROSS_ARCH',`',`undefine(`MULTIARCH')')')
 define(`CROSS_ARCH', ifdef(`CROSS_ARCH', CROSS_ARCH, `all'))
@@ -4045,9 +4046,7 @@ Description: GCJ byte code and native compiler for 
Java(TM)
  Java(tm) source and bytecode files. The compiler can also generate class
  files.
  .
-ifdef(`TARGET',`'dnl
-,` Install the gcj`'PV`'TS-jdk package for a more complete SDK environment.
-')`'dnl
+ Install the gcj`'PV`'TS-jdk package for a more complete SDK environment.
 ')`'dnl gcj
 
 ifenabled(`libgcj',`
@@ -4064,7 +4063,6 @@ Description: Java runtime library (common files)
  This package contains files shared by Classpath and libgcj libraries.
 ')`'dnl libgcjcommon
 
-
 Package: gcj`'PV-jdk`'TS
 Section: java
 Architecture: any
@@ -4085,12 +4083,15 @@ Description: GCJ and Classpath development tools for 
Java(TM)
  The package contains as well a collection of wrapper scripts and symlinks.
  It is meant to provide a Java-SDK-like interface to the GCJ tool set.
 
+ifdef(`TARGET',`',`
 Package: gcj`'PV-jre-headless`'TS
 Priority: ifdef(`TARGET',`extra',`PRI(optional)')
 Section: java
 Architecture: any
-Depends: BASEDEP, gcj`'PV-jre-lib`'TS (>= ${gcj:SoftVersion}), 
libdep(gcj`'LIBGCJ_EXT,,>=,${gcj:Version}), ${dep:prctl}, ${shlibs:Depends}, 
${misc:Depends}
-Suggests: fastjar, gcj`'PV-jdk`'TS (= ${gcj:Version}), 
libdep(gcj`'LIBGCJ_EXT-awt,,>=,${gcj:Version})
+Depends: BASEDEP, gcj`'PV-jre-lib (>= ${gcj:SoftVersion}), 
libdep(gcj`'LIBGCJ_EXT,,>=,${gcj:Version}), ${dep:prctl}, ${shlibs:Depends}, 
${misc:Depends}
+Suggests: fastjar, gcj`'PV-jdk`'TS (= ${gcj:Version}), 
`'ifenabled_newline(`libgcjawt',dnl
+ libdep(gcj`'LIBGCJ_EXT-awt,,>=,${gcj:Version})`'dnl
+)
 Provides: java5-runtime-headless, java2-runtime-headless, 
java1-runtime-headless, java-runtime-headless
 BUILT_USING`'dnl
 Description: Java runtime environment using GIJ/Classpath (headless version)
@@ -4102,12 +4103,15 @@ Description: Java runtime environment using 
GIJ/Classpath (headless version)
  The package contains as well a collection of wrapper scripts and symlinks.
  It is meant to provide a Java-RTE-like interface to the GIJ/GCJ tool set,
  limited to the headless tools and libraries.
+')`'dnl TARGET
 
 Package: gcj`'PV-jre`'TS
 Section: java
 Architecture: any
 Priority: ifdef(`TARGET',`extra',`PRI(optional)')
-Depends: BASEDEP, gcj`'PV-jre-headless`'TS (= ${gcj:Version}), 
libdep(gcj`'LIBGCJ_EXT-awt,,>=,${gcj:Version}), ${shlibs:Depends}, 
${misc:Depends}
+Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends}, 
ifdef(`TARGET',`',gcj`'PV-jre-headless`'TS (= ${gcj:Version})`,') 
`'ifenabled_newline(`libgcjawt',dnl
+ libdep(gcj`'LIBGCJ_EXT-awt,,>=,${gcj:Version})`'dnl
+)
 Provides: java5-runtime, java2-runtime, java1-runtime, java-runtime
 BUILT_USING`'dnl
 Description: Java runtime environment using GIJ/Classpath
@@ -4127,8 +4131,10 @@ ifdef(`MULTIARCH', `Pre-Depends: ${misc:Pre-Depends}
 Multi-Arch: same
 ')`'dnl
 Depends: SOFTBASEDEP, libgcj-common (>= 1:4.1.1-21), ${shlibs:Depends}, 
${misc:Depends}
-Recommends: gcj`'PV-jre-lib`'TS (>= ${gcj:SoftVersion})
-Suggests: libdbgdep(gcj`'GCJ_SO-dbg,), 
libdep(gcj`'LIBGCJ_EXT-awt,,=,${gcj:Version})
+Recommends: gcj`'PV-jre-lib (>= ${gcj:SoftVersion})
+Suggests: libdbgdep(gcj`'GCJ_SO-dbg,), `'ifenabled_newline(`libgcjawt',dnl
+ libdep(gcj`'LIBGCJ_EXT-awt,,=,${gcj:Version})`'dnl
+)
 BUILT_USING`'dnl
 Description: Java runtime library for use with gcj
  This is the runtime that goes along with the gcj front end to
@@ -4138,7 +4144,8 @@ Description: Java runtime library for use with gcj
  To show file names and line numbers in stack traces, the packages
  libgcj`'GCJ_SO-dbg and binutils are required.
 
-Package: gcj`'PV-jre-lib`'TS
+ifdef(`TARGET',`',`
+Package: gcj`'PV-jre-lib
 Section: java
 Architecture: all
 Priority: PRI(optional)
@@ -4146,6 +4153,7 @@ Depends: SOFTBASEDEP, 
libdep(gcj`'LIBGCJ_EXT,,>=,${gcj:SoftVersion}), ${misc:Dep
 BUILT_USING`'dnl
 Description: Java runtime library for use with gcj (jar files)
  This is the jar file that goes along with the gcj front end to gcc.
+')`'dnl TARGET
 
 ifenabled(`gcjbc',`
 Package: libgcj-bc
@@ -4164,6 +4172,7 @@ Description: Link time only library for use with gcj
  libgcj.so changes.
 ')`'dnl gcjbc
 
+ifenabled(`libgcjawt',`
 Package: libgcj`'LIBGCJ_EXT-awt`'LS
 Section: libs
 Architecture: any
@@ -4208,6 +4217,7 @@ Description: AWT QT peer runtime library for use with 
libgcj
  This is the runtime library holding the QT based AWT peer
  implementation for libgcj.
 ')`'dnl qtpeer
+')`'dnl libgcjawt
 ')`'dnl libgcj
 
 ifenabled(`libgcjdev',`
@@ -4217,7 +4227,9 @@ Architecture: any
 ifdef(`MULTIARCH', `Multi-Arch: same
 ')`'dnl
 Priority: PRI(optional)
-Depends: BASEDEP, libdep(gcj`'LIBGCJ_EXT-awt,,=,${gcj:Version}), 
libgcj-bc`'LS, ${pkg:gcjgtk}, ${pkg:gcjqt}, zlib1g-dev, ${shlibs:Depends}, 
${misc:Depends}
+Depends: BASEDEP, libgcj-bc`'LS, ${pkg:gcjgtk}, ${pkg:gcjqt}, zlib1g-dev, 
${shlibs:Depends}, ${misc:Depends}, `'ifenabled_newline(`libgcjawt',dnl
+ libdep(gcj`'LIBGCJ_EXT-awt,,=,${gcj:Version})`'dnl
+)
 Suggests: libgcj-doc
 BUILT_USING`'dnl
 Description: Java development headers for use with gcj
diff --git a/debian/patches/libjava-multiarch.diff 
b/debian/patches/libjava-multiarch.diff
index b18c2dc..40cfbac 100644
--- a/debian/patches/libjava-multiarch.diff
+++ b/debian/patches/libjava-multiarch.diff
@@ -4,18 +4,23 @@ Index: b/src/libjava/configure.ac
 ===================================================================
 --- a/src/libjava/configure.ac
 +++ b/src/libjava/configure.ac
-@@ -1535,6 +1535,10 @@ case ${version_specific_libs} in
+@@ -1535,6 +1535,15 @@ case ${version_specific_libs} in
        .) toolexeclibdir=$toolexecmainlibdir ;; # Avoid trailing /.
        *) toolexeclibdir=$toolexecmainlibdir/$multi_os_directory ;;
      esac
 +    multiarch=`$CC -print-multiarch`
-+    if test -n "$multiarch"; then
-+        toolexeclibdir=$toolexecmainlibdir/$multiarch
++    if test -n "$with_cross_host" &&
++       test x"$with_cross_host" != x"no"; then
++         :
++    else
++      if test -n "$multiarch";then
++         toolexeclibdir=$toolexecmainlibdir/$multiarch
++      fi
 +    fi
      ;;
  esac
  AC_SUBST(toolexecdir)
-@@ -1552,6 +1556,10 @@ AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERS
+@@ -1552,6 +1561,10 @@ AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERS
  # libraries are found.
  gcjsubdir=gcj-$gcjversion-$libgcj_soversion
  dbexecdir='$(toolexeclibdir)/'$gcjsubdir
@@ -56,13 +61,18 @@ Index: b/src/libjava/classpath/m4/acinclude.m4
 ===================================================================
 --- a/src/libjava/classpath/m4/acinclude.m4
 +++ b/src/libjava/classpath/m4/acinclude.m4
-@@ -276,6 +276,10 @@ AC_DEFUN([CLASSPATH_TOOLEXECLIBDIR],
+@@ -276,6 +276,15 @@ AC_DEFUN([CLASSPATH_TOOLEXECLIBDIR],
        esac
        ;;
    esac
 +  multiarch=`$CC -print-multiarch`
-+  if test -n "$multiarch"; then
-+    toolexeclibdir=${libdir}/${multiarch}
++  if test -n "$with_cross_host" &&
++     test x"$with_cross_host" != x"no"; then
++       :
++  else
++    if test -n "$multiarch";then
++       toolexeclibdir=$toolexecmainlibdir/$multiarch
++    fi
 +  fi
    AC_SUBST(toolexecdir)
    AC_SUBST(toolexecmainlibdir)
diff --git a/debian/rules.conf b/debian/rules.conf
index e51adcb..c3b78a3 100644
--- a/debian/rules.conf
+++ b/debian/rules.conf
@@ -925,9 +925,9 @@ ifeq ($(with_ada),yes)
 endif
 ifeq ($(with_java),yes)
   languages += java
-  addons += gcj
+  addons += gcj libgcj libgcjdev 
   ifneq ($(DEB_CROSS),yes)
-    addons += libgcj libgcjdev gcjdoc gcjsrc
+    addons += libgcjawt gcjdoc gcjsrc
   endif
 endif
 
diff --git a/debian/rules.d/binary-java.mk b/debian/rules.d/binary-java.mk
index b223b77..a2ef4d9 100644
--- a/debian/rules.d/binary-java.mk
+++ b/debian/rules.d/binary-java.mk
@@ -10,7 +10,9 @@ endif
 ifeq ($(with_libgcj),yes)
   ifeq ($(with_java),yes)
     arch_binaries  := $(arch_binaries) java gcjjre
-    indep_binaries  := $(indep_binaries) libgcjjar
+    ifneq ($(DEB_CROSS),yes)
+      indep_binaries  := $(indep_binaries) libgcjjar
+    endif
   endif
 
   ifeq ($(with_javadev),yes)
@@ -49,9 +51,11 @@ p_jar        = gcj$(pkg_ver)-jre-lib$(cross_bin_arch)
 p_jsrc = gcj$(pkg_ver)-source
 p_jlib = libgcj$(PKG_LIBGCJ_EXT)$(cross_lib_arch)
 p_jdbg = libgcj$(PKG_GCJ_EXT)-dbg$(cross_lib_arch)
-p_jlibx        = libgcj$(PKG_LIBGCJ_EXT)-awt$(cross_lib_arch)
-p_jgtk = libgcj$(PKG_GCJ_EXT)-awt-gtk$(cross_lib_arch)
-p_jqt  = libgcj$(PKG_GCJ_EXT)-awt-qt$(cross_lib_arch)
+ifeq ($(with_libgcjawt),yes)
+  p_jlibx      = libgcj$(PKG_LIBGCJ_EXT)-awt$(cross_lib_arch)
+  p_jgtk       = libgcj$(PKG_GCJ_EXT)-awt-gtk$(cross_lib_arch)
+  p_jqt        = libgcj$(PKG_GCJ_EXT)-awt-qt$(cross_lib_arch)
+endif
 p_jdev = libgcj$(PKG_GCJ_EXT)-dev$(cross_lib_arch)
 p_jdoc = libgcj-doc
 
@@ -63,16 +67,18 @@ d_jar       = debian/$(p_jar)
 d_jsrc = debian/$(p_jsrc)
 d_jlib = debian/$(p_jlib)
 d_jdbg = debian/$(p_jdbg)
-d_jlibx        = debian/$(p_jlibx)
-d_jgtk = debian/$(p_jgtk)
-d_jqt  = debian/$(p_jqt)
+ifeq ($(with_libgcjawt),yes)
+  d_jlibx      = debian/$(p_jlibx)
+  d_jgtk       = debian/$(p_jgtk)
+  d_jqt        = debian/$(p_jqt)
+endif
 d_jdev = debian/$(p_jdev)
 d_jdoc = debian/$(p_jdoc)
 d_jre  = debian/$(p_jre)
 
 GCJ_BASE_VERSION = $(BASE_VERSION)
 
-gcj_vlibdir    = $(PF)/$(libdir)/gcj-$(BASE_VERSION)-$(GCJ_SONAME)
+gcj_vlibdir    = 
$(PF)/lib/$(DEB_TARGET_MULTIARCH)/gcj-$(BASE_VERSION)-$(GCJ_SONAME)
 
 jre_tools = java keytool orbd rmid rmiregistry tnameserv
 jdk_tools = appletviewer jar jarsigner javac javadoc javah native2ascii rmic 
serialver
@@ -87,12 +93,8 @@ files_gcj = \
        $(PF)/bin/$(cmd_prefix)gcj$(pkg_ver) \
        $(gcc_lexec_dir)/{ecj1,jc1,jvgenmain}
 
-# FIXME: this really should be included, or else the cross compiler
-# can only be used to build libjava itself.
-ifneq (,$(filter $(build_type), build-native cross-build-native))
-  files_gcj += \
-       $(PF)/$(libdir)/libgcj.spec
-endif
+files_gcj += \
+       $(usr_lib)/libgcj.spec
 
 ifneq ($(GFDL_INVARIANT_FREE),yes)
   files_gcj += \
@@ -107,7 +109,8 @@ dirs_jdk = \
        $(gcc_lexec_dir) \
        $(jvm_dir)/bin
 
-files_jdk = \
+ifneq ($(DEB_CROSS),yes)
+  files_jdk = \
        
$(PF)/bin/{gappletviewer,gjdoc,gc-analyze,gjar,gjarsigner,gcjh,gjavah,gnative2ascii,grmic,gserialver,jv-convert,jcf-dump}$(pkg_ver)
 \
        
$(PF)/share/man/man1/{gappletviewer,gjdoc,gjar,gjarsigner,gcjh,gjavah,gnative2ascii,gserialver}$(pkg_ver).1
 \
        $(gcc_lib_dir)/include/{jni.h,jni_md.h,jvmpi.h} \
@@ -123,6 +126,13 @@ ifneq ($(GFDL_INVARIANT_FREE),yes)
        $(PF)/share/info/gcj* \
        $(PF)/share/man/man1/{gc-analyze,grmic,jv-convert,jcf-dump}$(pkg_ver).1
 endif
+else
+  files_jdk = \
+       $(usr_lib)/lib{gij,gcj,gcj-tools}.so \
+       $(jvm_dir)/include \
+       
$(jvm_dir)/bin/{appletviewer,jar,jarsigner,javadoc,javah,native2ascii,rmic,serialver}
 \
+       $(PF)/lib/jvm-exports
+endif
 
 dirs_jrehl = \
        $(docdir)/$(p_jbase) \
@@ -154,21 +164,38 @@ dirs_jre = \
 files_jre = \
        $(jvm_dir)/jre/lib/$(java_cpu)/libjawt.so
 
-dirs_jlib = \
+ifeq ($(with_libgcjawt),yes)
+  dirs_jlib = \
        $(docdir)/$(p_jbase) \
        $(gcj_vlibdir) \
-       $(PF)/$(libdir) \
+       $(usr_lib) \
        $(jvm_dir)/jre/lib
 
-files_jlib = \
-       $(PF)/$(libdir)/libgij.so.* \
-       $(PF)/$(libdir)/libgcj-tools.so.* \
-       $(PF)/$(libdir)/libgcj.so.* \
+  files_jlib = \
+       $(usr_lib)/libgij.so.* \
+       $(usr_lib)/libgcj-tools.so.* \
+       $(usr_lib)/libgcj.so.* \
        $(gcj_vlibdir)/libjvm.so \
-       $(gcj_vlibdir)/libjavamath.so \
        $(jvm_dir)/jre/lib/security
 
 #      $(gcj_vlibdir)/libgconfpeer.so
+else
+  dirs_jlib = \
+       $(docdir)/$(p_jbase) \
+       $(gcj_vlibdir) \
+       $(PFL)/lib \
+       $(jvm_dir)/jre/lib
+
+  files_jlib = \
+       $(PFL)/lib/libgij.so.* \
+       $(PFL)/lib/libgcj-tools.so.* \
+       $(PFL)/lib/libgcj.so.* \
+       $(gcj_vlibdir)/libjvm.so \
+       $(jvm_dir)/jre/lib/security
+
+#      $(gcj_vlibdir)/libgconfpeer.so
+
+endif
 
 ifeq ($(with_java_alsa),yes)
   files_jlib += \
@@ -183,7 +210,7 @@ files_jar = \
        $(PF)/share/java/libgcj-tools-$(BASE_VERSION).jar
 
 dirs_jlibx = \
-       $(PF)/$(libdir) \
+       $(usr_lib) \
        $(gcj_vlibdir) \
        $(PF)/share/java
 
@@ -201,16 +228,20 @@ dirs_jdev = \
        $(jvm_dir)/include
 
 files_jdev = \
-       $(PF)/include/c++/$(BASE_VERSION)/{org,gcj,java,javax} \
-       $(PF)/include/c++/$(BASE_VERSION)/gnu/{awt,classpath,gcj,java,javax} \
-       $(PF)/$(libdir)/pkgconfig/libgcj-$(BASE_VERSION).pc \
+       $(PFL)/include/c++/$(BASE_VERSION)/{org,gcj,java,javax} \
+       $(PFL)/include/c++/$(BASE_VERSION)/gnu/{awt,classpath,gcj,java,javax} \
+       $(usr_lib)/pkgconfig/libgcj-$(BASE_VERSION).pc
+
+ifeq ($(with_libgcjawt),yes)
+  files_jdev += \
        $(gcj_vlibdir)/lib*peer.so
+endif
 
 ifeq ($(with_static_java),yes)
   files_jdev += \
-       $(PF)/$(libdir)/libgij.a \
-       $(PF)/$(libdir)/libgcj.a \
-       $(PF)/$(libdir)/libgcj-tools.a
+       $(usr_lib)/libgij.a \
+       $(usr_lib)/libgcj.a \
+       $(usr_lib)/libgcj-tools.a
 endif
 
 ifeq (,$(p_l64gcc))
@@ -283,9 +314,7 @@ ifeq ($(DEB_CROSS),yes)
                $(d)/$(gcc_lib_dir)/ecj1
 endif
        $(dh_compat2) dh_movefiles -p$(p_gcj)  $(files_gcj)
-ifneq (,$(filter $(build_type), build-native cross-build-native))
-       mv $(d_gcj)/$(PF)/$(libdir)/libgcj.spec $(d_gcj)/$(gcc_lib_dir)/
-endif
+       mv $(d_gcj)/$(usr_lib)/libgcj.spec $(d_gcj)/$(gcc_lib_dir)/
 
 ifneq (,$(filter $(DEB_HOST_ARCH), arm armel))
        ln -sf ../../ecj1 $(d_gcj)/$(gcc_lexec_dir)/ecj1
@@ -300,9 +329,11 @@ ifneq ($(DEB_CROSS),yes)
 endif
 
 ifeq ($(GFDL_INVARIANT_FREE),yes)
+  ifneq ($(DEB_CROSS),yes)
        mkdir -p $(d_gcj)/usr/share/lintian/overrides
        echo '$(p_gcj) binary: binary-without-manpage' \
          >> $(d_gcj)/usr/share/lintian/overrides/$(p_gcj)
+  endif
 endif
 
        debian/dh_doclink -p$(p_gcj) $(p_jbase)
@@ -416,12 +447,12 @@ $(binary_stamp)-java: $(install_stamp)
        dh_testroot
        mv $(install_stamp) $(install_stamp)-tmp
 
-       dh_installdirs -p$(p_jrehl)   $(dirs_jrehl)
        dh_installdirs -p$(p_jlib)  $(dirs_jlib)
+       $(dh_compat2) dh_movefiles -p$(p_jlib)  $(files_jlib)
+ifeq ($(with_libgcjawt),yes)
+       dh_installdirs -p$(p_jrehl)   $(dirs_jrehl)
        dh_installdirs -p$(p_jlibx) $(dirs_jlibx)
-
        $(dh_compat2) dh_movefiles -p$(p_jrehl)   $(files_jrehl)
-       $(dh_compat2) dh_movefiles -p$(p_jlib)  $(files_jlib)
        $(dh_compat2) dh_movefiles -p$(p_jlibx) $(files_jlibx)
 #ifneq (,$(findstring gtk, $(java_awt_peers)))
 #      $(dh_compat2) dh_movefiles -p$(p_jgtk) $(files_jgtk)
@@ -447,6 +478,7 @@ ifneq ($(GFDL_INVARIANT_FREE),yes)
          $(PF)/share/man/man1/gij$(pkg_ver).1 $(jvm_dir)/man/man1/java.1 \
          $(PF)/share/man/man1/grmic$(pkg_ver).1 
$(jvm_dir)/man/man1/rmiregistry.1
 endif
+endif
 
 ifneq ($(DEB_TARGET_ARCH_CPU),$(java_cpu))
        ln -sf $(java_cpu) $(d_jlib)/$(jvm_dir)/jre/lib/$(DEB_TARGET_ARCH_CPU)
@@ -461,6 +493,10 @@ endif
          /etc/java/security/classpath.security \
          /$(jvm_dir)/jre/lib/security/java.security
 
+       ln -s ../libgcj.so.$(GCJ_SONAME) \
+               $(d_jlib)/$(gcj_vlibdir)/libgcj_bc.so.1
+
+ifeq ($(with_libgcjawt),yes)
        dh_link -p$(p_jlibx) \
          $(foreach i, jawt, $(gcj_vlibdir)/lib$(i).so 
$(jvm_dir)/lib/lib$(i).so)
 
@@ -470,9 +506,6 @@ ifeq ($(DEB_HOST_ARCH),hppa)
        install -m755 debian/gij-hppa $(d_jrehl)/$(PF)/bin/gij$(pkg_ver)
 endif
 
-       ln -s ../libgcj.so.$(GCJ_SONAME) \
-               $(d_jlib)/$(gcj_vlibdir)/libgcj_bc.so.1
-
        : # provide .jinfo file
        ( \
          echo 'name=$(jvm_name_short)'; \
@@ -493,7 +526,10 @@ ifneq (,$(findstring gcj,$(p_jbase)))
                $(d_jrehl)/usr/share/doc/$(p_jbase)/
 endif
        debian/dh_doclink -p$(p_jrehl) $(p_jbase)
+endif
        debian/dh_doclink -p$(p_jlib)  $(p_jbase)
+
+ifeq ($(with_libgcjawt),yes)
        debian/dh_doclink -p$(p_jlibx) $(p_jbase)
 
 #ifneq (,$(findstring gtk, $(java_awt_peers)))
@@ -502,6 +538,7 @@ endif
 #ifneq (,$(findstring qt, $(java_awt_peers)))
 #      debian/dh_doclink -p$(p_jqt) $(p_jbase)
 #endif
+endif
 
 ifeq ($(with_separate_libgcj),yes)
   ifeq ($(PKGSOURCE),gcj-$(BASE_VERSION))
@@ -510,16 +547,18 @@ ifeq ($(with_separate_libgcj),yes)
     endif
   endif
 endif
-       debian/dh_rmemptydirs -p$(p_jrehl)
        debian/dh_rmemptydirs -p$(p_jlib)
+ifeq ($(with_libgcjawt),yes)
+       debian/dh_rmemptydirs -p$(p_jrehl)
        debian/dh_rmemptydirs -p$(p_jlibx)
-
        mkdir -p $(d_jrehl)/var/lib/gcj$(pkg_ver)
+endif
 
        dh_makeshlibs $(ldconfig_arg) -p$(p_jlib) -V '$(p_jlib) (>= 
$(DEB_GCJ_SOVERSION))'
        echo "libgcj_bc 1 libgcj-bc (>= 4.2.2-1)" >> 
debian/$(p_jlib)/DEBIAN/shlibs
        cat debian/$(p_jlib)/DEBIAN/shlibs >> debian/shlibs.local
 
+ifeq ($(with_libgcjawt),yes)
        dh_makeshlibs $(ldconfig_arg) -p$(p_jlibx) -V '$(p_jlibx) (>= 
$(DEB_GCJ_SOVERSION))'
 
 #ifneq (,$(findstring gtk, $(java_awt_peers)))
@@ -528,36 +567,66 @@ endif
 #ifneq (,$(findstring qt, $(java_awt_peers)))
 #      dh_makeshlibs $(ldconfig_arg) -p$(p_jqt) -V '$(p_jqt) (>= 
$(DEB_GCJ_SOVERSION))'
 #endif
-
+endif
+ifeq ($(with_libgcjawt),yes)
+       dh_strip -X/bin/ --dbg-package=$(p_jdbg) \
+               -p$(p_jrehl) -p$(p_jlib) \
+               -p$(p_jlibx) $(peer_pkgs)
+else
        dh_strip -X/bin/ --dbg-package=$(p_jdbg) \
-               -p$(p_jrehl) -p$(p_jlib) -p$(p_jlibx) $(peer_pkgs)
+               -p$(p_jlib)
+endif
+
        rm -f $(d_jdbg)/$(gcc_lib_dir)/libgcj_bc.so
 
+ifneq ($(DEB_CROSS),yes)
        mkdir -p $(d_jlib)/usr/share/lintian/overrides
        cp -p debian/$(p_jlib).overrides \
                $(d_jlib)/usr/share/lintian/overrides/$(p_jlib)
+  ifeq ($(with_libgcjawt),yes)
        mkdir -p $(d_jlibx)/usr/share/lintian/overrides
        cp -p debian/$(p_jlibx).overrides \
                $(d_jlibx)/usr/share/lintian/overrides/$(p_jlibx)
        mkdir -p $(d_jrehl)/usr/share/lintian/overrides
        cp -p debian/$(p_jrehl).overrides \
                $(d_jrehl)/usr/share/lintian/overrides/$(p_jrehl)
+  endif
+endif
 
 # the libstdc++ binary packages aren't built yet ...
        echo 'libstdc++ $(CXX_SONAME) libstdc++$(CXX_SONAME) (>= 
$(DEB_STDCXX_SOVERSION))' \
            >> debian/shlibs.local
        -[ -d $(d_l64gcc) ] && mv $(d_l64gcc) $(d_l64gcc).saved
 ifeq ($(with_separate_libgcj)-$(with_standalone_gcj),yes-no)
-       dh_shlibdeps \
+  ifeq ($(with_libgcjawt),yes)
+       $(cross_shlibdeps) dh_shlibdeps \
+               -L$(p_jlib) \
+               $(call shlibdirs_to_search,$(subst 
stdc++$(CXX_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2)):$(d_lib)/$(usr_lib):$(d_jlib)/$(usr_lib)
 \
+               -p$(p_jrehl) -p$(p_jlib) \
+               -p$(p_jlibx) $(peer_pkgs)
+  else
+       $(cross_shlibdeps) dh_shlibdeps \
                -L$(p_jlib) \
-               -l$(d_lib)/$(PF)/$(libdir):$(d_jlib)/$(PF)/$(libdir) \
-               -p$(p_jrehl) -p$(p_jlib) -p$(p_jlibx) $(peer_pkgs)
+               $(call shlibdirs_to_search,$(subst 
stdc++$(CXX_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2)):$(d_lib)/$(usr_lib):$(d_jlib)/$(usr_lib)
 \
+               -p$(p_jlib)
+  endif
+
 else
-       dh_shlibdeps \
+  ifeq ($(with_libgcjawt),yes)
+       $(cross_shlibdeps) dh_shlibdeps \
                -L$(p_lgcc) \
                -L$(p_jlib) \
-               
-l:$(d)/$(PF)/$(libdir):$(d_lib)/$(PF)/$(libdir):$(d_jlib)/$(PF)/$(libdir):$(d_lgcc)/lib
 \
-               -p$(p_jrehl) -p$(p_jlib) -p$(p_jlibx) $(peer_pkgs)
+               $(call shlibdirs_to_search,$(subst 
stdc++$(CXX_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2)):$(d)/$(usr_lib):$(d_lib)/$(usr_lib):$(d_jlib)/$(usr_lib):$(d_lgcc)/lib
 \
+               -p$(p_jrehl) -p$(p_jlib) \
+               -p$(p_jlibx) $(peer_pkgs)
+  else
+       $(cross_shlibdeps) dh_shlibdeps \
+               -L$(p_lgcc) \
+               -L$(p_jlib) \
+               $(call shlibdirs_to_search,$(subst 
stdc++$(CXX_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2)):$(d)/$(usr_lib):$(d_lib)/$(usr_lib):$(d_jlib)/$(usr_lib):$(d_lgcc)/$(usr_lib)
 \
+               -p$(p_jlib)
+  endif
+
 endif
        -[ -d $(d_l64gcc).saved ] && mv $(d_l64gcc).saved $(d_l64gcc)
        sed -e 's/$(p_jlib)[^,]*//' -e 's/, *,/,/' debian/$(p_jlib).substvars \
@@ -565,8 +634,11 @@ endif
            && mv -f debian/$(p_jlib).substvars.tmp debian/$(p_jlib).substvars
        rm -f debian/shlibs.local
 
-       echo $(p_jrehl) $(p_jlib) $(p_jlibx) $(subst -p,,$(peer_pkgs)) >> 
debian/arch_binaries
-
+ifeq ($(with_libgcjawt),yes)
+       echo $(p_jrehl) >> debian/arch_binaries
+       echo $(p_jlibx) $(subst -p,,$(peer_pkgs)) >> debian/arch_binaries
+endif
+       echo $(p_jlib) >> debian/arch_binaries
        trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
 
 # ----------------------------------------------------------------------
@@ -578,34 +650,36 @@ $(binary_stamp)-gcjjdk: $(build_html_stamp) 
$(install_stamp)
        rm -rf $(d_jdk)
        dh_installdirs -p$(p_jdk)  $(dirs_jdk)
 
+#ifneq ($(DEB_CROSS),yes)
 #      mkdir -p $(d_jdk)/usr/share/lintian/overrides
 #      cp -p debian/$(p_jdk).overrides \
 #              $(d_jdk)/usr/share/lintian/overrides/$(p_jdk)
+#endif
        cp -p $(srcdir)/gcc/java/ChangeLog \
                $(d_jdk)/usr/share/doc/$(p_jbase)/changelog.gcj
        cp -p $(srcdir)/libjava/ChangeLog \
                $(d_jdk)/usr/share/doc/$(p_jbase)/changelog.libjava
 
 ifeq ($(with_standalone_gcj),yes)
-       rm -f $(d)/$(PF)/$(libdir)/libgcc_s.so
+       rm -f $(d)/$(usr_lib)/libgcc_s.so
        ln -sf /$(libdir)/libgcc_s.so.$(GCC_SONAME) 
$(d)/$(gcc_lib_dir)/libgcc_s.so
 endif
        $(dh_compat2) dh_movefiles -p$(p_jdk)  $(files_jdk)
 
        for i in libgij libgcj libgcj-tools; do \
          dh_link -p$(p_jdk) \
-           /$(PF)/$(libdir)/$$i.so.$(GCJ_SONAME) /$(gcc_lib_dir)/$$i.so \
-           /$(PF)/$(libdir)/$$i.so.$(GCJ_SONAME) /$(jvm_dir)/lib/$$i.so; \
-         rm -f $(d_jdk)/$(PF)/$(libdir)/$$i.{la,so}; \
+           /$(usr_lib)/$$i.so.$(GCJ_SONAME) /$(gcc_lib_dir)/$$i.so \
+           /$(usr_lib)/$$i.so.$(GCJ_SONAME) /$(jvm_dir)/lib/$$i.so; \
+         rm -f $(d_jdk)/$(usr_lib)/$$i.{la,so}; \
        done
 
        install -m755 debian/jdb.sh $(d_jdk)/$(jvm_dir)/bin/jdb
 
-       install -m 755 $(d)/$(PF)/$(libdir)/libgcj_bc.so.1 \
+       install -m 755 $(d)/$(usr_lib)/libgcj_bc.so.1 \
                $(d_jdk)/$(gcc_lib_dir)/libgcj_bc.so
        $(CC_FOR_TARGET) $(LDFLAGS_FOR_TARGET) -shared -fpic -xc /dev/null \
                -o build/libgcj.so -Wl,-soname,libgcj.so.$(GCJ_SONAME) -nostdlib
-       $(CC_FOR_TARGET) $(LDFLAGS_FOR_TARGET) -shared -fpic \
+       $(CC_FOR_TARGET) -B/$(usr_lib) -I/$(usr_lib)/../include 
$(LDFLAGS_FOR_TARGET) -shared -fpic \
                $(srcdir)/libjava/libgcj_bc.c \
                -o $(d_jdk)/$(gcc_lib_dir)/libgcj_bc.so \
                -Wl,-soname,libgcj_bc.so.1 $(builddir)/libgcj.so -shared-libgcc 
@@ -639,7 +713,9 @@ endif
        debian/dh_rmemptydirs -p$(p_jdk)
 
        dh_strip -p$(p_jdk)
-       dh_shlibdeps -p$(p_jdk) -l$(d_lib)/$(PF)/$(libdir):$(d_jlib)/$(PF)/lib 
-Xecj1
+       $(cross_shlibdeps) dh_shlibdeps \
+               $(call shlibdirs_to_search,$(subst 
stdc++$(CXX_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2)):$(d_lib)/$(usr_lib):$(d_jlib)/$(PFL)/lib
  \
+               -p$(p_jdk) -Xecj1
        echo $(p_jdk) >> debian/arch_binaries
 
        trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
@@ -656,32 +732,34 @@ $(binary_stamp)-libgcjdev: $(build_html_stamp) 
$(install_stamp) $(binary_stamp)-
 
 ifeq ($(with_static_java),yes)
        for i in libgij libgcj libgcj-tools; do \
-         mv $(d_jdev)/$(PF)/$(libdir)/$$i.a $(d_jdev)/$(gcc_lib_dir)/; \
+         mv $(d_jdev)/$(usr_lib)/$$i.a $(d_jdev)/$(gcc_lib_dir)/; \
        done
 endif
 
        ln -sf libgcj-$(BASE_VERSION).pc \
-               $(d_jdev)/$(PF)/$(libdir)/pkgconfig/libgcj$(PKG_GCJ_EXT).pc
+               $(d_jdev)/$(usr_lib)/pkgconfig/libgcj$(PKG_GCJ_EXT).pc
        sed -i -e 's,-[IL][^ ]* *,,' \
-               $(d_jdev)/$(PF)/$(libdir)/pkgconfig/libgcj-$(BASE_VERSION).pc
+               $(d_jdev)/$(usr_lib)/pkgconfig/libgcj-$(BASE_VERSION).pc
 
        debian/dh_doclink -p$(p_jdev) $(p_jbase)
 
        debian/dh_rmemptydirs -p$(p_jdev)
 
+#ifneq ($(DEB_CROSS),yes)
 #      mkdir -p $(d_jdev)/usr/share/lintian/overrides
 #      cp -p debian/libgcj$(PKG_GCJ_EXT)-dev.overrides \
 #              $(d_jdev)/usr/share/lintian/overrides/$(p_jdev)
+#endif
 
        DH_COMPAT=5 dh_strip -p$(p_jdev) --dbg-package=$(p_jdbg)
 ifeq ($(with_separate_libgcj)-$(with_standalone_gcj),yes-no)
-       dh_shlibdeps \
-               -l$(d_lib)/$(PF)/$(libdir):$(d_jlib)/$(PF)/$(libdir) \
+       $(cross_shlibdeps) dh_shlibdeps \
+               $(call shlibdirs_to_search,$(subst 
stdc++$(CXX_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2)):$(d_lib)/$(usr_lib):$(d_jlib)/$(usr_lib)
 \
                -p$(p_jdev)
 else
-       dh_shlibdeps \
+       $(cross_shlibdeps) dh_shlibdeps \
                -L$(p_lgcc) \
-               
-l:$(d)/$(PF)/$(libdir):$(d_lib)/$(PF)/$(libdir):$(d_jlib)/$(PF)/$(libdir):$(d_lgcc)/lib
 \
+               $(call shlibdirs_to_search,$(subst 
stdc++$(CXX_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2)):$(d)/$(usr_lib):$(d_lib)/$(usr_lib):$(d_jlib)/$(usr_lib):$(d_lgcc)/lib
 \
                -p$(p_jdev)
 endif
        echo $(p_jdev) >> debian/arch_binaries
diff --git a/debian/rules.defs b/debian/rules.defs
index dd5e368..087370f 100644
--- a/debian/rules.defs
+++ b/debian/rules.defs
@@ -796,6 +796,7 @@ ifeq ($(with_java)-$(with_separate_libgcj),yes-yes)
     with_java := built from separate source
     with_gcj := built from separate source
     with_libgcj := buit from separate source
+    with_libgcjawt := buit from separate source
   endif
 endif
 
@@ -815,6 +816,7 @@ ifeq ($(with_java),yes)
   java_priority = 10$(subst .,,$(BASE_VERSION))0
 
   with_libgcj := yes
+  with_libgcjawt := yes
   with_libgcjbc := no
 
   ifneq (,$(findstring gcj-4,$(PKGSOURCE)))
@@ -851,9 +853,10 @@ ifeq ($(with_java),yes)
     with_java_alsa := no
   endif
 
-  # Just build the cross compiler to be able to cross build a native build.
+  # Don't build awt when cross, as the need some packages like gtk
   ifeq ($(DEB_CROSS),yes)
-    with_libgcj :=
+    with_libgcjawt := no
+    with_java_alsa := no
   endif
 
   enabled_languages += java
diff --git a/debian/rules2 b/debian/rules2
index abe987b..e282502 100644
--- a/debian/rules2
+++ b/debian/rules2
@@ -96,7 +96,7 @@ ifneq (,$(filter $(build_type),cross-build-native 
cross-build-cross))
        GDC_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-gdc-$(BASE_VERSION)
 endif
 
-ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_TARGET_GNU_TYPE))
+ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
   CC_FOR_TARGET = $(builddir)/gcc/xgcc -B$(builddir)/gcc/
 else
   CC_FOR_TARGET = $(DEB_TARGET_GNU_TYPE)-gcc
@@ -358,13 +358,17 @@ ifeq ($(with_java),yes)
   ifeq ($(with_java_maintainer_mode),yes)
     CONFARGS += --enable-java-maintainer-mode
   endif
-  ifeq ($(with_java_biarch_awt),yes)
-    CONFARGS += --enable-java-awt=$(subst $(SPACE),$(COMMA),$(foreach 
p,$(java_awt_peers),$(p)-default))
-  else
-    CONFARGS += --enable-java-awt=$(subst $(SPACE),$(COMMA),$(foreach 
p,$(java_awt_peers),$(p)))
-  endif
-  ifneq (,$(findstring gtk,$(java_awt_peers)))
-    CONFARGS += --enable-gtk-cairo
+  ifeq ($(with_libgcj),yes)
+    ifeq ($(with_libgcjawt),yes)
+      ifeq ($(with_java_biarch_awt),yes)
+        CONFARGS += --enable-java-awt=$(subst $(SPACE),$(COMMA),$(foreach 
p,$(java_awt_peers),$(p)-default))
+      else
+        CONFARGS += --enable-java-awt=$(subst $(SPACE),$(COMMA),$(foreach 
p,$(java_awt_peers),$(p)))
+      endif
+      ifneq (,$(findstring gtk,$(java_awt_peers)))
+        CONFARGS += --enable-gtk-cairo
+      endif
+    endif
   endif
   jvm_ext = -$(DEB_TARGET_ARCH)$(if $(filter yes,$(DEB_CROSS)),-cross)
   jvm_dir = /usr/lib/jvm/$(jvm_name_short)$(jvm_ext)
@@ -378,9 +382,6 @@ ifeq ($(with_java),yes)
   else
     CONFARGS += --with-ecj-jar=$(ecj_jar)
   endif
-  ifneq ($(with_libgcj),yes)
-    CONFARGS += --disable-libgcj
-  endif
 endif
 
 ifeq ($(with_gcj),yes)

Reply via email to