← Back to team overview

cross-toolchain-base-devs team mailing list archive

Bug#1100747: cross-toolchain-base: please extend mechanism to remoce conflicts to the libc*-dev*-cross packages

 

Source: cross-toolchain-base
Version: 74
Severity: normal
Tags: patch
X-Debbugs-Cc: Helmut Grohne <helmut@xxxxxxxxxx>

Hi,

This is a follow-up from the discussion from bug#1100544, which listed 3
proposal to fix the issue:

| 1. glibc should conditionally emit these Conflicts. When a particular 
|    environment variable is set by c-t-b, their emission is suppressed.
|
| 2. Someone (me?) develops a c-t-b patch that discards the conflicts in 
|    the repacking step as that also is the step that fixes 
|    coinstallability.
|
| 3. We revert those conflicts in trixie and retry with more time in 
|    forky.

It happens that 2 is already implemented for libc*-cross [1], so it is
trivial to expand it to libc*-dev*-cross:

diff -Nru cross-toolchain-base-74/debian/rules cross-toolchain-base-74+nmu1/debian/rules
--- cross-toolchain-base-74/debian/rules	2025-03-15 12:14:49.000000000 +0100
+++ cross-toolchain-base-74+nmu1/debian/rules	2025-03-17 22:04:48.000000000 +0100
@@ -946,8 +946,7 @@
 	      || echo 'Multi-Arch: foreign' >> $$tmp/DEBIAN/control; \
 	esac; \
 	case "$$pkgname" in \
-	  libc*-dev*-cross) ;; \
-	  libc*-cross) \
+	  libc*-cross | libc*-dev*-cross) \
 	    sed -i -E '/^Conflicts:/s/ libc[^,]*(,|$$)//g;/^Conflicts: *$$/d' $$tmp/DEBIAN/control; \
 	esac; \
 	newdeb=`echo $$deb|sed -e "s/\(.*\)_\(.*\)_\(.*\)/\1_\2$(CROSS_EXT)_\3/g"`; \

To me, it looks like the best option because:
- I doesn't make sense to have a different implementation to remove the
  conflicts for libc*-cross and libc*-dev*-cross.
- This has less risk of breakage than the current situation of patching
  glibc code, the patch stop being applicable for any small change on
  the glibc control file.
- cross-toolchain-base is the one mangling the files in the just produced libc* and
  libc*-dev packages to create libc*-cross and libc*-dev*-cross. As such
  it is the place where the file conflict is removed, and thus the place
  where the conflicts should be removed. In addition, there are already
  other parts of the DEBIAN/control file mangled here.

I have tested the attached patch, and I can confirm it remove the
conflicts. In addition it removes conflicts with hurd packages, which
currently do not exist, but would also not be an issue as files are in a
different location after mangling them to create the cross package.

Regards
Aurelien


[1] https://salsa.debian.org/toolchain-team/cross-toolchain-base/-/commit/4adefe059103029dc0fdb9f6fcaec62980d8d033
diff -Nru cross-toolchain-base-74/debian/changelog cross-toolchain-base-74+nmu1/debian/changelog
--- cross-toolchain-base-74/debian/changelog	2025-03-15 12:14:49.000000000 +0100
+++ cross-toolchain-base-74+nmu1/debian/changelog	2025-03-17 22:04:48.000000000 +0100
@@ -1,3 +1,12 @@
+cross-toolchain-base (74+nmu1) unstable; urgency=medium
+
+  * Don't let the libc*-dev*-cross multilib packages conflict with each other.
+  * Stop reverting:
+    * debian/control.in/*: mirror existing Conflicts: of libc6 multilib packages
+      to libc6-dev multilib packages.
+
+ -- Aurelien Jarno <aurel32@xxxxxxxxxx>  Mon, 17 Mar 2025 22:04:48 +0100
+
 cross-toolchain-base (74) unstable; urgency=medium
 
   * Build using gcc 14.2.0-18.
diff -Nru cross-toolchain-base-74/debian/patches/glibc/debian/remove-multilib-conflicts.diff cross-toolchain-base-74+nmu1/debian/patches/glibc/debian/remove-multilib-conflicts.diff
--- cross-toolchain-base-74/debian/patches/glibc/debian/remove-multilib-conflicts.diff	2025-03-15 12:14:49.000000000 +0100
+++ cross-toolchain-base-74+nmu1/debian/patches/glibc/debian/remove-multilib-conflicts.diff	1970-01-01 01:00:00.000000000 +0100
@@ -1,217 +0,0 @@
-  * Revert:
-    * debian/control.in/*: mirror existing Conflicts: of libc6 multilib packages
-      to libc6-dev multilib packages.  Closes: #1092278.
-    to be able to build cross compilers again.
-
-diff -Nru glibc-2.41/debian/control glibc-2.41/debian/control
---- glibc-2.41/debian/control	2025-02-04 17:27:16.000000000 +0100
-+++ glibc-2.41/debian/control	2025-03-15 06:07:01.000000000 +0100
-@@ -397,7 +397,6 @@
- Priority: optional
- Provides: lib32c-dev
- Depends: libc6-i386 (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64 [amd64], libc6-dev-amd64:i386 [x32], libc6-dev-i386:amd64 [x32], libc6-dev-i386:x32 [amd64], libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32 [x32], libc6-dev-x32:i386 [amd64]
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 32-bit development libraries for AMD64
-@@ -423,7 +422,6 @@
- Priority: optional
- Provides: lib32c-dev
- Depends: libc6-sparc (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 32bit Development Libraries for SPARC
-@@ -449,7 +447,6 @@
- Priority: optional
- Provides: lib64c-dev
- Depends: libc6-sparc64 (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 64bit Development Libraries for UltraSPARC
-@@ -475,7 +472,6 @@
- Priority: optional
- Provides: lib32c-dev
- Depends: libc6-s390 (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 32bit Development Libraries for IBM zSeries
-@@ -500,7 +496,6 @@
- Section: libdevel
- Priority: optional
- Depends: libc6-amd64 (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64:i386 [x32], libc6-dev-amd64:x32 [i386], libc6-dev-i386 [i386], libc6-dev-i386:amd64 [x32], libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32 [x32], libc6-dev-x32:amd64 [i386]
- Recommends: gcc-multilib
- Provides: lib64c-dev
- Build-Profiles: <!nobiarch>
-@@ -527,7 +522,6 @@
- Priority: optional
- Provides: lib32c-dev
- Depends: libc6-powerpc (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 32bit powerpc development libraries for ppc64
-@@ -553,7 +547,6 @@
- Priority: optional
- Provides: lib64c-dev
- Depends: libc6-ppc64 (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 64bit Development Libraries for PowerPC64
-@@ -582,7 +575,6 @@
-    libc6-dev-mipsn32 (= ${binary:Version}) [mips64 mips64el mips64r6 mips64r6el],
-    libc6-dev-mips64 (= ${binary:Version}) [mipsn32 mipsn32el mipsn32r6 mipsn32r6el],
-    ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32:mips64 [mips64el mips64r6 mips64r6el mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mips64el [mips64 mips64r6 mips64r6el mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mips64r6 [mips64 mips64el mips64r6el mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mips64r6el [mips64 mips64el mips64r6 mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mipsn32 [mips64 mips64el mips64r6 mips64r6el mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mipsn32el [mips64 mips64el mips64r6 mips64r6el mipsn32 mipsn32r6 mipsn32r6el], libc6-dev-mips32:mipsn32r6 [mips64 mips64el mips64r6 mips64r6el mipsn32 mipsn32el mipsn32r6el], libc6-dev-mips32:mipsn32r6el [mips64 mips64el mips64r6 mips64r6el mipsn32 mipsn32el mipsn32r6], libc6-dev-mips64 [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mips64:mips [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips64:mipsel [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips64:mipsn32 [mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips64:mipsn32el [mipsn32 mipsn32r6 mipsn32r6el], libc6-dev-mips64:mipsn32r6 [mipsn32 mipsn32el mipsn32r6el], libc6-dev-mips64:mipsn32r6el [mipsn32 mipsn32el mipsn32r6], libc6-dev-mips64:mipsr6 [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips64:mipsr6el [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mipsn32 [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mipsn32:mips [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mipsn32:mips64 [mips64el mips64r6 mips64r6el], libc6-dev-mipsn32:mips64el [mips64 mips64r6 mips64r6el], libc6-dev-mipsn32:mips64r6 [mips64 mips64el mips64r6el], libc6-dev-mipsn32:mips64r6el [mips64 mips64el mips64r6], libc6-dev-mipsn32:mipsel [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mipsn32:mipsr6 [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mipsn32:mipsr6el [mips64 mips64el mips64r6 mips64r6el], libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: o32 Development Libraries for MIPS
-@@ -608,7 +600,6 @@
- Priority: optional
- Provides: libn32c-dev
- Depends: libc6-mipsn32 (= ${binary:Version}) <!stage1>, libc6-dev-mips64 (= ${binary:Version}) [mips mipsel mipsr6 mipsr6el], libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32 [mips mipsel mipsr6 mipsr6el], libc6-dev-mips32:mips64 [mips64el mips64r6 mips64r6el], libc6-dev-mips32:mips64el [mips64 mips64r6 mips64r6el], libc6-dev-mips32:mips64r6 [mips64 mips64el mips64r6el], libc6-dev-mips32:mips64r6el [mips64 mips64el mips64r6], libc6-dev-mips32:mipsn32 [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mips32:mipsn32el [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mips32:mipsn32r6 [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mips32:mipsn32r6el [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mips64 [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mips64:mips [mipsel mipsr6 mipsr6el], libc6-dev-mips64:mipsel [mips mipsr6 mipsr6el], libc6-dev-mips64:mipsn32 [mips mipsel mipsr6 mipsr6el], libc6-dev-mips64:mipsn32el [mips mipsel mipsr6 mipsr6el], libc6-dev-mips64:mipsn32r6 [mips mipsel mipsr6 mipsr6el], libc6-dev-mips64:mipsn32r6el [mips mipsel mipsr6 mipsr6el], libc6-dev-mips64:mipsr6 [mips mipsel mipsr6el], libc6-dev-mips64:mipsr6el [mips mipsel mipsr6], libc6-dev-mipsn32:mips [mips64 mips64el mips64r6 mips64r6el mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64 [mips mips64el mips64r6 mips64r6el mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64el [mips mips64 mips64r6 mips64r6el mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64r6 [mips mips64 mips64el mips64r6el mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64r6el [mips mips64 mips64el mips64r6 mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mipsel [mips mips64 mips64el mips64r6 mips64r6el mipsr6 mipsr6el], libc6-dev-mipsn32:mipsr6 [mips mips64 mips64el mips64r6 mips64r6el mipsel mipsr6el], libc6-dev-mipsn32:mipsr6el [mips mips64 mips64el mips64r6 mips64r6el mipsel mipsr6], libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: n32 Development Libraries for MIPS64
-@@ -634,7 +625,6 @@
- Priority: optional
- Provides: lib64c-dev
- Depends: libc6-mips64 (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32 [mips mipsel mipsr6 mipsr6el], libc6-dev-mips32:mips64 [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mips64el [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mips64r6 [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mips64r6el [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mipsn32 [mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mipsn32el [mipsn32 mipsn32r6 mipsn32r6el], libc6-dev-mips32:mipsn32r6 [mipsn32 mipsn32el mipsn32r6el], libc6-dev-mips32:mipsn32r6el [mipsn32 mipsn32el mipsn32r6], libc6-dev-mips64:mips [mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el], libc6-dev-mips64:mipsel [mips mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el], libc6-dev-mips64:mipsn32 [mips mipsel mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el], libc6-dev-mips64:mipsn32el [mips mipsel mipsn32 mipsn32r6 mipsn32r6el mipsr6 mipsr6el], libc6-dev-mips64:mipsn32r6 [mips mipsel mipsn32 mipsn32el mipsn32r6el mipsr6 mipsr6el], libc6-dev-mips64:mipsn32r6el [mips mipsel mipsn32 mipsn32el mipsn32r6 mipsr6 mipsr6el], libc6-dev-mips64:mipsr6 [mips mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6el], libc6-dev-mips64:mipsr6el [mips mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6], libc6-dev-mipsn32 [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mipsn32:mips [mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64 [mips mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64el [mips mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64r6 [mips mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64r6el [mips mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mipsel [mips mipsr6 mipsr6el], libc6-dev-mipsn32:mipsr6 [mips mipsel mipsr6el], libc6-dev-mipsn32:mipsr6el [mips mipsel mipsr6], libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 64bit Development Libraries for MIPS64
-@@ -659,7 +649,6 @@
- Section: libdevel
- Priority: optional
- Depends: libc6-x32 (= ${binary:Version}) <!stage1>, libc6-dev-i386 (= ${binary:Version}) [amd64], libc6-dev-amd64 (= ${binary:Version}) [i386], libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64 [amd64], libc6-dev-amd64:x32 [i386], libc6-dev-i386 [i386], libc6-dev-i386:x32 [amd64], libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32:amd64 [i386], libc6-dev-x32:i386 [amd64]
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: X32 ABI Development Libraries for AMD64
-diff -Nru glibc-2.41/debian/control.in/amd64 glibc-2.41/debian/control.in/amd64
---- glibc-2.41/debian/control.in/amd64	2025-02-04 15:07:48.000000000 +0100
-+++ glibc-2.41/debian/control.in/amd64	2025-03-15 06:07:01.000000000 +0100
-@@ -15,7 +15,6 @@
- Section: libdevel
- Priority: optional
- Depends: libc6-amd64 (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64:i386 [x32], libc6-dev-amd64:x32 [i386], libc6-dev-i386 [i386], libc6-dev-i386:amd64 [x32], libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32 [x32], libc6-dev-x32:amd64 [i386]
- Recommends: gcc-multilib
- Provides: lib64c-dev
- Build-Profiles: <!nobiarch>
-diff -Nru glibc-2.41/debian/control.in/i386 glibc-2.41/debian/control.in/i386
---- glibc-2.41/debian/control.in/i386	2025-02-04 15:07:48.000000000 +0100
-+++ glibc-2.41/debian/control.in/i386	2025-03-15 06:07:01.000000000 +0100
-@@ -17,7 +17,6 @@
- Priority: optional
- Provides: lib32c-dev
- Depends: libc6-i386 (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64 [amd64], libc6-dev-amd64:i386 [x32], libc6-dev-i386:amd64 [x32], libc6-dev-i386:x32 [amd64], libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32 [x32], libc6-dev-x32:i386 [amd64]
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 32-bit development libraries for AMD64
-diff -Nru glibc-2.41/debian/control.in/mips32 glibc-2.41/debian/control.in/mips32
---- glibc-2.41/debian/control.in/mips32	2025-02-04 15:07:48.000000000 +0100
-+++ glibc-2.41/debian/control.in/mips32	2025-03-15 06:07:01.000000000 +0100
-@@ -19,7 +19,6 @@
-    libc6-dev-mipsn32 (= ${binary:Version}) [mips64 mips64el mips64r6 mips64r6el],
-    libc6-dev-mips64 (= ${binary:Version}) [mipsn32 mipsn32el mipsn32r6 mipsn32r6el],
-    ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32:mips64 [mips64el mips64r6 mips64r6el mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mips64el [mips64 mips64r6 mips64r6el mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mips64r6 [mips64 mips64el mips64r6el mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mips64r6el [mips64 mips64el mips64r6 mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mipsn32 [mips64 mips64el mips64r6 mips64r6el mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mipsn32el [mips64 mips64el mips64r6 mips64r6el mipsn32 mipsn32r6 mipsn32r6el], libc6-dev-mips32:mipsn32r6 [mips64 mips64el mips64r6 mips64r6el mipsn32 mipsn32el mipsn32r6el], libc6-dev-mips32:mipsn32r6el [mips64 mips64el mips64r6 mips64r6el mipsn32 mipsn32el mipsn32r6], libc6-dev-mips64 [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mips64:mips [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips64:mipsel [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips64:mipsn32 [mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips64:mipsn32el [mipsn32 mipsn32r6 mipsn32r6el], libc6-dev-mips64:mipsn32r6 [mipsn32 mipsn32el mipsn32r6el], libc6-dev-mips64:mipsn32r6el [mipsn32 mipsn32el mipsn32r6], libc6-dev-mips64:mipsr6 [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips64:mipsr6el [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mipsn32 [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mipsn32:mips [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mipsn32:mips64 [mips64el mips64r6 mips64r6el], libc6-dev-mipsn32:mips64el [mips64 mips64r6 mips64r6el], libc6-dev-mipsn32:mips64r6 [mips64 mips64el mips64r6el], libc6-dev-mipsn32:mips64r6el [mips64 mips64el mips64r6], libc6-dev-mipsn32:mipsel [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mipsn32:mipsr6 [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mipsn32:mipsr6el [mips64 mips64el mips64r6 mips64r6el], libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: o32 Development Libraries for MIPS
-diff -Nru glibc-2.41/debian/control.in/mips64 glibc-2.41/debian/control.in/mips64
---- glibc-2.41/debian/control.in/mips64	2025-02-04 15:07:48.000000000 +0100
-+++ glibc-2.41/debian/control.in/mips64	2025-03-15 06:07:01.000000000 +0100
-@@ -16,7 +16,6 @@
- Priority: optional
- Provides: lib64c-dev
- Depends: libc6-mips64 (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32 [mips mipsel mipsr6 mipsr6el], libc6-dev-mips32:mips64 [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mips64el [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mips64r6 [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mips64r6el [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mipsn32 [mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mips32:mipsn32el [mipsn32 mipsn32r6 mipsn32r6el], libc6-dev-mips32:mipsn32r6 [mipsn32 mipsn32el mipsn32r6el], libc6-dev-mips32:mipsn32r6el [mipsn32 mipsn32el mipsn32r6], libc6-dev-mips64:mips [mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el], libc6-dev-mips64:mipsel [mips mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el], libc6-dev-mips64:mipsn32 [mips mipsel mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el], libc6-dev-mips64:mipsn32el [mips mipsel mipsn32 mipsn32r6 mipsn32r6el mipsr6 mipsr6el], libc6-dev-mips64:mipsn32r6 [mips mipsel mipsn32 mipsn32el mipsn32r6el mipsr6 mipsr6el], libc6-dev-mips64:mipsn32r6el [mips mipsel mipsn32 mipsn32el mipsn32r6 mipsr6 mipsr6el], libc6-dev-mips64:mipsr6 [mips mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6el], libc6-dev-mips64:mipsr6el [mips mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6], libc6-dev-mipsn32 [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], libc6-dev-mipsn32:mips [mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64 [mips mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64el [mips mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64r6 [mips mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64r6el [mips mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mipsel [mips mipsr6 mipsr6el], libc6-dev-mipsn32:mipsr6 [mips mipsel mipsr6el], libc6-dev-mipsn32:mipsr6el [mips mipsel mipsr6], libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 64bit Development Libraries for MIPS64
-diff -Nru glibc-2.41/debian/control.in/mipsn32 glibc-2.41/debian/control.in/mipsn32
---- glibc-2.41/debian/control.in/mipsn32	2025-02-04 15:07:48.000000000 +0100
-+++ glibc-2.41/debian/control.in/mipsn32	2025-03-15 06:07:01.000000000 +0100
-@@ -16,7 +16,6 @@
- Priority: optional
- Provides: libn32c-dev
- Depends: libc6-mipsn32 (= ${binary:Version}) <!stage1>, libc6-dev-mips64 (= ${binary:Version}) [mips mipsel mipsr6 mipsr6el], libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32 [mips mipsel mipsr6 mipsr6el], libc6-dev-mips32:mips64 [mips64el mips64r6 mips64r6el], libc6-dev-mips32:mips64el [mips64 mips64r6 mips64r6el], libc6-dev-mips32:mips64r6 [mips64 mips64el mips64r6el], libc6-dev-mips32:mips64r6el [mips64 mips64el mips64r6], libc6-dev-mips32:mipsn32 [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mips32:mipsn32el [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mips32:mipsn32r6 [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mips32:mipsn32r6el [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mips64 [mips64 mips64el mips64r6 mips64r6el], libc6-dev-mips64:mips [mipsel mipsr6 mipsr6el], libc6-dev-mips64:mipsel [mips mipsr6 mipsr6el], libc6-dev-mips64:mipsn32 [mips mipsel mipsr6 mipsr6el], libc6-dev-mips64:mipsn32el [mips mipsel mipsr6 mipsr6el], libc6-dev-mips64:mipsn32r6 [mips mipsel mipsr6 mipsr6el], libc6-dev-mips64:mipsn32r6el [mips mipsel mipsr6 mipsr6el], libc6-dev-mips64:mipsr6 [mips mipsel mipsr6el], libc6-dev-mips64:mipsr6el [mips mipsel mipsr6], libc6-dev-mipsn32:mips [mips64 mips64el mips64r6 mips64r6el mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64 [mips mips64el mips64r6 mips64r6el mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64el [mips mips64 mips64r6 mips64r6el mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64r6 [mips mips64 mips64el mips64r6el mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mips64r6el [mips mips64 mips64el mips64r6 mipsel mipsr6 mipsr6el], libc6-dev-mipsn32:mipsel [mips mips64 mips64el mips64r6 mips64r6el mipsr6 mipsr6el], libc6-dev-mipsn32:mipsr6 [mips mips64 mips64el mips64r6 mips64r6el mipsel mipsr6el], libc6-dev-mipsn32:mipsr6el [mips mips64 mips64el mips64r6 mips64r6el mipsel mipsr6], libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: n32 Development Libraries for MIPS64
-diff -Nru glibc-2.41/debian/control.in/powerpc glibc-2.41/debian/control.in/powerpc
---- glibc-2.41/debian/control.in/powerpc	2025-02-04 15:07:48.000000000 +0100
-+++ glibc-2.41/debian/control.in/powerpc	2025-03-15 06:07:01.000000000 +0100
-@@ -16,7 +16,6 @@
- Priority: optional
- Provides: lib32c-dev
- Depends: libc6-powerpc (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 32bit powerpc development libraries for ppc64
-diff -Nru glibc-2.41/debian/control.in/ppc64 glibc-2.41/debian/control.in/ppc64
---- glibc-2.41/debian/control.in/ppc64	2025-02-04 15:07:48.000000000 +0100
-+++ glibc-2.41/debian/control.in/ppc64	2025-03-15 06:07:01.000000000 +0100
-@@ -16,7 +16,6 @@
- Priority: optional
- Provides: lib64c-dev
- Depends: libc6-ppc64 (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 64bit Development Libraries for PowerPC64
-diff -Nru glibc-2.41/debian/control.in/s390 glibc-2.41/debian/control.in/s390
---- glibc-2.41/debian/control.in/s390	2025-02-04 15:07:48.000000000 +0100
-+++ glibc-2.41/debian/control.in/s390	2025-03-15 06:07:01.000000000 +0100
-@@ -16,7 +16,6 @@
- Priority: optional
- Provides: lib32c-dev
- Depends: libc6-s390 (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 32bit Development Libraries for IBM zSeries
-diff -Nru glibc-2.41/debian/control.in/sparc glibc-2.41/debian/control.in/sparc
---- glibc-2.41/debian/control.in/sparc	2025-02-04 15:07:48.000000000 +0100
-+++ glibc-2.41/debian/control.in/sparc	2025-03-15 06:07:01.000000000 +0100
-@@ -16,7 +16,6 @@
- Priority: optional
- Provides: lib32c-dev
- Depends: libc6-sparc (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc64, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 32bit Development Libraries for SPARC
-diff -Nru glibc-2.41/debian/control.in/sparc64 glibc-2.41/debian/control.in/sparc64
---- glibc-2.41/debian/control.in/sparc64	2025-02-04 15:07:48.000000000 +0100
-+++ glibc-2.41/debian/control.in/sparc64	2025-03-15 06:07:01.000000000 +0100
-@@ -16,7 +16,6 @@
- Priority: optional
- Provides: lib64c-dev
- Depends: libc6-sparc64 (= ${binary:Version}) <!stage1>, libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64, libc6-dev-i386, libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-x32
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: 64bit Development Libraries for UltraSPARC
-diff -Nru glibc-2.41/debian/control.in/x32 glibc-2.41/debian/control.in/x32
---- glibc-2.41/debian/control.in/x32	2025-02-04 15:07:48.000000000 +0100
-+++ glibc-2.41/debian/control.in/x32	2025-03-15 06:07:01.000000000 +0100
-@@ -15,7 +15,6 @@
- Section: libdevel
- Priority: optional
- Depends: libc6-x32 (= ${binary:Version}) <!stage1>, libc6-dev-i386 (= ${binary:Version}) [amd64], libc6-dev-amd64 (= ${binary:Version}) [i386], libc6-dev (= ${binary:Version}), ${misc:Depends}
--Conflicts: libc6-dev-amd64 [amd64], libc6-dev-amd64:x32 [i386], libc6-dev-i386 [i386], libc6-dev-i386:x32 [amd64], libc6-dev-mips32, libc6-dev-mips64, libc6-dev-mipsn32, libc6-dev-powerpc, libc6-dev-ppc64, libc6-dev-s390, libc6-dev-sparc, libc6-dev-sparc64, libc6-dev-x32:amd64 [i386], libc6-dev-x32:i386 [amd64]
- Recommends: gcc-multilib
- Build-Profiles: <!nobiarch>
- Description: GNU C Library: X32 ABI Development Libraries for AMD64
diff -Nru cross-toolchain-base-74/debian/patches/glibc/debian/series cross-toolchain-base-74+nmu1/debian/patches/glibc/debian/series
--- cross-toolchain-base-74/debian/patches/glibc/debian/series	2025-03-15 12:14:49.000000000 +0100
+++ cross-toolchain-base-74+nmu1/debian/patches/glibc/debian/series	2025-03-17 22:04:48.000000000 +0100
@@ -2,4 +2,3 @@
 local-kill-locales.patch
 glibc-build-tools.diff
 no-libaudit.diff
-remove-multilib-conflicts.diff
diff -Nru cross-toolchain-base-74/debian/rules cross-toolchain-base-74+nmu1/debian/rules
--- cross-toolchain-base-74/debian/rules	2025-03-15 12:14:49.000000000 +0100
+++ cross-toolchain-base-74+nmu1/debian/rules	2025-03-17 22:04:48.000000000 +0100
@@ -946,8 +946,7 @@
 	      || echo 'Multi-Arch: foreign' >> $$tmp/DEBIAN/control; \
 	esac; \
 	case "$$pkgname" in \
-	  libc*-dev*-cross) ;; \
-	  libc*-cross) \
+	  libc*-cross | libc*-dev*-cross) \
 	    sed -i -E '/^Conflicts:/s/ libc[^,]*(,|$$)//g;/^Conflicts: *$$/d' $$tmp/DEBIAN/control; \
 	esac; \
 	newdeb=`echo $$deb|sed -e "s/\(.*\)_\(.*\)_\(.*\)/\1_\2$(CROSS_EXT)_\3/g"`; \