On Sat, Apr 28, 2018 at 01:06:20PM +0200, Matthias Klose wrote: > As addition to the feedback given on irc,
Thank you very much for spending time on this tricky feature and your patience. I'm attaching an improved patch, but it is certainly not ready for merging and I don't expect Matthias to look into it. This mail merely constitutes a random snapshot of my work on the patch. Help from others is appreciated. > - 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. > - as the first step, please don't build any -for-host and -for-build > packages yet. In the interest of keeping the diff manageable, this was the intention. The addition of -for-host or -for-build packages will be covered in a different bug report. > - for testing: Given that the patch is still very much incomplete, I've not performed much testing beyond native builds and running lintian. Helmut
diff -u gcc-8-8.2.0/debian/changelog gcc-8-8.2.0/debian/changelog --- gcc-8-8.2.0/debian/changelog +++ gcc-8-8.2.0/debian/changelog @@ -1,3 +1,10 @@ +gcc-8 (8.2.0-7.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * + + -- Helmut Grohne <hel...@subdivi.de> Sat, 29 Sep 2018 13:31:54 +0200 + gcc-8 (8.2.0-7) unstable; urgency=medium * Update to SVN 20180917 (r264370) from the gcc-8-branch. diff -u gcc-8-8.2.0/debian/control.m4 gcc-8-8.2.0/debian/control.m4 --- gcc-8-8.2.0/debian/control.m4 +++ gcc-8-8.2.0/debian/control.m4 @@ -35,6 +35,13 @@ ')) 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 -------------------------------------------------------------------------- @@ -701,21 +708,22 @@ ')`'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: gccgo-8 (<< ${gcc:Version}), cpp`'PV`'TS (<< 7.1.1-8) -Suggests: ${gcc:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}), +Replaces: gccgo-8 (<< ${gcc:Version}), 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`'GCC_SO-dbg,,>=,${libgcc:Version}), libdbgdep(gomp`'GOMP_SO-dbg,), @@ -730,15 +738,44 @@ ')`'dnl libdbgdep(mpx`'MPX_SO-dbg,), 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: gccgo-8 (<< ${gcc:Version}), 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(mpx`'MPX_SO-dbg,), + 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',` @@ -801,17 +838,35 @@ 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}) +Replaces: gccgo-8 (<< ${gcc:Version}), 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}) Replaces: gccgo-8 (<< ${gcc:Version}) -Breaks: libmagics++-dev (<< 2.28.0-4)ifdef(`TARGET',`',`, hardening-wrapper (<< 2.8+nmu3)') +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 @@ -819,9 +874,6 @@ . 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', `', ` @@ -853,23 +905,36 @@ ')`'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 @@ -3254,21 +3319,34 @@ 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 -ifdef(`__sparc__',`Conflicts: gcc`'PV-sparc64', `dnl') +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, 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) @@ -3558,22 +3636,34 @@ ')`'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} -Provides: fortran95-compiler, ${fortran:mod-version} -Suggests: ${gfortran:multilib}, gfortran`'PV-doc, +Depends: BASEDEP, gcc`'PV`'arch_gnusuffix (= ${gcc:Version}), libidevdep(gfortran`'PV-dev,,=), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +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 @@ -3894,21 +3984,36 @@ 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`'GO_SO,,>=), ${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`'GO_SO,,>=), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Depends: BASEDEP, 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} Breaks: libgo12`'LS (<< 8-20171209-2) Replaces: libgo12`'LS (<< 8-20171209-2) -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 @@ -4851,21 +4956,36 @@ ')`'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} +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) 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) -BUILT_USING`'dnl -Description: GNU D compiler (version 2)`'ifdef(`TARGET)',` (cross compiler for TARGET architecture)', `') +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 -u gcc-8-8.2.0/debian/rules.conf gcc-8-8.2.0/debian/rules.conf --- gcc-8-8.2.0/debian/rules.conf +++ gcc-8-8.2.0/debian/rules.conf @@ -636,6 +636,7 @@ -DTARGET_TOOL_BUILD_DEP='$(TARGET_TOOL_BUILD_DEP)' \ -DPHOBOS_BUILD_DEP="$(PHOBOS_BUILD_DEP)" \ -DOFFLOAD_BUILD_DEP="$(OFFLOAD_BUILD_DEP)" \ + -DARCH_GNUTYPE_MAP="$(arch_gnutype_map)" \ -DMULTILIB_ARCHS="$(multilib_archs)" \ -DNEON_ARCHS="$(neon_archs)" \ -DTP=$(TP) \ @@ -1022,6 +1023,7 @@ echo 'dep:libcxxbiarchdbg=$(libstdc++biarchdbg)'; \ echo 'dep:libgnat=$(LIBGNAT_DEP)'; \ echo 'base:Breaks=$(BASE_BREAKS)'; \ + echo 'target:suffix=-$(subst _,-,$(TARGET_ALIAS))'; \ ) > debian/substvars.local.tmp ifneq (,$(filter $(DEB_TARGET_ARCH), $(multilib_archs))) ( \ diff -u gcc-8-8.2.0/debian/rules.d/binary-cpp.mk gcc-8-8.2.0/debian/rules.d/binary-cpp.mk --- gcc-8-8.2.0/debian/rules.d/binary-cpp.mk +++ gcc-8-8.2.0/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 @@ endif endif -dirs_cpp = \ +dirs_cppn = \ $(docdir) \ $(PF)/share/man/man1 \ $(PF)/bin \ - $(gcc_lexec_dir) + $(gcc_lexec_dir) \ + usr/share/lintian/overrides -files_cpp = \ +dirs_cpp = \ + $(docdir) \ + $(PF)/bin \ + $(PF)/share/man/man1 \ + usr/share/lintian/overrides + +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 @@ 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 @@ 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 -u gcc-8-8.2.0/debian/rules.d/binary-cxx.mk gcc-8-8.2.0/debian/rules.d/binary-cxx.mk --- gcc-8-8.2.0/debian/rules.d/binary-cxx.mk +++ gcc-8-8.2.0/debian/rules.d/binary-cxx.mk @@ -2,21 +2,31 @@ 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 @@ 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 @@ 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 @@ $(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 -u gcc-8-8.2.0/debian/rules.d/binary-d.mk gcc-8-8.2.0/debian/rules.d/binary-d.mk --- gcc-8-8.2.0/debian/rules.d/binary-d.mk +++ gcc-8-8.2.0/debian/rules.d/binary-d.mk @@ -2,7 +2,10 @@ 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_libphobos),yes) $(lib_binaries) += libphobos-dev @@ -48,11 +51,13 @@ 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) @@ -66,20 +71,26 @@ # 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)/cc1d ifneq ($(GFDL_INVARIANT_FREE),yes-now-pure-gfdl) - files_gdc += \ + files_gdc_n += \ $(PF)/share/man/man1/$(cmd_prefix)gdc$(pkg_ver).1 endif @@ -88,58 +99,71 @@ $(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_libphobos),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)/cc1d + $(d_gdc_n)/$(gcc_lexec_dir)/cc1d endif - dh_strip -p$(p_gdc) \ + dh_strip -p$(p_gdc_n) \ $(if $(unstripped_exe),-X/cc1d) - dh_shlibdeps -p$(p_gdc) + dh_shlibdeps -p$(p_gdc_n) - mkdir -p $(d_gdc)/usr/share/lintian/overrides - echo '$(p_gdc) binary: hardening-no-pie' \ - > $(d_gdc)/usr/share/lintian/overrides/$(p_gdc) + 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 + + 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 diff -u gcc-8-8.2.0/debian/rules.d/binary-fortran.mk gcc-8-8.2.0/debian/rules.d/binary-fortran.mk --- gcc-8-8.2.0/debian/rules.d/binary-fortran.mk +++ gcc-8-8.2.0/debian/rules.d/binary-fortran.mk @@ -45,7 +45,10 @@ 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,38 @@ 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 -files_g95 = \ + $(PF)/share/man/man1 \ + usr/share/lintian/overrides + +dirs_g95 = \ + $(docdir)/$(p_xbase)/fortran \ + $(PF)/bin \ + $(PF)/share/man/man1 \ + usr/share/lintian/overrides + +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 @@ -164,6 +176,41 @@ $(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 @@ -172,22 +219,13 @@ 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) echo '$(p_g95) binary: binary-without-manpage' \ >> $(d_g95)/usr/share/lintian/overrides/$(p_g95) @@ -199,13 +237,6 @@ $(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) diff -u gcc-8-8.2.0/debian/rules.d/binary-gcc.mk gcc-8-8.2.0/debian/rules.d/binary-gcc.mk --- gcc-8-8.2.0/debian/rules.d/binary-gcc.mk +++ gcc-8-8.2.0/debian/rules.d/binary-gcc.mk @@ -6,7 +6,10 @@ 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 @@ # 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,mpx} \ +dirs_gccn = \ $(PF)/bin \ $(gcc_lexec_dir) \ $(gcc_lib_dir)/{include,include-fixed} \ - $(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,mpx} \ + $(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}$(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,15 +52,15 @@ && 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 \ $(shell for h in \ README limits.h syslimits.h; \ @@ -62,7 +71,7 @@ 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 endif @@ -83,6 +92,59 @@ 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_mpx),yes) + mv $(d)/$(usr_lib)/libmpx.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 @@ -102,12 +164,10 @@ $(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 @@ -116,40 +176,28 @@ $(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_mpx),yes) - mv $(d)/$(usr_lib)/libmpx.spec $(d_gcc)/$(gcc_lib_dir)/ cp -p $(srcdir)/libmpx/ChangeLog \ $(d_gcc)/$(docdir)/$(p_xbase)/mpx/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; 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; 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) @@ -169,28 +217,14 @@ 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 -u gcc-8-8.2.0/debian/rules.d/binary-go.mk gcc-8-8.2.0/debian/rules.d/binary-go.mk --- gcc-8-8.2.0/debian/rules.d/binary-go.mk +++ gcc-8-8.2.0/debian/rules.d/binary-go.mk @@ -15,7 +15,10 @@ 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 @@ -26,29 +29,36 @@ 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 \ + usr/share/lintian/overrides +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} \ @@ -56,18 +66,20 @@ 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 \ @@ -79,26 +91,26 @@ && 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 @@ -194,13 +206,13 @@ $(call do_gccgo,x32) # ---------------------------------------------------------------------- -$(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) mv $(d)/$(usr_lib)/{libgobegin,libgolibbegin}.a \ $(d)/$(gcc_lib_dir)/ @@ -221,16 +233,58 @@ $(d)/$(gcc_lib_dir)/x32/; \ fi - $(call do_go_dev,,$(p_go)) + $(call do_go_dev,,$(p_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 ($(unprefixed_names),yes) +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) + ln -sf $(cmd_prefix)gccgo$(pkg_ver) \ $(d_go)/$(PF)/bin/gccgo$(pkg_ver) ln -sf $(cmd_prefix)go$(pkg_ver) \ @@ -238,43 +292,27 @@ 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) echo '$(p_go) binary: binary-without-manpage' \ >> $(d_go)/usr/share/lintian/overrides/$(p_go) @@ -286,13 +324,6 @@ # $(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) diff -u gcc-8-8.2.0/debian/rules.d/binary-objc.mk gcc-8-8.2.0/debian/rules.d/binary-objc.mk --- gcc-8-8.2.0/debian/rules.d/binary-objc.mk +++ gcc-8-8.2.0/debian/rules.d/binary-objc.mk @@ -2,22 +2,58 @@ 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 @@ 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,25 +68,10 @@ 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) -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) 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) diff -u gcc-8-8.2.0/debian/rules2 gcc-8-8.2.0/debian/rules2 --- gcc-8-8.2.0/debian/rules2 +++ gcc-8-8.2.0/debian/rules2 @@ -1834,6 +1834,10 @@ pkg_ver := -$(BASE_VERSION) 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) p_base = gcc$(pkg_ver)-base @@ -1867,9 +1871,12 @@ 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) 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)