Control: reassign -1 src:gcc-10 Hi Matthias,
On Sun, Sep 30, 2018 at 02:46:04PM +0200, Helmut Grohne wrote: > > - please complete the patch to cover all frontends. while these > > might not be necessary for your bootstrap effort, I'd like to > > have all frontends be covered in an uniform way. > > I've worked on this. It now covers cpp, cxx, d, fortran, gcc, go and > objc. Notably, it does not cover ada, brig or objc++. ada looks > complex. brig depends on hsail-tools, which is not Multi-Arch: foreign. > So we cannot do brig at this time. objc++ looks manageable. I've completed objc++, which was indeed easy. The new gm2 frontend is also missing. I've also split up the big patch into individual patches to make them easier to use/review/select. The updated patch stack for gcc-10 is applied. Beware that the patch stack introduces Breaks and Replaces. The versions in these Breaks and Replaces is always "0TODO" or "999:0TODO" and needs to be replaced with the version used for applying. > > - for testing: I've performed a regular build and inspected the resulting lintian warnings and package contents. I've also attempted building cross compilers using the patch stack by adding the stack to a fork of rebootstrap. I've not attempted cross building gcc with the patch stack, because cross builds are known broken: * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92336 * https://gcc.gnu.org/legacy-ml/gcc-help/2015-01/msg00111.html Both of these issues are reproducible on gcc-9 and gcc-10 in unstable. Moving forward: There is more urgency for this feature now, because we need to run 64bit executables for building larger packages on 32bit architectures. There are two routes: * Moving this stack forward and going Multi-Arch. * Introducing yet another pile of compiler executables for this purpose (YunQiang Su's appraoch). I believe that the utility for any of these -for-host variants is very limited except for c, cxx and fortran. I recommend not applying the other patches (d, go, objc, objcxx), but I have attached them for reference. How to apply the patch stack: 0001: Only makes sense if you apply one of 0002, 0003, 0004, 0005, 0006, 0007, 0009, 0010 or 0011. 0002: cpp-$v-$triplet. Requires 0001. Update Breaks+Replaces. 0003: gcc-$v-$triplet. Requires 0001 and 0002. Updates Breaks+Replaces. 0004: g++-$v-$triplet. Requires 0001, 0002, and 0003. Update Breaks+Replaces. 0005: gfortran-$v-$triplet. Requires 0001. Update Breaks+Replaces. 0006: gdc-$v-$triplet. Requires 0001. Update Breaks+Replaces. 0007: gccgo-$v-$triplet: Requires 0001. Update Breaks+Replaces. 0008: Cleanup. Consider applying right away. 0009: Cleanup. Consider applying right away. 0010: gobjc-$v-$triplet: Requires 0001 and 0009. Update Breaks+Replaces. 0011: gobjc++-$v-$triplet. Requires 0001, 0010 and 0011. Update Breaks+Replaces. I hope that this allows us to move forward. I've also Cced debian-cross@l.d.o to elicit more review and testing. Helmut
>From 069536e9afe1082c29a3b2da9e6f6b156f44e9fc Mon Sep 17 00:00:00 2001 From: Helmut Grohne <hel...@subdivi.de> Date: Fri, 27 Mar 2020 06:32:46 +0100 Subject: [PATCH 01/11] add support code for gcc-for-host control.m4 macro for_each_arch iterates over all known architectures and substitutes arch_deb (the Debian architecture name), arch_gnu (the GNU triplet) and arch_gnusuffix (a package name suffix encoding the architecture) variables. The substitution variable target:suffix can be used to interpolate the current target architecture suffix for dependencies from the regular tool packages on architecture-qualified tool packages. --- debian/control.m4 | 7 +++++++ debian/rules.conf | 2 ++ 2 files changed, 9 insertions(+) diff --git a/debian/control.m4 b/debian/control.m4 index bbc71a2..94a9741 100644 --- a/debian/control.m4 +++ b/debian/control.m4 @@ -39,6 +39,13 @@ define(`BUILT_USING', ifelse(add_built_using,yes,`Built-Using: ${Built-Using} ')) define(`TARGET_PACKAGE',`X-DH-Build-For-Type: target ') +define(`_for_each',`ifelse(`$3',`',`',`pushdef(`$1',`$3')$2`'popdef(`$1')`'$0(`$1',`$2',shift(shift(shift($@))))')') +define(`for_each_arch',`_for_each(`_arch',`dnl +pushdef(`arch_deb',`patsubst(_arch,`=.*',`')')dnl +pushdef(`arch_gnu',`patsubst(_arch,`.*=',`')')dnl +pushdef(`arch_gnusuffix',`-patsubst(arch_gnu,`_',`-')')dnl +$1`'popdef(`arch_gnusuffix')popdef(`arch_gnu')popdef(`arch_deb')',dnl +patsubst(ARCH_GNUTYPE_MAP,`\s+',`,'))') divert`'dnl dnl -------------------------------------------------------------------------- diff --git a/debian/rules.conf b/debian/rules.conf index 441c0e8..6149073 100644 --- a/debian/rules.conf +++ b/debian/rules.conf @@ -686,6 +686,7 @@ ctrl_flags += \ -DPHOBOS_BUILD_DEP="$(PHOBOS_BUILD_DEP)" \ -DGM2_BUILD_DEP="$(GM2_BUILD_DEP)" \ -DOFFLOAD_BUILD_DEP="$(OFFLOAD_BUILD_DEP)" \ + -DARCH_GNUTYPE_MAP="$(arch_gnutype_map)" \ -DMULTILIB_ARCHS="$(multilib_archs)" \ -DNEON_ARCHS="$(neon_archs)" \ -DTP=$(TP) \ @@ -1095,6 +1096,7 @@ substvars-file: control-file echo 'dep:libgnat=$(LIBGNAT_DEP)'; \ echo 'base:Breaks=$(BASE_BREAKS)'; \ echo 'libgcc:Breaks=$(LIBGCC_BREAKS)'; \ + echo 'target:suffix=-$(subst _,-,$(TARGET_ALIAS))'; \ ) > debian/substvars.local.tmp ifneq (,$(filter $(DEB_TARGET_ARCH), $(multilib_archs))) ( \ -- 2.25.1
>From 0b3bfbb124921a65e1c9d83639f400e8b5af8b57 Mon Sep 17 00:00:00 2001 From: Helmut Grohne <hel...@subdivi.de> Date: Fri, 27 Mar 2020 06:37:47 +0100 Subject: [PATCH 02/11] introduce cpp-$v-$triplet --- debian/control.m4 | 33 ++++++++++++----- debian/rules.d/binary-cpp.mk | 69 ++++++++++++++++++++++++------------ debian/rules2 | 3 ++ 3 files changed, 74 insertions(+), 31 deletions(-) diff --git a/debian/control.m4 b/debian/control.m4 index 94a9741..e870706 100644 --- a/debian/control.m4 +++ b/debian/control.m4 @@ -1119,16 +1119,34 @@ Description: GNU C compiler (cross compiler for hppa64) This is the GNU C compiler, a fairly portable optimizing compiler for C. ')`'dnl cdev -ifenabled(`cdev',` -Package: cpp`'PV`'TS -Architecture: any -ifdef(`TARGET',`Multi-Arch: foreign -')dnl +ifenabled(`cdev',`dnl +for_each_arch(` +Package: cpp`'PV`'arch_gnusuffix +Architecture: ifdef(`TARGET',`any',arch_deb) +Multi-Arch: foreign Section: ifdef(`TARGET',`devel',`interpreters') Priority: optional Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends} Suggests: gcc`'PV-locales (>= ${gcc:SoftVersion}) -Breaks: libmagics++-dev (<< 2.28.0-4)ifdef(`TARGET',`',`, hardening-wrapper (<< 2.8+nmu3)') +Replaces: cpp`'PV (<< 999:0TODO) +Breaks: libmagics++-dev (<< 2.28.0-4), hardening-wrapper (<< 2.8+nmu3), cpp`'PV (<< 0TODO) +BUILT_USING`'dnl +Description: GNU C preprocessor for arch_gnu + A macro processor that is used automatically by the GNU C compiler + to transform programs before actual compilation. + . + This package has been separated from gcc for the benefit of those who + require the preprocessor configured for arch_gnu architecture but not + the compiler. +')`'dnl for_each_arch +ifdef(`TARGET',`',` +Package: cpp`'PV +Architecture: any +Section: interpreters +Priority: optional +Depends: BASEDEP, cpp`'PV`'${target:suffix} (= ${gcc:Version}), ${misc:Depends} +Suggests: gcc`'PV-locales (>= ${gcc:SoftVersion}) +Breaks: libmagics++-dev (<< 2.28.0-4), hardening-wrapper (<< 2.8+nmu3) BUILT_USING`'dnl Description: GNU C preprocessor A macro processor that is used automatically by the GNU C compiler @@ -1136,9 +1154,6 @@ Description: GNU C preprocessor . This package has been separated from gcc for the benefit of those who require the preprocessor but not the compiler. -ifdef(`TARGET', `dnl - . - This package contains preprocessor configured for TARGET architecture. ')`'dnl ifdef(`TARGET', `', ` diff --git a/debian/rules.d/binary-cpp.mk b/debian/rules.d/binary-cpp.mk index cbeeb26..c65f999 100644 --- a/debian/rules.d/binary-cpp.mk +++ b/debian/rules.d/binary-cpp.mk @@ -1,5 +1,8 @@ ifneq ($(DEB_STAGE),rtlibs) - arch_binaries := $(arch_binaries) cpp + arch_binaries := $(arch_binaries) cpp-nat + ifeq ($(unprefixed_names),yes) + arch_binaries := $(arch_binaries) cpp + endif ifneq ($(DEB_CROSS),yes) ifneq ($(GFDL_INVARIANT_FREE),yes) indep_binaries := $(indep_binaries) cpp-doc @@ -7,22 +10,59 @@ ifneq ($(DEB_STAGE),rtlibs) endif endif -dirs_cpp = \ +dirs_cppn = \ $(docdir) \ $(PF)/share/man/man1 \ $(PF)/bin \ - $(gcc_lexec_dir) + $(gcc_lexec_dir) \ + usr/share/lintian/overrides + +dirs_cpp = \ + $(docdir) \ + $(PF)/bin \ + $(PF)/share/man/man1 \ + usr/share/lintian/overrides -files_cpp = \ +files_cppn = \ $(PF)/bin/$(cmd_prefix)cpp$(pkg_ver) \ $(gcc_lexec_dir)/cc1 ifneq ($(GFDL_INVARIANT_FREE),yes) - files_cpp += \ + files_cppn += \ $(PF)/share/man/man1/$(cmd_prefix)cpp$(pkg_ver).1 endif # ---------------------------------------------------------------------- +$(binary_stamp)-cpp-nat: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_cppn) + dh_installdirs -p$(p_cppn) $(dirs_cppn) + $(dh_compat2) dh_movefiles -p$(p_cppn) $(files_cppn) + + echo '$(p_cppn) binary: hardening-no-pie' \ + > $(d_cppn)/usr/share/lintian/overrides/$(p_cppn) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_cppn) binary: binary-without-manpage' \ + >> $(d_cppn)/usr/share/lintian/overrides/$(p_cppn) +endif + + debian/dh_doclink -p$(p_cppn) $(p_xbase) + debian/dh_rmemptydirs -p$(p_cppn) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) $(d_cppn)/$(gcc_lexec_dir)/cc1 +endif + dh_strip -p$(p_cppn) \ + $(if $(unstripped_exe),-X/cc1) + dh_shlibdeps -p$(p_cppn) + + echo $(p_cppn) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + $(binary_stamp)-cpp: $(install_stamp) dh_testdir dh_testroot @@ -30,21 +70,13 @@ $(binary_stamp)-cpp: $(install_stamp) rm -rf $(d_cpp) dh_installdirs -p$(p_cpp) $(dirs_cpp) - $(dh_compat2) dh_movefiles -p$(p_cpp) $(files_cpp) -ifeq ($(unprefixed_names),yes) ln -sf $(cmd_prefix)cpp$(pkg_ver) \ $(d_cpp)/$(PF)/bin/cpp$(pkg_ver) - ifneq ($(GFDL_INVARIANT_FREE),yes) +ifneq ($(GFDL_INVARIANT_FREE),yes) ln -sf $(cmd_prefix)cpp$(pkg_ver).1 \ $(d_cpp)/$(PF)/share/man/man1/cpp$(pkg_ver).1 - endif -endif - - mkdir -p $(d_cpp)/usr/share/lintian/overrides - echo '$(p_cpp) binary: hardening-no-pie' \ - > $(d_cpp)/usr/share/lintian/overrides/$(p_cpp) -ifeq ($(GFDL_INVARIANT_FREE),yes) +else echo '$(p_cpp) binary: binary-without-manpage' \ >> $(d_cpp)/usr/share/lintian/overrides/$(p_cpp) endif @@ -52,13 +84,6 @@ endif debian/dh_doclink -p$(p_cpp) $(p_xbase) debian/dh_rmemptydirs -p$(p_cpp) -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) - $(DWZ) $(d_cpp)/$(gcc_lexec_dir)/cc1 -endif - dh_strip -p$(p_cpp) \ - $(if $(unstripped_exe),-X/cc1) - dh_shlibdeps -p$(p_cpp) - echo $(p_cpp) >> debian/arch_binaries trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) diff --git a/debian/rules2 b/debian/rules2 index 98947cd..ec85477 100644 --- a/debian/rules2 +++ b/debian/rules2 @@ -1980,6 +1980,8 @@ ifeq ($(versioned_packages),yes) pkg_ver := -$(BASE_VERSION) endif +p_cppn = cpp$(pkg_ver)-$(subst _,-,$(TARGET_ALIAS)) + # if native or rtlibs build ifeq ($(if $(filter yes,$(DEB_CROSS)),$(if $(filter rtlibs,$(DEB_STAGE)),native,cross),native),native) p_base = gcc$(pkg_ver)-base @@ -2014,6 +2016,7 @@ d_base = debian/$(p_base) d_xbase = debian/$(p_xbase) d_gcc = debian/$(p_gcc) d_cpp = debian/$(p_cpp) +d_cppn = debian/$(p_cppn) d_cppd = debian/$(p_cppd) d_cxx = debian/$(p_cxx) d_doc = debian/$(p_doc) -- 2.25.1
>From a3f1ea23b2d993e43e650c50f60cffdaa652cc05 Mon Sep 17 00:00:00 2001 From: Helmut Grohne <hel...@subdivi.de> Date: Fri, 27 Mar 2020 06:42:26 +0100 Subject: [PATCH 03/11] introduce gcc-$v-$triplet --- debian/control.m4 | 57 +++++++++++++----- debian/rules.d/binary-gcc.mk | 108 +++++++++++++++++++++++------------ debian/rules2 | 2 + 3 files changed, 115 insertions(+), 52 deletions(-) diff --git a/debian/control.m4 b/debian/control.m4 index e870706..e16e4b8 100644 --- a/debian/control.m4 +++ b/debian/control.m4 @@ -1020,21 +1020,22 @@ Description: GCC support library (x32 development files) ')`'dnl x32dev ')`'dnl cdev -ifenabled(`cdev',` -Package: gcc`'PV`'TS -Architecture: any -ifdef(`TARGET',`Multi-Arch: foreign -')dnl +ifenabled(`cdev',`dnl +for_each_arch(` +Package: gcc`'PV`'arch_gnusuffix +Architecture: ifdef(`TARGET',`any',arch_deb) +Multi-Arch: foreign Section: devel Priority: optional -Depends: cpp`'PV`'TS (= ${gcc:Version}),ifenabled(`gccbase',` BASEDEP,') +Depends: cpp`'PV`'arch_gnusuffix (= ${gcc:Version}),ifenabled(`gccbase',` BASEDEP,') ifenabled(`gccxbase',` BASEDEP,') ${dep:libcc1}, - binutils`'TS (>= ${binutils:Version}), + binutils`'arch_gnusuffix (>= ${binutils:Version}), ${dep:libgccdev}, ${shlibs:Depends}, ${misc:Depends} Recommends: ${dep:libcdev} -Replaces: cpp`'PV`'TS (<< 7.1.1-8) -Suggests: ${gcc:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}), +Replaces: cpp`'PV`'arch_gnusuffix (<< 7.1.1-8), gcc`'PV (<< 999:0TODO) +Breaks: gcc`'PV (<< 0TODO) +Suggests: gcc`'PV-doc (>= ${gcc:SoftVersion}), gcc`'PV-locales (>= ${gcc:SoftVersion}), libdbgdep(gcc-s`'GCC_SO-dbg,,>=,${libgcc:Version}), libdbgdep(gomp`'GOMP_SO-dbg,), @@ -1048,15 +1049,43 @@ ifenabled(`libvtv',`',` libdbgdep(vtv`'VTV_SO-dbg,), ')`'dnl libdbgdep(quadmath`'QMATH_SO-dbg,), -Provides: c-compiler`'TS +Provides: c-compiler`'arch_gnusuffix ifdef(`TARGET',`Conflicts: gcc-multilib ')`'dnl BUILT_USING`'dnl -Description: GNU C compiler`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') +Description: GNU C compiler for the arch_gnu architecture + This is the GNU C compiler for the arch_gnu architecture, + a fairly portable optimizing compiler for C. +')`'dnl for_each_arch +ifdef(`TARGET',`',` +Package: gcc`'PV +Architecture: any +Section: devel +Priority: optional +Depends: gcc`'PV`'${target:suffix} (= ${gcc:Version}),ifenabled(`gccbase',` BASEDEP,') + ifenabled(`gccxbase',` BASEDEP,') + binutils (>= ${binutils:Version}), + ${misc:Depends} +Recommends: ${dep:libcdev} +Replaces: cpp`'PV (<< 7.1.1-8) +Suggests: ${gcc:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}), + gcc`'PV-locales (>= ${gcc:SoftVersion}), + libdbgdep(gcc`'GCC_SO-dbg,,>=,${libgcc:Version}), + libdbgdep(gomp`'GOMP_SO-dbg,), + libdbgdep(itm`'ITM_SO-dbg,), + libdbgdep(atomic`'ATOMIC_SO-dbg,), + libdbgdep(asan`'ASAN_SO-dbg,), + libdbgdep(lsan`'LSAN_SO-dbg,), + libdbgdep(tsan`'TSAN_SO-dbg,), + libdbgdep(ubsan`'UBSAN_SO-dbg,), +ifenabled(`libvtv',`',` + libdbgdep(vtv`'VTV_SO-dbg,), +')`'dnl + libdbgdep(quadmath`'QMATH_SO-dbg), +Provides: c-compiler +BUILT_USING`'dnl +Description: GNU C compiler This is the GNU C compiler, a fairly portable optimizing compiler for C. -ifdef(`TARGET', `dnl - . - This package contains C cross-compiler for TARGET architecture. ')`'dnl ifenabled(`multilib',` diff --git a/debian/rules.d/binary-gcc.mk b/debian/rules.d/binary-gcc.mk index 11bf871..bcd5461 100644 --- a/debian/rules.d/binary-gcc.mk +++ b/debian/rules.d/binary-gcc.mk @@ -6,7 +6,10 @@ ifneq ($(DEB_STAGE),rtlibs) arch_binaries := $(arch_binaries) gcc-plugindev endif - arch_binaries := $(arch_binaries) gcc + arch_binaries := $(arch_binaries) gcc-nat + ifeq ($(unprefixed_names),yes) + arch_binaries := $(arch_binaries) gcc + endif ifneq ($(DEB_CROSS),yes) ifneq ($(GFDL_INVARIANT_FREE),yes) @@ -26,15 +29,21 @@ endif # not all files $(PF)/include/*.h are part of gcc, # but it becomes difficult to name all these files ... -dirs_gcc = \ - $(docdir)/$(p_xbase)/{gcc,libssp,gomp,itm,quadmath,sanitizer} \ +dirs_gccn = \ $(PF)/bin \ $(gcc_lexec_dir) \ $(gcc_lib_dir)/include \ - $(PF)/share/man/man1 $(libgcc_dir) + $(PF)/share/man/man1 $(libgcc_dir) \ + usr/share/lintian/overrides + +dirs_gcc = \ + $(docdir)/$(p_xbase)/{gcc,libssp,gomp,itm,quadmath,sanitizer} \ + $(PF)/bin \ + $(PF)/share/man/man1 \ + usr/share/lintian/overrides # XXX: what about triarch mapping? -files_gcc = \ +files_gccn = \ $(PF)/bin/$(cmd_prefix){gcc,gcov,gcov-tool,gcov-dump,lto-dump}$(pkg_ver) \ $(PF)/bin/$(cmd_prefix)gcc-{ar,ranlib,nm}$(pkg_ver) \ $(PF)/share/man/man1/$(cmd_prefix)gcc-{ar,nm,ranlib}$(pkg_ver).1 \ @@ -43,20 +52,20 @@ files_gcc = \ && echo $(gcc_lib_dir)/SYSCALLS.c.X) ifeq ($(with_libcc1_plugin),yes) - files_gcc += \ + files_gccn += \ $(gcc_lib_dir)/plugin/libc[cp]1plugin.so{,.0,.0.0.0} endif -files_gcc += \ +files_gccn += \ $(gcc_lexec_dir)/liblto_plugin.so{,.0,.0.0.0} ifeq ($(DEB_STAGE),stage1) - files_gcc += \ + files_gccn += \ $(gcc_lib_dir)/include endif ifneq ($(GFDL_INVARIANT_FREE),yes) - files_gcc += \ + files_gccn += \ $(PF)/share/man/man1/$(cmd_prefix){gcc,gcov}$(pkg_ver).1 \ $(PF)/share/man/man1/$(cmd_prefix)gcov-{dump,tool}$(pkg_ver).1 \ $(PF)/share/man/man1/$(cmd_prefix)lto-dump$(pkg_ver).1 @@ -78,6 +87,56 @@ p_tst = gcc$(pkg_ver)-test-results d_tst = debian/$(p_tst) # ---------------------------------------------------------------------- +$(binary_stamp)-gcc-nat: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gccn) + dh_installdirs -p$(p_gccn) $(dirs_gccn) + +ifeq ($(with_gomp),yes) + mv $(d)/$(usr_lib)/libgomp*.spec $(d_gccn)/$(gcc_lib_dir)/ +endif +ifeq ($(with_itm),yes) + mv $(d)/$(usr_lib)/libitm*.spec $(d_gccn)/$(gcc_lib_dir)/ +endif +ifeq ($(with_asan),yes) + mv $(d)/$(usr_lib)/libsanitizer*.spec $(d_gccn)/$(gcc_lib_dir)/ +endif +ifeq ($(with_cc1),yes) + rm -f $(d)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libcc1.so + dh_link -p$(p_gccn) \ + /$(PF)/lib/$(DEB_HOST_MULTIARCH)/libcc1.so.$(CC1_SONAME) \ + /$(gcc_lib_dir)/libcc1.so +endif + + $(dh_compat2) dh_movefiles -p$(p_gccn) $(files_gccn) + +# dh_installdebconf + debian/dh_doclink -p$(p_gccn) $(p_xbase) + + echo '$(p_gccn) binary: hardening-no-pie' \ + > $(d_gccn)/usr/share/lintian/overrides/$(p_gccn) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_gccn) binary: binary-without-manpage' \ + >> $(d_gccn)/usr/share/lintian/overrides/$(p_gccn) +endif + + debian/dh_rmemptydirs -p$(p_gccn) +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_gccn)/$(gcc_lexec_dir)/lto1 \ + $(d_gccn)/$(gcc_lexec_dir)/lto-wrapper \ + $(d_gccn)/$(gcc_lexec_dir)/collect2 +endif + dh_strip -p$(p_gccn) \ + $(if $(unstripped_exe),-X/lto1) + dh_shlibdeps -p$(p_gccn) + echo $(p_gccn) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + $(binary_stamp)-gcc: $(install_dependencies) dh_testdir dh_testroot @@ -97,12 +156,10 @@ ifeq ($(with_libssp),yes) $(d_gcc)/$(docdir)/$(p_xbase)/libssp/changelog endif ifeq ($(with_gomp),yes) - mv $(d)/$(usr_lib)/libgomp*.spec $(d_gcc)/$(gcc_lib_dir)/ cp -p $(srcdir)/libgomp/ChangeLog \ $(d_gcc)/$(docdir)/$(p_xbase)/gomp/changelog endif ifeq ($(with_itm),yes) - mv $(d)/$(usr_lib)/libitm*.spec $(d_gcc)/$(gcc_lib_dir)/ cp -p $(srcdir)/libitm/ChangeLog \ $(d_gcc)/$(docdir)/$(p_xbase)/itm/changelog endif @@ -111,35 +168,24 @@ ifeq ($(with_qmath),yes) $(d_gcc)/$(docdir)/$(p_xbase)/quadmath/changelog endif ifeq ($(with_asan),yes) - mv $(d)/$(usr_lib)/libsanitizer*.spec $(d_gcc)/$(gcc_lib_dir)/ cp -p $(srcdir)/libsanitizer/ChangeLog \ $(d_gcc)/$(docdir)/$(p_xbase)/sanitizer/changelog endif -ifeq ($(with_cc1),yes) - rm -f $(d)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libcc1.so - dh_link -p$(p_gcc) \ - /$(PF)/lib/$(DEB_HOST_MULTIARCH)/libcc1.so.$(CC1_SONAME) \ - /$(gcc_lib_dir)/libcc1.so -endif - $(dh_compat2) dh_movefiles -p$(p_gcc) $(files_gcc) - -ifeq ($(unprefixed_names),yes) for i in gcc gcov gcov-dump gcov-tool gcc-ar gcc-nm gcc-ranlib lto-dump; do \ ln -sf $(cmd_prefix)$$i$(pkg_ver) \ $(d_gcc)/$(PF)/bin/$$i$(pkg_ver); \ done - ifneq ($(GFDL_INVARIANT_FREE),yes) +ifneq ($(GFDL_INVARIANT_FREE),yes) for i in gcc gcov gcov-dump gcov-tool lto-dump; do \ ln -sf $(cmd_prefix)$$i$(pkg_ver).1.gz \ $(d_gcc)/$(PF)/share/man/man1/$$i$(pkg_ver).1.gz; \ done - endif +endif for i in gcc-ar gcc-nm gcc-ranlib; do \ ln -sf $(cmd_prefix)$$i$(pkg_ver).1.gz \ $(d_gcc)/$(PF)/share/man/man1/$$i$(pkg_ver).1.gz; \ done -endif # dh_installdebconf debian/dh_doclink -p$(p_gcc) $(p_xbase) @@ -159,28 +205,14 @@ endif echo ""; \ cat $(builddir)/gcc/.bad_compare; \ ) > $(d_gcc)/$(docdir)/$(p_xbase)/BOOTSTRAP_COMPARISION_FAILURE; \ - else \ - true; \ fi - mkdir -p $(d_gcc)/usr/share/lintian/overrides - echo '$(p_gcc) binary: hardening-no-pie' \ - > $(d_gcc)/usr/share/lintian/overrides/$(p_gcc) ifeq ($(GFDL_INVARIANT_FREE),yes) echo '$(p_gcc) binary: binary-without-manpage' \ >> $(d_gcc)/usr/share/lintian/overrides/$(p_gcc) endif debian/dh_rmemptydirs -p$(p_gcc) -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) - $(DWZ) \ - $(d_gcc)/$(gcc_lexec_dir)/lto1 \ - $(d_gcc)/$(gcc_lexec_dir)/lto-wrapper \ - $(d_gcc)/$(gcc_lexec_dir)/collect2 -endif - dh_strip -p$(p_gcc) \ - $(if $(unstripped_exe),-X/lto1) - dh_shlibdeps -p$(p_gcc) echo $(p_gcc) >> debian/arch_binaries trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) diff --git a/debian/rules2 b/debian/rules2 index ec85477..ad5fee4 100644 --- a/debian/rules2 +++ b/debian/rules2 @@ -1980,6 +1980,7 @@ ifeq ($(versioned_packages),yes) pkg_ver := -$(BASE_VERSION) endif +p_gccn = gcc$(pkg_ver)-$(subst _,-,$(TARGET_ALIAS)) p_cppn = cpp$(pkg_ver)-$(subst _,-,$(TARGET_ALIAS)) # if native or rtlibs build @@ -2015,6 +2016,7 @@ d = debian/tmp d_base = debian/$(p_base) d_xbase = debian/$(p_xbase) d_gcc = debian/$(p_gcc) +d_gccn = debian/$(p_gccn) d_cpp = debian/$(p_cpp) d_cppn = debian/$(p_cppn) d_cppd = debian/$(p_cppd) -- 2.25.1
>From db1c1e31f70f846f361158e092890fe710915159 Mon Sep 17 00:00:00 2001 From: Helmut Grohne <hel...@subdivi.de> Date: Fri, 27 Mar 2020 06:43:03 +0100 Subject: [PATCH 04/11] introduce g++-$v-$triplet --- debian/control.m4 | 37 ++++++++++++++------- debian/rules.d/binary-cxx.mk | 63 +++++++++++++++++++++++++----------- debian/rules2 | 2 ++ 3 files changed, 72 insertions(+), 30 deletions(-) diff --git a/debian/control.m4 b/debian/control.m4 index e16e4b8..451e50f 100644 --- a/debian/control.m4 +++ b/debian/control.m4 @@ -1214,23 +1214,36 @@ Description: GCC, the GNU compiler collection (native language support files) ')`'dnl cdev ifenabled(`c++',` -ifenabled(`c++dev',` -Package: g++`'PV`'TS -Architecture: any -ifdef(`TARGET',`Multi-Arch: foreign -')dnl +ifenabled(`c++dev',`dnl +for_each_arch(` +Package: g++`'PV`'arch_gnusuffix +Architecture: ifdef(`TARGET',`any',arch_deb) +Multi-Arch: foreign Section: devel Priority: optional -Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), libidevdep(stdc++`'PV-dev,,=), ${shlibs:Depends}, ${misc:Depends} -Provides: c++-compiler`'TS`'ifdef(`TARGET',`',`, c++abi2-dev') -Suggests: ${gxx:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}), libdbgdep(stdc++CXX_SO`'PV-dbg), +Depends: BASEDEP, gcc`'PV`'arch_gnusuffix (= ${gcc:Version}), libidevdep(stdc++`'PV-dev,,=), ${shlibs:Depends}, ${misc:Depends} +Provides: c++-compiler`'arch_gnusuffix +Suggests: gcc`'PV-doc (>= ${gcc:SoftVersion}), libdbgdep(stdc++CXX_SO`'PV-dbg,) +Breaks: g++`'PV (<< 0TODO) +Replaces: g++`'PV (<< 999:0TODO) BUILT_USING`'dnl -Description: GNU C++ compiler`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') +Description: GNU C++ compiler for arch_gnu architecture This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. -ifdef(`TARGET', `dnl . - This package contains C++ cross-compiler for TARGET architecture. -')`'dnl + This package contains C++ cross-compiler for arch_gnu architecture. +')`'dnl for_each_arch +ifdef(`TARGET',`',` +Package: g++`'PV +Architecture: any +Section: devel +Priority: optional +Depends: g++`'PV`'${target:suffix} (= ${gcc:Version}), BASEDEP, gcc`'PV (= ${gcc:Version}), ${misc:Depends} +Provides: c++-compiler, c++abi2-dev +Suggests: ${gxx:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}) +BUILT_USING`'dnl +Description: GNU C++ compiler + This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. +')`'dnl TARGET ifenabled(`multilib',` Package: g++`'PV-multilib`'TS diff --git a/debian/rules.d/binary-cxx.mk b/debian/rules.d/binary-cxx.mk index aaa3235..18554de 100644 --- a/debian/rules.d/binary-cxx.mk +++ b/debian/rules.d/binary-cxx.mk @@ -2,21 +2,31 @@ ifneq ($(DEB_STAGE),rtlibs) ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32) $(biarchhf) $(biarchsf))) arch_binaries := $(arch_binaries) cxx-multi endif - arch_binaries := $(arch_binaries) cxx + arch_binaries := $(arch_binaries) cxx-nat + ifeq ($(unprefixed_names),yes) + arch_binaries := $(arch_binaries) cxx + endif endif +dirs_cxxn = \ + $(PF)/bin \ + $(gcc_lexec_dir) \ + $(PF)/share/man/man1 \ + usr/share/lintian/overrides + dirs_cxx = \ $(docdir)/$(p_xbase)/C++ \ $(PF)/bin \ $(PF)/share/info \ - $(gcc_lexec_dir) \ - $(PF)/share/man/man1 -files_cxx = \ + $(PF)/share/man/man1 \ + usr/share/lintian/overrides + +files_cxxn = \ $(PF)/bin/$(cmd_prefix)g++$(pkg_ver) \ $(gcc_lexec_dir)/cc1plus ifneq ($(GFDL_INVARIANT_FREE),yes) - files_cxx += \ + files_cxxn += \ $(PF)/share/man/man1/$(cmd_prefix)g++$(pkg_ver).1 endif @@ -24,6 +34,35 @@ p_cxx_m = g++$(pkg_ver)-multilib$(cross_bin_arch) d_cxx_m = debian/$(p_cxx_m) # ---------------------------------------------------------------------- +$(binary_stamp)-cxx-nat: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_cxxn) + dh_installdirs -p$(p_cxxn) $(dirs_cxxn) + $(dh_compat2) dh_movefiles -p$(p_cxxn) $(files_cxxn) + + echo '$(p_cxxn) binary: hardening-no-pie' \ + > $(d_cxxn)/usr/share/lintian/overrides/$(p_cxxn) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_cxxn) binary: binary-without-manpage' \ + >> $(d_cxxn)/usr/share/lintian/overrides/$(p_cxxn) +endif + + debian/dh_doclink -p$(p_cxxn) $(p_xbase) + debian/dh_rmemptydirs -p$(p_cxxn) + + dh_shlibdeps -p$(p_cxxn) +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_cxxn)/$(gcc_lexec_dir)/cc1plus +endif + dh_strip -p$(p_cxxn) $(if $(unstripped_exe),-X/cc1plus) + echo $(p_cxxn) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + $(binary_stamp)-cxx: $(install_stamp) dh_testdir dh_testroot @@ -31,20 +70,14 @@ $(binary_stamp)-cxx: $(install_stamp) rm -rf $(d_cxx) dh_installdirs -p$(p_cxx) $(dirs_cxx) - $(dh_compat2) dh_movefiles -p$(p_cxx) $(files_cxx) -ifeq ($(unprefixed_names),yes) ln -sf $(cmd_prefix)g++$(pkg_ver) \ $(d_cxx)/$(PF)/bin/g++$(pkg_ver) - ifneq ($(GFDL_INVARIANT_FREE),yes) +ifneq ($(GFDL_INVARIANT_FREE),yes) ln -sf $(cmd_prefix)g++$(pkg_ver).1.gz \ $(d_cxx)/$(PF)/share/man/man1/g++$(pkg_ver).1.gz - endif endif - mkdir -p $(d_cxx)/usr/share/lintian/overrides - echo '$(p_cxx) binary: hardening-no-pie' \ - > $(d_cxx)/usr/share/lintian/overrides/$(p_cxx) ifeq ($(GFDL_INVARIANT_FREE),yes) echo '$(p_cxx) binary: binary-without-manpage' \ >> $(d_cxx)/usr/share/lintian/overrides/$(p_cxx) @@ -56,12 +89,6 @@ endif $(d_cxx)/$(docdir)/$(p_xbase)/C++/changelog debian/dh_rmemptydirs -p$(p_cxx) - dh_shlibdeps -p$(p_cxx) -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) - $(DWZ) \ - $(d_cxx)/$(gcc_lexec_dir)/cc1plus -endif - dh_strip -p$(p_cxx) $(if $(unstripped_exe),-X/cc1plus) echo $(p_cxx) >> debian/arch_binaries trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) diff --git a/debian/rules2 b/debian/rules2 index ad5fee4..7b167de 100644 --- a/debian/rules2 +++ b/debian/rules2 @@ -1982,6 +1982,7 @@ endif p_gccn = gcc$(pkg_ver)-$(subst _,-,$(TARGET_ALIAS)) p_cppn = cpp$(pkg_ver)-$(subst _,-,$(TARGET_ALIAS)) +p_cxxn = g++$(pkg_ver)-$(subst _,-,$(TARGET_ALIAS)) # if native or rtlibs build ifeq ($(if $(filter yes,$(DEB_CROSS)),$(if $(filter rtlibs,$(DEB_STAGE)),native,cross),native),native) @@ -2021,6 +2022,7 @@ d_cpp = debian/$(p_cpp) d_cppn = debian/$(p_cppn) d_cppd = debian/$(p_cppd) d_cxx = debian/$(p_cxx) +d_cxxn = debian/$(p_cxxn) d_doc = debian/$(p_doc) d_lgcc = debian/$(p_lgcc) d_hppa64= debian/$(p_hppa64) -- 2.25.1
>From 79c4d01941ef0c07a575ebb1f6fee4f3e889060f Mon Sep 17 00:00:00 2001 From: Helmut Grohne <hel...@subdivi.de> Date: Fri, 27 Mar 2020 06:43:37 +0100 Subject: [PATCH 05/11] introduce gfortran-$v-$triplet --- debian/control.m4 | 29 ++++++++---- debian/rules.d/binary-fortran.mk | 79 ++++++++++++++++++++++---------- 2 files changed, 76 insertions(+), 32 deletions(-) diff --git a/debian/control.m4 b/debian/control.m4 index 451e50f..8f2c09a 100644 --- a/debian/control.m4 +++ b/debian/control.m4 @@ -3872,23 +3872,36 @@ Description: Runtime library for GNU Objective-C applications [NEON version] ')`'dnl objc ifenabled(`fortran',` -ifenabled(`fdev',` -Package: gfortran`'PV`'TS +ifenabled(`fdev',`dnl +for_each_arch(` +Package: gfortran`'PV`'arch_gnusuffix Architecture: any -ifdef(`TARGET',`Multi-Arch: foreign -')dnl +Multi-Arch: foreign Priority: optional -Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), libidevdep(gfortran`'PV-dev,,=), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} -ifdef(`TARGET',`',`Provides: fortran95-compiler, ${fortran:mod-version} -')dnl -Suggests: ${gfortran:multilib}, gfortran`'PV-doc, +Depends: BASEDEP, gcc`'PV`'arch_gnusuffix (= ${gcc:Version}), libidevdep(gfortran`'PV-dev,,=), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Breaks: gfortran`'PV (<< 0TODO) +Replaces: gfortran`'PV (<< 999:0TODO) +Suggests: gfortran`'PV-doc, libdbgdep(gfortran`'FORTRAN_SO-dbg), libcoarrays-dev BUILT_USING`'dnl +Description: GNU Fortran compiler for the arch_gnu architecture + This is the GNU Fortran compiler for the arch_gnu architecture, + which compiles Fortran on platforms supported by the gcc compiler. + It uses the gcc backend to generate optimized code. +')`'dnl for_each_arch +ifdef(`TARGET',`',` +Package: gfortran`'PV +Architecture: any +Priority: optional +Depends: gfortran`'PV`'${target:suffix} (= ${gcc:Version}), BASEDEP, gcc`'PV (= ${gcc:Version}), ${misc:Depends} +Provides: fortran95-compiler, ${fortran:mod-version} +Suggests: ${gfortran:multilib}, gfortran`'PV-doc Description: GNU Fortran compiler This is the GNU Fortran compiler, which compiles Fortran on platforms supported by the gcc compiler. It uses the gcc backend to generate optimized code. +')`'dnl TARGET ifenabled(`multilib',` Package: gfortran`'PV-multilib`'TS diff --git a/debian/rules.d/binary-fortran.mk b/debian/rules.d/binary-fortran.mk index 18c24b9..0adcbca 100644 --- a/debian/rules.d/binary-fortran.mk +++ b/debian/rules.d/binary-fortran.mk @@ -45,7 +45,10 @@ ifeq ($(with_fdev),yes) ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32) $(biarchhf) $(biarchsf))) arch_binaries := $(arch_binaries) fdev-multi endif - arch_binaries := $(arch_binaries) fdev + arch_binaries := $(arch_binaries) fdev-nat + ifeq ($(unprefixed_names),yes) + arch_binaries := $(arch_binaries) fdev + endif ifneq ($(DEB_CROSS),yes) ifneq ($(GFDL_INVARIANT_FREE),yes) indep_binaries := $(indep_binaries) fortran-doc @@ -53,29 +56,37 @@ ifeq ($(with_fdev),yes) endif endif -p_g95 = gfortran$(pkg_ver)$(cross_bin_arch) +p_g95n = gfortran$(pkg_ver)-$(subst _,-,$(TARGET_ALIAS)) +p_g95 = gfortran$(pkg_ver) p_g95_m = gfortran$(pkg_ver)-multilib$(cross_bin_arch) p_g95d = gfortran$(pkg_ver)-doc p_flib = libgfortran$(FORTRAN_SONAME)$(cross_lib_arch) +d_g95n = debian/$(p_g95n) d_g95 = debian/$(p_g95) d_g95_m = debian/$(p_g95_m) d_g95d = debian/$(p_g95d) -dirs_g95 = \ - $(docdir)/$(p_xbase)/fortran \ +dirs_g95n = \ $(PF)/bin \ $(gcc_lexec_dir) \ $(gcc_lib_dir) \ $(PF)/include \ + $(PF)/share/man/man1 \ + usr/share/lintian/overrides + +dirs_g95 = \ + $(docdir)/$(p_xbase)/fortran \ + $(PF)/bin \ $(PF)/share/man/man1 -files_g95 = \ + +files_g95n = \ $(PF)/bin/$(cmd_prefix)gfortran$(pkg_ver) \ $(gcc_lib_dir)/finclude \ $(gcc_lexec_dir)/f951 ifneq ($(GFDL_INVARIANT_FREE),yes) - files_g95 += \ + files_g95n += \ $(PF)/share/man/man1/$(cmd_prefix)gfortran$(pkg_ver).1 endif @@ -168,6 +179,41 @@ $(binary_stamp)-libsffortran: $(install_stamp) $(call do_fortran,sf) # ---------------------------------------------------------------------- +$(binary_stamp)-fdev-nat: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_g95n) + dh_installdirs -p$(p_g95n) $(dirs_g95n) + + $(dh_compat2) dh_movefiles -p$(p_g95n) $(files_g95n) + + mv $(d)/$(usr_lib)/libgfortran.spec $(d_g95n)/$(gcc_lib_dir)/ + + echo '$(p_g95n) binary: hardening-no-pie' \ + > $(d_g95n)/usr/share/lintian/overrides/$(p_g95n) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_g95n) binary: binary-without-manpage' \ + >> $(d_g95n)/usr/share/lintian/overrides/$(p_g95n) +endif + + debian/dh_doclink -p$(p_g95n) $(p_xbase) + + debian/dh_rmemptydirs -p$(p_g95n) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_g95n)/$(gcc_lexec_dir)/f951 +endif + dh_strip -p$(p_g95n) \ + $(if $(unstripped_exe),-X/f951) + dh_shlibdeps -p$(p_g95n) + + echo $(p_g95n) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + $(binary_stamp)-fdev: $(install_stamp) dh_testdir dh_testroot @@ -176,25 +222,17 @@ $(binary_stamp)-fdev: $(install_stamp) rm -rf $(d_g95) dh_installdirs -p$(p_g95) $(dirs_g95) - $(dh_compat2) dh_movefiles -p$(p_g95) $(files_g95) - - mv $(d)/$(usr_lib)/libgfortran.spec $(d_g95)/$(gcc_lib_dir)/ - -ifeq ($(unprefixed_names),yes) ln -sf $(cmd_prefix)gfortran$(pkg_ver) \ $(d_g95)/$(PF)/bin/gfortran$(pkg_ver) - ifneq ($(GFDL_INVARIANT_FREE),yes) +ifneq ($(GFDL_INVARIANT_FREE),yes) ln -sf $(cmd_prefix)gfortran$(pkg_ver).1 \ $(d_g95)/$(PF)/share/man/man1/gfortran$(pkg_ver).1 - endif endif - mkdir -p $(d_g95)/usr/share/lintian/overrides - echo '$(p_g95) binary: hardening-no-pie' \ - > $(d_g95)/usr/share/lintian/overrides/$(p_g95) ifeq ($(GFDL_INVARIANT_FREE),yes) + mkdir -p $(d_g95)/usr/share/lintian/overrides echo '$(p_g95) binary: binary-without-manpage' \ - >> $(d_g95)/usr/share/lintian/overrides/$(p_g95) + > $(d_g95)/usr/share/lintian/overrides/$(p_g95) endif debian/dh_doclink -p$(p_g95) $(p_xbase) @@ -203,13 +241,6 @@ endif $(d_g95)/$(docdir)/$(p_xbase)/fortran/changelog debian/dh_rmemptydirs -p$(p_g95) -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) - $(DWZ) \ - $(d_g95)/$(gcc_lexec_dir)/f951 -endif - dh_strip -p$(p_g95) \ - $(if $(unstripped_exe),-X/f951) - dh_shlibdeps -p$(p_g95) echo $(p_g95) >> debian/arch_binaries trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) -- 2.25.1
>From fbaddaff32c659c17a8fab6c2ef164b09adf8f52 Mon Sep 17 00:00:00 2001 From: Helmut Grohne <hel...@subdivi.de> Date: Fri, 27 Mar 2020 06:44:13 +0100 Subject: [PATCH 06/11] introduce gdc-$v-$triplet --- debian/control.m4 | 32 +++++++++---- debian/rules.d/binary-d.mk | 96 ++++++++++++++++++++++++-------------- 2 files changed, 83 insertions(+), 45 deletions(-) diff --git a/debian/control.m4 b/debian/control.m4 index 8f2c09a..4ecd84d 100644 --- a/debian/control.m4 +++ b/debian/control.m4 @@ -5324,22 +5324,36 @@ Description: GNU Ada compiler (documentation) ')`'dnl gfdldoc ')`'dnl ada -ifenabled(`d ',` -Package: gdc`'PV`'TS +ifenabled(`d ',`dnl +for_each_arch(` +Package: gdc`'PV`'arch_gnusuffix Architecture: any -ifdef(`TARGET',`Multi-Arch: foreign -')dnl +Multi-Arch: foreign Priority: optional -Depends: SOFTBASEDEP, g++`'PV`'TS (>= ${gcc:SoftVersion}), ${dep:gdccross}, ${dep:phobosdev}, ${shlibs:Depends}, ${misc:Depends} -ifdef(`TARGET',`',`Provides: gdc, d-compiler, d-v2-compiler -')dnl -Replaces: gdc (<< 4.4.6-5) +Depends: SOFTBASEDEP, g++`'PV`'arch_gnusuffix (>= ${gcc:SoftVersion}), ${dep:gdccross}, ${dep:phobosdev}, ${shlibs:Depends}, ${misc:Depends} +Breaks: gdc`'PV (<< 0TODO) +Replaces: gdc (<< 4.4.6-5), gdc`'PV (<< 999:0TODO) BUILT_USING`'dnl -Description: GNU D compiler (version 2)`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') +Description: GNU D compiler (version 2) for the arch_gnu architecture + This is the GNU D compiler for the arch_gnu architecture, + which compiles D on platforms supported by gcc. + It uses the gcc backend to generate optimised code. + . + This compiler supports D language version 2. +')`'dnl for_each_arch +ifdef(`TARGET',`',` +Package: gdc`'PV +Architecture: any +Priority: optional +Depends: gdc`'PV`'${target:suffix} (= ${gcc:SoftVersion}), SOFTBASEDEP, g++`'PV (>= ${gcc:SoftVersion}), ${dep:gdccross}, ${misc:Depends} +Provides: gdc, d-compiler, d-v2-compiler +Replaces: gdc (<< 4.4.6-5) +Description: GNU D compiler (version 2) This is the GNU D compiler, which compiles D on platforms supported by gcc. It uses the gcc backend to generate optimised code. . This compiler supports D language version 2. +')`'dnl TARGET ifenabled(`multilib',` Package: gdc`'PV-multilib`'TS diff --git a/debian/rules.d/binary-d.mk b/debian/rules.d/binary-d.mk index 7a4ba4c..3d08dc5 100644 --- a/debian/rules.d/binary-d.mk +++ b/debian/rules.d/binary-d.mk @@ -2,7 +2,10 @@ ifneq ($(DEB_STAGE),rtlibs) ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32) $(biarchsf))) arch_binaries := $(arch_binaries) gdc-multi endif - arch_binaries := $(arch_binaries) gdc + arch_binaries := $(arch_binaries) gdc-nat + ifeq ($(unprefixed_names),yes) + arch_binaries := $(arch_binaries) gdc + endif ifeq ($(with_libphobosdev),yes) $(lib_binaries) += libphobos-dev @@ -50,11 +53,13 @@ ifneq ($(DEB_STAGE),rtlibs) endif endif -p_gdc = gdc$(pkg_ver)$(cross_bin_arch) +p_gdc_n = gdc$(pkg_ver)-$(subst _,-,$(TARGET_ALIAS)) +p_gdc = gdc$(pkg_ver) p_gdc_m = gdc$(pkg_ver)-multilib$(cross_bin_arch) p_libphobos = libgphobos$(GPHOBOS_SONAME) p_libphobosdev = libgphobos$(pkg_ver)-dev +d_gdc_n = debian/$(p_gdc_n) d_gdc = debian/$(p_gdc) d_gdc_m = debian/$(p_gdc_m) d_libphobos = debian/$(p_libphobos) @@ -68,20 +73,26 @@ endif # FIXME: always here? gdc_include_dir := $(gcc_lib_dir)/include/d -dirs_gdc = \ +dirs_gdc_n = \ $(PF)/bin \ $(PF)/share/man/man1 \ - $(gcc_lexec_dir) + $(gcc_lexec_dir) \ + usr/share/lintian/overrides + +dirs_gdc = \ + $(PF)/bin \ + $(PF)/share/man/man1 + ifneq ($(DEB_CROSS),yes) - dirs_gdc += \ + dirs_gdc_n += \ $(gdc_include_dir) endif -files_gdc = \ +files_gdc_n = \ $(PF)/bin/$(cmd_prefix)gdc$(pkg_ver) \ $(gcc_lexec_dir)/d21 ifneq ($(GFDL_INVARIANT_FREE),yes-now-pure-gfdl) - files_gdc += \ + files_gdc_n += \ $(PF)/share/man/man1/$(cmd_prefix)gdc$(pkg_ver).1 endif @@ -90,58 +101,71 @@ dirs_libphobos = \ $(gdc_include_dir) \ $(gcc_lib_dir) -$(binary_stamp)-gdc: $(install_stamp) +$(binary_stamp)-gdc-nat: $(install_stamp) dh_testdir dh_testroot mv $(install_stamp) $(install_stamp)-tmp - rm -rf $(d_gdc) - dh_installdirs -p$(p_gdc) $(dirs_gdc) + rm -rf $(d_gdc_n) + dh_installdirs -p$(p_gdc_n) $(dirs_gdc_n) - dh_installdocs -p$(p_gdc) - dh_installchangelogs -p$(p_gdc) src/gcc/d/ChangeLog + debian/dh_doclink -p$(p_gdc_n) $(p_xbase) - $(dh_compat2) dh_movefiles -p$(p_gdc) -X/zlib/ $(files_gdc) + $(dh_compat2) dh_movefiles -p$(p_gdc_n) -X/zlib/ $(files_gdc_n) ifeq ($(with_phobos),yes) - mv $(d)/$(usr_lib)/libgphobos.spec $(d_gdc)/$(gcc_lib_dir)/ -endif - -ifeq ($(unprefixed_names),yes) - ln -sf $(cmd_prefix)gdc$(pkg_ver) \ - $(d_gdc)/$(PF)/bin/gdc$(pkg_ver) - ifneq ($(GFDL_INVARIANT_FREE),yes-now-pure-gfdl) - ln -sf $(cmd_prefix)gdc$(pkg_ver).1 \ - $(d_gdc)/$(PF)/share/man/man1/gdc$(pkg_ver).1 - endif + mv $(d)/$(usr_lib)/libgphobos.spec $(d_gdc_n)/$(gcc_lib_dir)/ endif # FIXME: __entrypoint.di needs to go into a libgdc-dev Multi-Arch: same package # Always needed by gdc. - mkdir -p $(d_gdc)/$(gdc_include_dir) + mkdir -p $(d_gdc_n)/$(gdc_include_dir) cp $(srcdir)/libphobos/libdruntime/__entrypoint.di \ - $(d_gdc)/$(gdc_include_dir)/. + $(d_gdc_n)/$(gdc_include_dir)/. #ifneq ($(DEB_CROSS),yes) -# dh_link -p$(p_gdc) \ +# dh_link -p$(p_gdc_n) \ # /$(gdc_include_dir) \ # /$(dir $(gdc_include_dir))/$(GCC_VERSION) #endif - dh_link -p$(p_gdc) \ - /$(docdir)/$(p_gcc)/README.Bugs \ - /$(docdir)/$(p_gdc)/README.Bugs - ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) $(DWZ) \ - $(d_gdc)/$(gcc_lexec_dir)/d21 + $(d_gdc_n)/$(gcc_lexec_dir)/d21 endif - dh_strip -p$(p_gdc) \ + dh_strip -p$(p_gdc_n) \ $(if $(unstripped_exe),-X/d21) - dh_shlibdeps -p$(p_gdc) + dh_shlibdeps -p$(p_gdc_n) + + echo '$(p_gdc_n) binary: hardening-no-pie' \ + > $(d_gdc_n)/usr/share/lintian/overrides/$(p_gdc_n) + + echo $(p_gdc_n) >> debian/arch_binaries - mkdir -p $(d_gdc)/usr/share/lintian/overrides - echo '$(p_gdc) binary: hardening-no-pie' \ - > $(d_gdc)/usr/share/lintian/overrides/$(p_gdc) + find $(d_gdc_n) -type d -empty -delete + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +$(binary_stamp)-gdc: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gdc) + dh_installdirs -p$(p_gdc) $(dirs_gdc) + + dh_installdocs -p$(p_gdc) + dh_installchangelogs -p$(p_gdc) src/gcc/d/ChangeLog + + ln -sf $(cmd_prefix)gdc$(pkg_ver) \ + $(d_gdc)/$(PF)/bin/gdc$(pkg_ver) +ifneq ($(GFDL_INVARIANT_FREE),yes-now-pure-gfdl) + ln -sf $(cmd_prefix)gdc$(pkg_ver).1.gz \ + $(d_gdc)/$(PF)/share/man/man1/gdc$(pkg_ver).1.gz +endif + + dh_link -p$(p_gdc) \ + /$(docdir)/$(p_gcc)/README.Bugs \ + /$(docdir)/$(p_gdc)/README.Bugs echo $(p_gdc) >> debian/arch_binaries -- 2.25.1
>From 16ed5831dec90a1f9d88e9840f96fa65aae8ac99 Mon Sep 17 00:00:00 2001 From: Helmut Grohne <hel...@subdivi.de> Date: Fri, 27 Mar 2020 06:44:46 +0100 Subject: [PATCH 07/11] introduce gccgo-$v-$triplet --- debian/control.m4 | 28 +++++-- debian/rules.d/binary-go.mk | 145 ++++++++++++++++++++++-------------- 2 files changed, 110 insertions(+), 63 deletions(-) diff --git a/debian/control.m4 b/debian/control.m4 index 4ecd84d..74d505f 100644 --- a/debian/control.m4 +++ b/debian/control.m4 @@ -4236,20 +4236,34 @@ Description: Runtime library for GNU Fortran applications [NEON version] ifenabled(`ggo',` ifenabled(`godev',` -Package: gccgo`'PV`'TS +for_each_arch(` +Package: gccgo`'PV`'arch_gnusuffix +Architecture: ifdef(`TARGET',`any',arch_deb) +Multi-Arch: foreign +Priority: optional +Depends: BASEDEP, ifdef(`STANDALONEGO',`${dep:libcc1}, ',`gcc`'PV`'arch_gnusuffix (= ${gcc:Version}), ')libidevdep(go`'PV-dev,,>=), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Suggests: gccgo`'PV-doc, libdbgdep(go`'GO_SO-dbg), +Conflicts: ${golang:Conflicts} +Breaks: libgo12`'LS (<< 8-20171209-2), gccgo`'PV (<< 0TODO) +Replaces: libgo12`'LS (<< 8-20171209-2), gccgo`'PV (<< 999:0TODO) +BUILT_USING`'dnl +Description: GNU Go compiler for the arch_gnu architecture + This is the GNU Go compiler for the arch_gnu architecture, which + compiles Go on platforms supported by the gcc compiler. It uses the gcc + backend to generate optimized code. +')`'dnl for_each_arch +ifdef(`TARGET',`',` +Package: gccgo`'PV Architecture: any -ifdef(`TARGET',`Multi-Arch: foreign -')dnl Priority: optional -Depends: BASEDEP, ifdef(`STANDALONEGO',`${dep:libcc1}, ',`gcc`'PV`'TS (= ${gcc:Version}), ')libidevdep(go`'PV-dev,,>=), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} -ifdef(`TARGET',`',`Provides: go-compiler -')dnl +Depends: BASEDEP, gccgo`'PV`'${target:suffix} (= ${gcc:Version}), ifdef(`STANDALONEGO',`',`gcc`'PV (= ${gcc:Version}), ')${misc:Depends} +Provides: go-compiler Suggests: ${go:multilib}, gccgo`'PV-doc, libdbgdep(go`'GO_SO-dbg), Conflicts: ${golang:Conflicts} -BUILT_USING`'dnl Description: GNU Go compiler This is the GNU Go compiler, which compiles Go on platforms supported by the gcc compiler. It uses the gcc backend to generate optimized code. +')`'dnl no-TARGET ifenabled(`multilib',` Package: gccgo`'PV-multilib`'TS diff --git a/debian/rules.d/binary-go.mk b/debian/rules.d/binary-go.mk index 29e0ea6..4cb7e84 100644 --- a/debian/rules.d/binary-go.mk +++ b/debian/rules.d/binary-go.mk @@ -30,7 +30,10 @@ ifeq ($(with_libx32godev),yes) endif ifneq ($(DEB_STAGE),rtlibs) - arch_binaries := $(arch_binaries) gccgo + arch_binaries := $(arch_binaries) gccgo-nat + ifeq ($(unprefixed_names),yes) + arch_binaries := $(arch_binaries) gccgo + endif ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32))) arch_binaries := $(arch_binaries) gccgo-multi endif @@ -41,29 +44,37 @@ ifneq ($(DEB_STAGE),rtlibs) endif endif -p_go = gccgo$(pkg_ver)$(cross_bin_arch) +p_go_n = gccgo$(pkg_ver)-$(subst _,-,$(TARGET_ALIAS)) +p_go = gccgo$(pkg_ver) p_go_m = gccgo$(pkg_ver)-multilib$(cross_bin_arch) p_god = gccgo$(pkg_ver)-doc p_golib = libgo$(GO_SONAME)$(cross_lib_arch) +d_go_n = debian/$(p_go_n) d_go = debian/$(p_go) d_go_m = debian/$(p_go_m) d_god = debian/$(p_god) d_golib = debian/$(p_golib) -dirs_go = \ - $(docdir)/$(p_xbase)/go \ +dirs_go_n = \ $(PF)/bin \ $(gcc_lexec_dir) \ $(gcc_lib_dir) \ $(PF)/include \ - $(PF)/share/man/man1 -files_go = \ + $(PF)/share/man/man1 \ + usr/share/lintian/overrides + +dirs_go = \ + $(docdir)/$(p_xbase)/go \ + $(PF)/bin \ + $(PF)/share/man/man1 \ + +files_go_n = \ $(PF)/bin/$(cmd_prefix)gccgo$(pkg_ver) \ $(gcc_lexec_dir)/go1 ifneq (,$(filter $(build_type), build-native cross-build-native)) - files_go += \ + files_go_n += \ $(PF)/bin/$(cmd_prefix){go,gofmt}$(pkg_ver) \ $(gcc_lexec_dir)/cgo \ $(gcc_lexec_dir)/{buildid,test2json,vet} \ @@ -71,18 +82,20 @@ ifneq (,$(filter $(build_type), build-native cross-build-native)) endif ifneq ($(GFDL_INVARIANT_FREE),yes) - files_go += \ + files_go_n += \ $(PF)/share/man/man1/$(cmd_prefix)gccgo$(pkg_ver).1 endif ifeq ($(with_standalone_go),yes) - dirs_go += \ + dirs_go_n += \ $(gcc_lib_dir)/include \ $(PF)/share/man/man1 + dirs_go += \ + $(PF)/share/man/man1 # XXX: what about triarch mapping? - files_go += \ + files_go_n += \ $(PF)/bin/$(cmd_prefix){cpp,gcc,gcov,gcov-tool}$(pkg_ver) \ $(PF)/bin/$(cmd_prefix)gcc-{ar,ranlib,nm}$(pkg_ver) \ $(PF)/share/man/man1/$(cmd_prefix)gcc-{ar,nm,ranlib}$(pkg_ver).1 \ @@ -94,26 +107,26 @@ ifeq ($(with_standalone_go),yes) && echo $(gcc_lib_dir)/SYSCALLS.c.X) ifeq ($(with_cc1),yes) - files_go += \ + files_go_n += \ $(gcc_lib_dir)/plugin/libcc1plugin.so{,.0,.0.0.0} endif ifneq ($(GFDL_INVARIANT_FREE),yes) - files_go += \ + files_go_n += \ $(PF)/share/man/man1/$(cmd_prefix){cpp,gcc,gcov,gcov-tool}$(pkg_ver).1 endif ifeq ($(biarch64),yes) - files_go += $(gcc_lib_dir)/$(biarch64subdir)/{libgcc*,libgcov.a,*.o} + files_go_n += $(gcc_lib_dir)/$(biarch64subdir)/{libgcc*,libgcov.a,*.o} endif ifeq ($(biarch32),yes) - files_go += $(gcc_lib_dir)/$(biarch32subdir)/{libgcc*,*.o} + files_go_n += $(gcc_lib_dir)/$(biarch32subdir)/{libgcc*,*.o} endif ifeq ($(biarchn32),yes) - files_go += $(gcc_lib_dir)/$(biarchn32subdir)/{libgcc*,libgcov.a,*.o} + files_go_n += $(gcc_lib_dir)/$(biarchn32subdir)/{libgcc*,libgcov.a,*.o} endif ifeq ($(biarchx32),yes) - files_go += $(gcc_lib_dir)/$(biarchx32subdir)/{libgcc*,libgcov.a,*.o} + files_go_n += $(gcc_lib_dir)/$(biarchx32subdir)/{libgcc*,libgcov.a,*.o} endif endif @@ -242,22 +255,64 @@ $(binary_stamp)-libn32go-dev: $(install_stamp) $(call do_libgo_dev,n32) # ---------------------------------------------------------------------- -$(binary_stamp)-gccgo: $(install_stamp) +$(binary_stamp)-gccgo-nat: $(install_stamp) dh_testdir dh_testroot mv $(install_stamp) $(install_stamp)-tmp - rm -rf $(d_go) - dh_installdirs -p$(p_go) $(dirs_go) + rm -rf $(d_go_n) + dh_installdirs -p$(p_go_n) $(dirs_go_n) - $(dh_compat2) dh_movefiles -p$(p_go) $(files_go) + $(dh_compat2) dh_movefiles -p$(p_go_n) $(files_go_n) ifneq (,$(findstring gccgo,$(PKGSOURCE))) - rm -rf $(d_go)/$(gcc_lib_dir)/include/cilk - rm -rf $(d_go)/$(gcc_lib_dir)/include/openacc.h + rm -rf $(d_go_n)/$(gcc_lib_dir)/include/cilk + rm -rf $(d_go_n)/$(gcc_lib_dir)/include/openacc.h +endif + +ifeq ($(with_standalone_go),yes) + ifeq ($(with_gomp),yes) + mv $(d)/$(usr_lib)/libgomp*.spec $(d_go_n)/$(gcc_lib_dir)/ + endif + ifeq ($(with_cc1),yes) + rm -f $(d)/$(usr_lib)/libcc1.so + dh_link -p$(p_go_n) \ + /$(usr_lib)/libcc1.so.$(CC1_SONAME) /$(gcc_lib_dir)/libcc1.so + endif +endif + + echo '$(p_go_n) binary: unstripped-binary-or-object' \ + > $(d_go_n)/usr/share/lintian/overrides/$(p_go_n) + echo '$(p_go_n) binary: hardening-no-pie' \ + >> $(d_go_n)/usr/share/lintian/overrides/$(p_go_n) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_go_n) binary: binary-without-manpage' \ + >> $(d_go_n)/usr/share/lintian/overrides/$(p_go_n) +endif + + debian/dh_doclink -p$(p_go_n) $(p_xbase) + + debian/dh_rmemptydirs -p$(p_go_n) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_go_n)/$(gcc_lexec_dir)/go1 endif + dh_strip -v -p$(p_go_n) -X/cgo -X/go$(pkg_ver) -X/gofmt$(pkg_ver) \ + -X/buildid -X/test2json -X/vet $(if $(unstripped_exe),-X/go1) + dh_shlibdeps -p$(p_go_n) + echo $(p_go_n) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +$(binary_stamp)-gccgo: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_go) + dh_installdirs -p$(p_go) $(dirs_go) -ifeq ($(unprefixed_names),yes) ln -sf $(cmd_prefix)gccgo$(pkg_ver) \ $(d_go)/$(PF)/bin/gccgo$(pkg_ver) ln -sf $(cmd_prefix)go$(pkg_ver) \ @@ -265,46 +320,31 @@ ifeq ($(unprefixed_names),yes) ln -sf $(cmd_prefix)gofmt$(pkg_ver) \ $(d_go)/$(PF)/bin/gofmt$(pkg_ver) ifneq ($(GFDL_INVARIANT_FREE),yes) - ln -sf $(cmd_prefix)gccgo$(pkg_ver).1 \ - $(d_go)/$(PF)/share/man/man1/gccgo$(pkg_ver).1 + ln -sf $(cmd_prefix)gccgo$(pkg_ver).1.gz \ + $(d_go)/$(PF)/share/man/man1/gccgo$(pkg_ver).1.gz endif - ln -sf $(cmd_prefix)go$(pkg_ver).1 \ - $(d_go)/$(PF)/share/man/man1/go$(pkg_ver).1 - ln -sf $(cmd_prefix)gofmt$(pkg_ver).1 \ - $(d_go)/$(PF)/share/man/man1/gofmt$(pkg_ver).1 -endif + ln -sf $(cmd_prefix)go$(pkg_ver).1.gz \ + $(d_go)/$(PF)/share/man/man1/go$(pkg_ver).1.gz + ln -sf $(cmd_prefix)gofmt$(pkg_ver).1.gz \ + $(d_go)/$(PF)/share/man/man1/gofmt$(pkg_ver).1.gz ifeq ($(with_standalone_go),yes) - ifeq ($(unprefixed_names),yes) for i in gcc gcov gcov-tool gcc-ar gcc-nm gcc-ranlib; do \ ln -sf $(cmd_prefix)$$i$(pkg_ver) \ $(d_go)/$(PF)/bin/$$i$(pkg_ver); \ done - ifneq ($(GFDL_INVARIANT_FREE),yes) + ifneq ($(GFDL_INVARIANT_FREE),yes) for i in gcc gcov gcov-tool gcc-ar gcc-nm gcc-ranlib; do \ - ln -sf $(cmd_prefix)gcc$(pkg_ver).1 \ - $(d_go)/$(PF)/share/man/man1/$$i$(pkg_ver).1; \ + ln -sf $(cmd_prefix)gcc$(pkg_ver).1.gz \ + $(d_go)/$(PF)/share/man/man1/$$i$(pkg_ver).1.gz; \ done - endif - endif - ifeq ($(with_gomp),yes) - mv $(d)/$(usr_lib)/libgomp*.spec $(d_go)/$(gcc_lib_dir)/ - endif - ifeq ($(with_cc1),yes) - rm -f $(d)/$(usr_lib)/libcc1.so - dh_link -p$(p_go) \ - /$(usr_lib)/libcc1.so.$(CC1_SONAME) /$(gcc_lib_dir)/libcc1.so endif endif - mkdir -p $(d_go)/usr/share/lintian/overrides - echo '$(p_go) binary: unstripped-binary-or-object' \ - > $(d_go)/usr/share/lintian/overrides/$(p_go) - echo '$(p_go) binary: hardening-no-pie' \ - >> $(d_go)/usr/share/lintian/overrides/$(p_go) ifeq ($(GFDL_INVARIANT_FREE),yes) + mkdir -p $(d_go)/usr/share/lintian/overrides echo '$(p_go) binary: binary-without-manpage' \ - >> $(d_go)/usr/share/lintian/overrides/$(p_go) + > $(d_go)/usr/share/lintian/overrides/$(p_go) endif debian/dh_doclink -p$(p_go) $(p_xbase) @@ -313,13 +353,6 @@ endif # $(d_go)/$(docdir)/$(p_base)/go/changelog debian/dh_rmemptydirs -p$(p_go) -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) - $(DWZ) \ - $(d_go)/$(gcc_lexec_dir)/go1 -endif - dh_strip -v -p$(p_go) -X/cgo -X/go$(pkg_ver) -X/gofmt$(pkg_ver) \ - -X/buildid -X/test2json -X/vet $(if $(unstripped_exe),-X/go1) - dh_shlibdeps -p$(p_go) echo $(p_go) >> debian/arch_binaries trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) -- 2.25.1
>From c23a7ae8f7d72296e81607daaf811020d38349ce Mon Sep 17 00:00:00 2001 From: Helmut Grohne <hel...@subdivi.de> Date: Fri, 27 Mar 2020 15:31:00 +0100 Subject: [PATCH 08/11] drop obsolete sparc-only conflict --- debian/control.m4 | 1 - 1 file changed, 1 deletion(-) diff --git a/debian/control.m4 b/debian/control.m4 index 74d505f..aa4374d 100644 --- a/debian/control.m4 +++ b/debian/control.m4 @@ -3562,7 +3562,6 @@ Priority: optional Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), ${dep:libcdev}, ${shlibs:Depends}, libidevdep(objc`'PV-dev,,=), ${misc:Depends} Suggests: ${gobjc:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}), libdbgdep(objc`'OBJC_SO-dbg), Provides: objc-compiler`'TS -ifdef(`__sparc__',`Conflicts: gcc`'PV-sparc64', `dnl') BUILT_USING`'dnl Description: GNU Objective-C compiler This is the GNU Objective-C compiler, which compiles -- 2.25.1
>From f83c872dd7eb83fed9c28e077539360dd8103c0a Mon Sep 17 00:00:00 2001 From: Helmut Grohne <hel...@subdivi.de> Date: Fri, 27 Mar 2020 15:50:21 +0100 Subject: [PATCH 09/11] remove unused binary-without-manpage overrides gobjc-N and gobjc++-N don't contain any binaries on $PATH that would warrant a manual page. --- debian/rules.d/binary-objc.mk | 4 ---- debian/rules.d/binary-objcxx.mk | 4 ---- 2 files changed, 8 deletions(-) diff --git a/debian/rules.d/binary-objc.mk b/debian/rules.d/binary-objc.mk index b5cd216..743bf52 100644 --- a/debian/rules.d/binary-objc.mk +++ b/debian/rules.d/binary-objc.mk @@ -36,10 +36,6 @@ $(binary_stamp)-objc: $(install_stamp) mkdir -p $(d_objc)/usr/share/lintian/overrides echo '$(p_objc) binary: hardening-no-pie' \ > $(d_objc)/usr/share/lintian/overrides/$(p_objc) -ifeq ($(GFDL_INVARIANT_FREE),yes) - echo '$(p_objc) binary: binary-without-manpage' \ - >> $(d_objc)/usr/share/lintian/overrides/$(p_objc) -endif debian/dh_doclink -p$(p_objc) $(p_xbase) diff --git a/debian/rules.d/binary-objcxx.mk b/debian/rules.d/binary-objcxx.mk index 4f6d8e1..e750cae 100644 --- a/debian/rules.d/binary-objcxx.mk +++ b/debian/rules.d/binary-objcxx.mk @@ -34,10 +34,6 @@ $(binary_stamp)-objcxx: $(install_stamp) mkdir -p $(d_objcx)/usr/share/lintian/overrides echo '$(p_objcx) binary: hardening-no-pie' \ > $(d_objcx)/usr/share/lintian/overrides/$(p_objcx) -ifeq ($(GFDL_INVARIANT_FREE),yes) - echo '$(p_objcx) binary: binary-without-manpage' \ - >> $(d_objcx)/usr/share/lintian/overrides/$(p_objcx) -endif debian/dh_rmemptydirs -p$(p_objcx) -- 2.25.1
>From b8f8ed1b63c6ebfb720c0cb3c1a3d998828d72e2 Mon Sep 17 00:00:00 2001 From: Helmut Grohne <hel...@subdivi.de> Date: Fri, 27 Mar 2020 06:45:05 +0100 Subject: [PATCH 10/11] introduce gobjc-$v-$triplet --- debian/control.m4 | 28 ++++++++++++----- debian/rules.d/binary-objc.mk | 58 +++++++++++++++++++++++++---------- 2 files changed, 62 insertions(+), 24 deletions(-) diff --git a/debian/control.m4 b/debian/control.m4 index aa4374d..1402abe 100644 --- a/debian/control.m4 +++ b/debian/control.m4 @@ -3554,20 +3554,34 @@ Description: GNU Objective-C++ compiler (multilib support) ifenabled(`objc',` ifenabled(`objcdev',` -Package: gobjc`'PV`'TS +for_each_arch(` +Package: gobjc`'PV`'arch_gnusuffix Architecture: any -ifdef(`TARGET',`Multi-Arch: foreign -')dnl +Multi-Arch: foreign Priority: optional -Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), ${dep:libcdev}, ${shlibs:Depends}, libidevdep(objc`'PV-dev,,=), ${misc:Depends} -Suggests: ${gobjc:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}), libdbgdep(objc`'OBJC_SO-dbg), -Provides: objc-compiler`'TS +Depends: BASEDEP, gcc`'PV`'arch_gnusuffix (= ${gcc:Version}), ${dep:libcdev}, ${shlibs:Depends}, libidevdep(objc`'PV-dev,,=), ${misc:Depends} +Breaks: gobjc`'PV (<< 0TODO) +Replaces: gobjc`'PV (<< 999:0TODO) +Suggests: gcc`'PV-doc (>= ${gcc:SoftVersion}), libdbgdep(objc`'OBJC_SO-dbg,) +Provides: objc-compiler`'arch_gnusuffix BUILT_USING`'dnl +Description: GNU Objective-C compiler for the arch_gnu architecture + This is the GNU Objective-C compiler for the arch_gnu architecture, + which compiles Objective-C on platforms supported by the gcc compiler. + It uses the gcc backend to generate optimized code. +')`'dnl for_each_arch +ifdef(`TARGET',`',` +Package: gobjc`'PV +Architecture: any +Priority: optional +Depends: BASEDEP, gobjc`'PV`'${target:suffix} (= ${gcc:Version}), gcc`'PV (= ${gcc:Version}), ${misc:Depends} +Suggests: ${gobjc:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}) +Provides: objc-compiler Description: GNU Objective-C compiler This is the GNU Objective-C compiler, which compiles Objective-C on platforms supported by the gcc compiler. It uses the gcc backend to generate optimized code. - +')`'dnl ifndef TARGET ifenabled(`multilib',` Package: gobjc`'PV-multilib`'TS Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) diff --git a/debian/rules.d/binary-objc.mk b/debian/rules.d/binary-objc.mk index 743bf52..eeaec33 100644 --- a/debian/rules.d/binary-objc.mk +++ b/debian/rules.d/binary-objc.mk @@ -2,22 +2,58 @@ ifneq ($(DEB_STAGE),rtlibs) ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32) $(biarchhf) $(biarchsf))) arch_binaries := $(arch_binaries) objc-multi endif - arch_binaries := $(arch_binaries) objc + arch_binaries := $(arch_binaries) objc-nat + ifeq ($(unprefixed_names),yes) + arch_binaries := $(arch_binaries) objc + endif endif -p_objc = gobjc$(pkg_ver)$(cross_bin_arch) +p_objc_n = gobjc$(pkg_ver)-$(subst _,-,$(TARGET_ALIAS)) +d_objc_n = debian/$(p_objc_n) + +p_objc = gobjc$(pkg_ver) d_objc = debian/$(p_objc) p_objc_m= gobjc$(pkg_ver)-multilib$(cross_bin_arch) d_objc_m= debian/$(p_objc_m) +dirs_objc_n = \ + $(gcc_lexec_dir) \ + usr/share/lintian/overrides + dirs_objc = \ - $(docdir)/$(p_xbase)/ObjC \ - $(gcc_lexec_dir) + $(docdir)/$(p_xbase)/ObjC -files_objc = \ +files_objc_n = \ $(gcc_lexec_dir)/cc1obj +$(binary_stamp)-objc-nat: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_objc_n) + dh_installdirs -p$(p_objc_n) $(dirs_objc_n) + $(dh_compat2) dh_movefiles -p$(p_objc_n) $(files_objc_n) + + echo '$(p_objc_n) binary: hardening-no-pie' \ + > $(d_objc_n)/usr/share/lintian/overrides/$(p_objc_n) + + debian/dh_doclink -p$(p_objc_n) $(p_xbase) + + debian/dh_rmemptydirs -p$(p_objc_n) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_objc_n)/$(gcc_lexec_dir)/cc1obj +endif + dh_strip -p$(p_objc_n) \ + $(if $(unstripped_exe),-X/cc1obj) + dh_shlibdeps -p$(p_objc_n) + echo $(p_objc_n) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + $(binary_stamp)-objc: $(install_stamp) dh_testdir dh_testroot @@ -25,7 +61,6 @@ $(binary_stamp)-objc: $(install_stamp) rm -rf $(d_objc) dh_installdirs -p$(p_objc) $(dirs_objc) - $(dh_compat2) dh_movefiles -p$(p_objc) $(files_objc) cp -p $(srcdir)/libobjc/{README*,THREADS*} \ $(d_objc)/$(docdir)/$(p_xbase)/ObjC/. @@ -33,21 +68,10 @@ $(binary_stamp)-objc: $(install_stamp) cp -p $(srcdir)/libobjc/ChangeLog \ $(d_objc)/$(docdir)/$(p_xbase)/ObjC/changelog.libobjc - mkdir -p $(d_objc)/usr/share/lintian/overrides - echo '$(p_objc) binary: hardening-no-pie' \ - > $(d_objc)/usr/share/lintian/overrides/$(p_objc) - debian/dh_doclink -p$(p_objc) $(p_xbase) debian/dh_rmemptydirs -p$(p_objc) -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) - $(DWZ) \ - $(d_objc)/$(gcc_lexec_dir)/cc1obj -endif - dh_strip -p$(p_objc) \ - $(if $(unstripped_exe),-X/cc1obj) - dh_shlibdeps -p$(p_objc) echo $(p_objc) >> debian/arch_binaries trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) -- 2.25.1
>From 717dbd8777a62e17c768ac2914027819dde081f1 Mon Sep 17 00:00:00 2001 From: Helmut Grohne <hel...@subdivi.de> Date: Mon, 30 Mar 2020 11:52:40 +0200 Subject: [PATCH 11/11] introduce gobjc++-$v-$triplet --- debian/control.m4 | 25 ++++++++++++--- debian/rules.d/binary-objcxx.mk | 56 +++++++++++++++++++++++---------- 2 files changed, 60 insertions(+), 21 deletions(-) diff --git a/debian/control.m4 b/debian/control.m4 index 1402abe..586da84 100644 --- a/debian/control.m4 +++ b/debian/control.m4 @@ -3519,19 +3519,34 @@ Description: GCC just-in-time compilation (development files) ifenabled(`objpp',` ifenabled(`objppdev',` -Package: gobjc++`'PV`'TS +for_each_arch(` +Package: gobjc++`'PV`'arch_gnusuffix Architecture: any -ifdef(`TARGET',`Multi-Arch: foreign -')dnl +Multi-Arch: foreign Priority: optional -Depends: BASEDEP, gobjc`'PV`'TS (= ${gcc:Version}), g++`'PV`'TS (= ${gcc:Version}), ${shlibs:Depends}, libidevdep(objc`'PV-dev,,=), ${misc:Depends} +Depends: BASEDEP, gobjc`'PV`'arch_gnusuffix (= ${gcc:Version}), g++`'PV`'arch_gnusuffix (= ${gcc:Version}), ${shlibs:Depends}, libidevdep(objc`'PV-dev,,=), ${misc:Depends} +Breaks: gobjc++`'PV (<< 0TODO) +Replaces: gobjc++`'PV (<< 999:0TODO) Suggests: ${gobjcxx:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}) -Provides: objc++-compiler`'TS +Provides: objc++-compiler`'arch_gnusuffix BUILT_USING`'dnl +Description: GNU Objective-C++ compiler for the arch_gnu architecture + This is the GNU Objective-C++ compiler for the arch_gnu architecture, + which compiles Objective-C++ on platforms supported by the gcc compiler. + It uses the gcc backend to generate optimized code. +')`'dnl for_each_arch +ifdef(`TARGET',`',` +Package: gobjc++`'PV +Architecture: any +Priority: optional +Depends: BASEDEP, gobjc++`'PV`'${target:suffix} (= ${gcc:Version}), gobjc`'PV (= ${gcc:Version}), g++`'PV (= ${gcc:Version}), ${misc:Depends} +Suggests: ${gobjcxx:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}) +Provides: objc++-compiler Description: GNU Objective-C++ compiler This is the GNU Objective-C++ compiler, which compiles Objective-C++ on platforms supported by the gcc compiler. It uses the gcc backend to generate optimized code. +')`'dnl TARGET ')`'dnl obcppdev ifenabled(`multilib',` diff --git a/debian/rules.d/binary-objcxx.mk b/debian/rules.d/binary-objcxx.mk index e750cae..984483d 100644 --- a/debian/rules.d/binary-objcxx.mk +++ b/debian/rules.d/binary-objcxx.mk @@ -2,22 +2,58 @@ ifneq ($(DEB_STAGE),rtlibs) ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32) $(biarchhf) $(biarchsf))) arch_binaries := $(arch_binaries) objcxx-multi endif - arch_binaries := $(arch_binaries) objcxx + arch_binaries := $(arch_binaries) objcxx-nat + ifeq ($(unprefixed_names),yes) + arch_binaries := $(arch_binaries) objcxx + endif endif -p_objcx = gobjc++$(pkg_ver)$(cross_bin_arch) +p_objcx_n = gobjc++$(pkg_ver)-$(subst _,-,$(TARGET_ALIAS)) +d_objcx_n = debian/$(p_objcx_n) + +p_objcx = gobjc++$(pkg_ver) d_objcx = debian/$(p_objcx) p_objcx_m = gobjc++$(pkg_ver)-multilib$(cross_bin_arch) d_objcx_m = debian/$(p_objcx_m) +dirs_objcx_n = \ + $(gcc_lexec_dir) \ + usr/share/lintian/overrides + dirs_objcx = \ $(docdir)/$(p_xbase)/Obj-C++ \ - $(gcc_lexec_dir) -files_objcx = \ +files_objcx_n = \ $(gcc_lexec_dir)/cc1objplus +$(binary_stamp)-objcxx-nat: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_objcx_n) + dh_installdirs -p$(p_objcx_n) $(dirs_objcx_n) + $(dh_compat2) dh_movefiles -p$(p_objcx_n) $(files_objcx_n) + + debian/dh_doclink -p$(p_objcx_n) $(p_xbase) + + echo '$(p_objcx_n) binary: hardening-no-pie' \ + > $(d_objcx_n)/usr/share/lintian/overrides/$(p_objcx_n) + + debian/dh_rmemptydirs -p$(p_objcx_n) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_objcx_n)/$(gcc_lexec_dir)/cc1objplus +endif + dh_strip -p$(p_objcx_n) \ + $(if $(unstripped_exe),-X/cc1objplus) + dh_shlibdeps -p$(p_objcx_n) + echo $(p_objcx_n) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + $(binary_stamp)-objcxx: $(install_stamp) dh_testdir dh_testroot @@ -25,25 +61,13 @@ $(binary_stamp)-objcxx: $(install_stamp) rm -rf $(d_objcx) dh_installdirs -p$(p_objcx) $(dirs_objcx) - $(dh_compat2) dh_movefiles -p$(p_objcx) $(files_objcx) debian/dh_doclink -p$(p_objcx) $(p_xbase) cp -p $(srcdir)/gcc/objcp/ChangeLog \ $(d_objcx)/$(docdir)/$(p_xbase)/Obj-C++/changelog - mkdir -p $(d_objcx)/usr/share/lintian/overrides - echo '$(p_objcx) binary: hardening-no-pie' \ - > $(d_objcx)/usr/share/lintian/overrides/$(p_objcx) - debian/dh_rmemptydirs -p$(p_objcx) -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) - $(DWZ) \ - $(d_objcx)/$(gcc_lexec_dir)/cc1objplus -endif - dh_strip -p$(p_objcx) \ - $(if $(unstripped_exe),-X/cc1objplus) - dh_shlibdeps -p$(p_objcx) echo $(p_objcx) >> debian/arch_binaries trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) -- 2.25.1