[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1042482: multilib lsan packages: dysfunctional?



Control: tags -1 + patch

Hi Matthias,

On Sun, Jul 30, 2023 at 07:10:09AM +0200, Matthias Klose wrote:
> see src/libsanitizer/configure.tgt, it's unsupported, the empty packages
> don't hurt. Feel free to send a patch not to build these packages, tested
> please for amd64 and i386 builds, plus cross builds targeting these
> architectures.

Thank you for pointing there. A key insight there is that lsan does not
work for 32bit architectures at all. Therefore, we can entirely remove
the 32bit lsan multilib packages. Surprisingly, the lib64lsan0 package
is already commented, so we don't have to consider that. I've
implemented the requested change and performed a local native build on
amd64. I've also performed the requested i386 build (though lintian
OOMed there). I've not performed cross builds since we know that those
are broken.

Do you need any artifacts? .debs? build logs? I think the patch is
pretty straight forward.

Helmut
--- gcc-13-13.1.0/debian/changelog
+++ gcc-13-13.1.0/debian/changelog
@@ -1,3 +1,10 @@
+gcc-13 (13.1.0-9.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Delete 32bit liblsan packages. (Closes: #1042482)
+
+ -- Helmut Grohne <helmut@subdivi.de>  Sun, 30 Jul 2023 10:49:50 +0200
+
 gcc-13 (13.1.0-9) unstable; urgency=medium
 
   * Update to git 20230720 from the gcc-13 branch (13.2 release candidate).
--- gcc-13-13.1.0/debian/control
+++ gcc-13-13.1.0/debian/control
@@ -596,17 +596,6 @@
  LeakSanitizer (Lsan) is a memory leak detector which is integrated
  into AddressSanitizer.
 
-Package: lib32lsan0
-X-DH-Build-For-Type: target
-Section: libs
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
-Priority: optional
-Depends: gcc-13-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
-Conflicts: ${confl:lib32}
-Description: LeakSanitizer -- a memory leak detector (32bit)
- LeakSanitizer (Lsan) is a memory leak detector which is integrated
- into AddressSanitizer (empty package).
-
 #Package: lib64lsan`'LSAN_SO`'LS
 #Section: ifdef(`TARGET',`devel',`libs')
 #Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs')
@@ -617,26 +606,6 @@
 # LeakSanitizer (Lsan) is a memory leak detector which is integrated
 # into AddressSanitizer.
 
-#Package: libn32lsan`'LSAN_SO`'LS
-#Section: ifdef(`TARGET',`devel',`libs')
-#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs')
-#Priority: optional
-#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
-#BUILT_USING`'dnl
-#Description: LeakSanitizer -- a memory leak detector (n32)
-# LeakSanitizer (Lsan) is a memory leak detector which is integrated
-# into AddressSanitizer.
-
-Package: libx32lsan0
-X-DH-Build-For-Type: target
-Section: libs
-Architecture: amd64 i386
-Priority: optional
-Depends: gcc-13-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
-Description: LeakSanitizer -- a memory leak detector (x32)
- LeakSanitizer (Lsan) is a memory leak detector which is integrated
- into AddressSanitizer (empty package).
-
 Package: libtsan2
 X-DH-Build-For-Type: target
 Section: libs
--- gcc-13-13.1.0/debian/control.m4
+++ gcc-13-13.1.0/debian/control.m4
@@ -2094,33 +2094,6 @@
  into AddressSanitizer.
 ')`'dnl libdbg
 
-ifenabled(`lib32lsan',`
-Package: lib32lsan`'LSAN_SO`'LS
-TARGET_PACKAGE`'dnl
-Section: ifdef(`TARGET',`devel',`libs')
-Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs')
-Priority: optional
-Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
-Conflicts: ${confl:lib32}
-BUILT_USING`'dnl
-Description: LeakSanitizer -- a memory leak detector (32bit)
- LeakSanitizer (Lsan) is a memory leak detector which is integrated
- into AddressSanitizer (empty package).
-
-ifenabled(`libdbg',`
-Package: lib32lsan`'LSAN_SO-dbg`'LS
-TARGET_PACKAGE`'dnl
-Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs')
-Section: debug
-Priority: optional
-Depends: BASELDEP, libdep(lsan`'LSAN_SO,32,=), ${misc:Depends}
-BUILT_USING`'dnl
-Description: LeakSanitizer -- a memory leak detector (32 bit debug symbols)
- LeakSanitizer (Lsan) is a memory leak detector which is integrated
- into AddressSanitizer (empty package).
-')`'dnl libdbg
-')`'dnl lib32lsan
-
 ifenabled(`lib64lsan',`
 #Package: lib64lsan`'LSAN_SO`'LS
 #Section: ifdef(`TARGET',`devel',`libs')
@@ -2144,110 +2117,6 @@
 # into AddressSanitizer.
 ')`'dnl libdbg
 ')`'dnl lib64lsan
-
-ifenabled(`libn32lsan',`
-#Package: libn32lsan`'LSAN_SO`'LS
-#Section: ifdef(`TARGET',`devel',`libs')
-#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs')
-#Priority: optional
-#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
-#BUILT_USING`'dnl
-#Description: LeakSanitizer -- a memory leak detector (n32)
-# LeakSanitizer (Lsan) is a memory leak detector which is integrated
-# into AddressSanitizer.
-
-ifenabled(`libdbg',`
-#Package: libn32lsan`'LSAN_SO-dbg`'LS
-#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs')
-#Section: debug
-#Priority: optional
-#Depends: BASELDEP, libdep(lsan`'LSAN_SO,n32,=), ${misc:Depends}
-#BUILT_USING`'dnl
-#Description: LeakSanitizer -- a memory leak detector (n32 debug symbols)
-# LeakSanitizer (Lsan) is a memory leak detector which is integrated
-# into AddressSanitizer.
-')`'dnl libdbg
-')`'dnl libn32lsan
-
-ifenabled(`libx32lsan',`
-Package: libx32lsan`'LSAN_SO`'LS
-TARGET_PACKAGE`'dnl
-Section: ifdef(`TARGET',`devel',`libs')
-Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs')
-Priority: optional
-Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
-BUILT_USING`'dnl
-Description: LeakSanitizer -- a memory leak detector (x32)
- LeakSanitizer (Lsan) is a memory leak detector which is integrated
- into AddressSanitizer (empty package).
-
-ifenabled(`libdbg',`
-Package: libx32lsan`'LSAN_SO-dbg`'LS
-TARGET_PACKAGE`'dnl
-Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs')
-Section: debug
-Priority: optional
-Depends: BASELDEP, libdep(lsan`'LSAN_SO,x32,=), ${misc:Depends}
-BUILT_USING`'dnl
-Description: LeakSanitizer -- a memory leak detector (x32 debug symbols)
- LeakSanitizer (Lsan) is a memory leak detector which is integrated
- into AddressSanitizer (empty package).
-')`'dnl libdbg
-')`'dnl libx32lsan
-
-ifenabled(`libhflsan',`
-Package: libhflsan`'LSAN_SO`'LS
-TARGET_PACKAGE`'dnl
-Section: ifdef(`TARGET',`devel',`libs')
-Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs')
-Priority: optional
-Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
-ifdef(`TARGET',`dnl',`Conflicts: liblsan'LSAN_SO`-armhf [biarchhf_archs]')
-BUILT_USING`'dnl
-Description: LeakSanitizer -- a memory leak detector (hard float ABI)
- LeakSanitizer (Lsan) is a memory leak detector which is integrated
- into AddressSanitizer.
-
-ifenabled(`libdbg',`
-Package: libhflsan`'LSAN_SO-dbg`'LS
-TARGET_PACKAGE`'dnl
-Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs')
-Section: debug
-Priority: optional
-Depends: BASELDEP, libdep(lsan`'LSAN_SO,hf,=), ${misc:Depends}
-ifdef(`TARGET',`dnl',`Conflicts: liblsan'LSAN_SO`-armel [biarchsf_archs]')
-BUILT_USING`'dnl
-Description: LeakSanitizer -- a memory leak detector (hard float ABI debug symbols)
- LeakSanitizer (Lsan) is a memory leak detector which is integrated
- into AddressSanitizer.
-')`'dnl libdbg
-')`'dnl libhflsan
-
-ifenabled(`libsflsan',`
-Package: libsflsan`'LSAN_SO`'LS
-TARGET_PACKAGE`'dnl
-Section: ifdef(`TARGET',`devel',`libs')
-Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs')
-Priority: optional
-Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
-BUILT_USING`'dnl
-Description: LeakSanitizer -- a memory leak detector (soft float ABI)
- LeakSanitizer (Lsan) is a memory leak detector which is integrated
- into AddressSanitizer.
-
-ifenabled(`libdbg',`
-Package: libsflsan`'LSAN_SO-dbg`'LS
-TARGET_PACKAGE`'dnl
-Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs')
-Section: debug
-Priority: optional
-Depends: BASELDEP, libdep(lsan`'LSAN_SO,sf,=), ${misc:Depends}
-BUILT_USING`'dnl
-Description: LeakSanitizer -- a memory leak detector (soft float ABI debug symbols)
- LeakSanitizer (Lsan) is a memory leak detector which is integrated
- into AddressSanitizer.
-')`'dnl libdbg
-')`'dnl libsflsan
 ')`'dnl liblsan
 
 ifenabled(`libtsan',`
--- gcc-13-13.1.0/debian/rules.conf
+++ gcc-13-13.1.0/debian/rules.conf
@@ -869,10 +869,7 @@
   addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfasan)
 endif
 ifeq ($(with_liblsan),yes)
-  addons += liblsan lib32lsan lib64lsan libn32lsan
-  addons += $(if $(findstring amd64,$(biarchx32archs)),libx32lsan)
-  #addons += $(if $(findstring armel,$(biarchhfarchs)),libhflsan)
-  #addons += $(if $(findstring armhf,$(biarchsfarchs)),libsflsan)
+  addons += liblsan lib64lsan
 endif
 ifeq ($(with_libtsan),yes)
   addons += libtsan
--- gcc-13-13.1.0/debian/rules.d/binary-liblsan.mk
+++ gcc-13-13.1.0/debian/rules.d/binary-liblsan.mk
@@ -2,21 +2,6 @@
 ifeq ($(with_lib64lsan),yes)
   $(lib_binaries)  += lib64lsan
 endif
-ifeq ($(with_lib32lsan),yes)
-  $(lib_binaries)	+= lib32lsan
-endif
-ifeq ($(with_libn32lsan),yes)
-  $(lib_binaries)	+= libn32lsan
-endif
-ifeq ($(with_libx32lsan),yes)
-  $(lib_binaries)	+= libx32lsan
-endif
-ifeq ($(with_libhflsan),yes)
-  $(lib_binaries)	+= libhflsan
-endif
-ifeq ($(with_libsflsan),yes)
-  $(lib_binaries)	+= libsflsan
-endif
 
 define __do_lsan
 	dh_testdir
@@ -59,18 +44,3 @@
 
 $(binary_stamp)-lib64lsan: $(install_stamp)
 	$(call do_lsan,64)
-
-$(binary_stamp)-lib32lsan: $(install_stamp)
-	$(call do_lsan,32)
-
-$(binary_stamp)-libn32lsan: $(install_stamp)
-	$(call do_lsan,n32)
-
-$(binary_stamp)-libx32lsan: $(install_stamp)
-	$(call do_lsan,x32)
-
-$(binary_stamp)-libhflsan: $(install_dependencies)
-	$(call do_lsan,hf)
-
-$(binary_stamp)-libsflsan: $(install_dependencies)
-	$(call do_lsan,sf)
--- gcc-13-13.1.0/debian/rules.defs
+++ gcc-13-13.1.0/debian/rules.defs
@@ -1962,7 +1962,6 @@
   with_lib32atomic	:= no
   with_lib32backtrace	:= no
   with_lib32asan	:= no
-  with_lib32lsan	:= no
   with_lib32tsan	:= no
   with_lib32ubsan	:= no
   with_lib32hwasan	:= no
@@ -1987,7 +1986,6 @@
   with_libn32atomic	:= no
   with_libn32backtrace	:= no
   with_libn32asan	:= no
-  with_libn32lsan	:= no
   with_libn32tsan	:= no
   with_libn32ubsan	:= no
   with_libn32hwasan	:= no
@@ -2011,7 +2009,6 @@
   with_libx32atomic	:= no
   with_libx32backtrace	:= no
   with_libx32asan	:= no
-  with_libx32lsan	:= no
   with_libx32tsan	:= no
   with_libx32ubsan	:= no
   with_libx32hwasan	:= no
@@ -2036,7 +2033,6 @@
   with_libhfatomic	:= no
   with_libhfbacktrace	:= no
   with_libhfasan	:= no
-  with_libhflsan	:= no
   with_libhftsan	:= no
   with_libhfubsan	:= no
   with_libhfhwasan	:= no
@@ -2060,7 +2056,6 @@
   with_libsfatomic	:= no
   with_libsfbacktrace	:= no
   with_libsfasan	:= no
-  with_libsflsan	:= no
   with_libsftsan	:= no
   with_libsfubsan	:= no
   with_libsfhwasan	:= no

Reply to: