Bug#827787: gcc-6: improve gcj cross build
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 to: