Source: mpdecimal
Version: 2.5.0-4
Severity: serious
Tags: ftbfs patch
User: helm...@debian.org
Usertags: rebootstrap

mpdecimal has a number of symbols whose appearance is quite dependent on
the precise compiler version. These tend to be symbols for inlined
functions and template instantiations. This presently causes FTBFS in
bullseye, e.g.:

https://tests.reproducible-builds.org/debian/rbuild/bullseye/amd64/mpdecimal_2.5.0-4.rbuild.log.gz
https://tests.reproducible-builds.org/debian/rbuild/bullseye/arm64/mpdecimal_2.5.0-4.rbuild.log.gz
https://tests.reproducible-builds.org/debian/rbuild/bullseye/armhf/mpdecimal_2.5.0-4.rbuild.log.gz

This happens, because the bullseye toolchain was not exactly the same as
the unstable toolchain at the time of the build and the compiler decided
to instantiate symbols differently. Instead of changing symbols back and
forth, I suggest simply marking them as optional.

Beyond this, you can use arch-bits=32 and arch-bits=64 to remove the
need for interpolating the symbol file since that feature is now present
in oldstable.

I'm attaching a patch for the optional stuff for your convenience.

Helmut
diff --minimal -Nru mpdecimal-2.5.0/debian/changelog 
mpdecimal-2.5.0/debian/changelog
--- mpdecimal-2.5.0/debian/changelog    2020-08-06 15:33:23.000000000 +0200
+++ mpdecimal-2.5.0/debian/changelog    2020-09-22 19:35:08.000000000 +0200
@@ -1,3 +1,10 @@
+mpdecimal (2.5.0-4.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Mark optional symbols as optional. (Closes: #-1)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Tue, 22 Sep 2020 19:35:08 +0200
+
 mpdecimal (2.5.0-4) unstable; urgency=medium
 
   * Update symbols files.
diff --minimal -Nru mpdecimal-2.5.0/debian/libmpdec.symbols.in 
mpdecimal-2.5.0/debian/libmpdec.symbols.in
--- mpdecimal-2.5.0/debian/libmpdec.symbols.in  2020-08-06 15:33:23.000000000 
+0200
+++ mpdecimal-2.5.0/debian/libmpdec.symbols.in  2020-09-22 19:35:08.000000000 
+0200
@@ -416,22 +416,22 @@
  _ZN7decimal9UnderflowD2Ev@Base 2.5
  _ZN7decimallsERSoRKNS_7ContextE@Base 2.5
  _ZN7decimallsERSoRKNS_7DecimalE@Base 2.5
- 
(arch=ia64)_ZN9__gnu_cxx12__to_xstringINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEET_PFiPT0_mPKS8_PvEmSB_z@Base
 2.5
+ 
(optional=templinst)_ZN9__gnu_cxx12__to_xstringINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEET_PFiPT0_mPKS8_PvEmSB_z@Base
 2.5
  _ZNK7decimal10ValueError4whatEv@Base 2.5
  _ZNK7decimal11MallocError4whatEv@Base 2.5
  _ZNK7decimal12RuntimeError4whatEv@Base 2.5
  _ZNK7decimal16DecimalException4whatEv@Base 2.5
  _ZNK7decimal7Context4reprB5cxx11Ev@Base 2.5
  _ZNK7decimal7Decimal4reprB5cxx11Eb@Base 2.5
- (arch=!ia64 !ppc64el !kfreebsd-amd64 
!kfreebsd-i386)_ZNK7decimal7Decimal6to_sciB5cxx11Eb@Base 2.5
- 
(arch=ia64)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv@Base
 2.5
- (arch=!armel 
!riscv64)_ZNSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base
 2.5
- (arch=!armel 
!riscv64)_ZNSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base
 2.5
- (arch=!armel 
!riscv64)_ZNSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base
 2.5
- (arch=!armel 
!riscv64)_ZNSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base
 2.5
- (arch=!armel 
!riscv64)_ZNSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base
 2.5
- 
(arch=ia64)_ZNSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base
 2.5
- 
(arch=ia64)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag@Base
 2.5
+ (optional=inline)_ZNK7decimal7Decimal6to_sciB5cxx11Eb@Base 2.5
+ 
(optional=templinst)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv@Base
 2.5
+ 
(optional=templinst)_ZNSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base
 2.5
+ 
(optional=templinst)_ZNSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base
 2.5
+ 
(optional=templinst)_ZNSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base
 2.5
+ 
(optional=templinst)_ZNSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base
 2.5
+ 
(optional=templinst)_ZNSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base
 2.5
+ 
(optional=templinst)_ZNSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base
 2.5
+ 
(optional=templinst)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag@Base
 2.5
  _ZTHN7decimal7contextE@Base 2.5
  _ZTHN7decimal7contextE@Base 2.5
  _ZTIN7decimal10ValueErrorE@Base 2.5
@@ -450,13 +450,13 @@
  _ZTIN7decimal8OverflowE@Base 2.5
  _ZTIN7decimal9SubnormalE@Base 2.5
  _ZTIN7decimal9UnderflowE@Base 2.5
- (arch=!armel !riscv64)_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 
2.5
- (arch=!armel 
!riscv64)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 2.5
- (arch=!armel 
!riscv64)_ZTISt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EE@Base
 2.5
- (arch=armel riscv64)_ZTIN9__gnu_cxx7__mutexE@Base 2.5
- (arch=armel riscv64)_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 
2.5
- (arch=armel 
riscv64)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 2.5
- (arch=armel 
riscv64)_ZTISt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE1EE@Base
 2.5
+ (optional=templinst)_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 
2.5
+ 
(optional=templinst)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base
 2.5
+ 
(optional=templinst)_ZTISt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EE@Base
 2.5
+ (optional=templinst)_ZTIN9__gnu_cxx7__mutexE@Base 2.5
+ (optional=templinst)_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 
2.5
+ 
(optional=templinst)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base
 2.5
+ 
(optional=templinst)_ZTISt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE1EE@Base
 2.5
  (arch=armhf)_ZTIZN7decimal4util9shared_cpEPKcEUlS2_E_@Base 2.5
  _ZTSN7decimal10ValueErrorE@Base 2.5
  _ZTSN7decimal11MallocErrorE@Base 2.5
@@ -474,13 +474,13 @@
  _ZTSN7decimal8OverflowE@Base 2.5
  _ZTSN7decimal9SubnormalE@Base 2.5
  _ZTSN7decimal9UnderflowE@Base 2.5
- (arch=!armel !riscv64)_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 
2.5
- (arch=!armel 
!riscv64)_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 2.5
- (arch=!armel 
!riscv64)_ZTSSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EE@Base
 2.5
- (arch=armel riscv64)_ZTSN9__gnu_cxx7__mutexE@Base 2.5
- (arch=armel riscv64)_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 
2.5
- (arch=armel 
riscv64)_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 2.5
- (arch=armel 
riscv64)_ZTSSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE1EE@Base
 2.5
+ (optional=templinst)_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 
2.5
+ 
(optional=templinst)_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base
 2.5
+ 
(optional=templinst)_ZTSSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EE@Base
 2.5
+ (optional=templinst)_ZTSN9__gnu_cxx7__mutexE@Base 2.5
+ (optional=templinst)_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 
2.5
+ 
(optional=templinst)_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base
 2.5
+ 
(optional=templinst)_ZTSSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE1EE@Base
 2.5
  _ZTSZN7decimal4util9shared_cpEPKcEUlS2_E_@Base 2.5
  _ZTVN7decimal10ValueErrorE@Base 2.5
  _ZTVN7decimal11MallocErrorE@Base 2.5
@@ -498,4 +498,4 @@
  _ZTVN7decimal8OverflowE@Base 2.5
  _ZTVN7decimal9SubnormalE@Base 2.5
  _ZTVN7decimal9UnderflowE@Base 2.5
- (arch=!armel 
!riscv64)_ZTVSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EE@Base
 2.5
+ 
(optional=templinst)_ZTVSt19_Sp_counted_deleterIPKcZN7decimal4util9shared_cpES1_EUlS1_E_SaIvELN9__gnu_cxx12_Lock_policyE2EE@Base
 2.5

Reply via email to