CrossCompiling/MultiLib - Debian Wiki

On some architectures, a single toolchain supports several architectures. The most common example is x86_64-linux-gnu -m32 emitting code for i686-linux-gnu. Typically, this functionality is made available via the gcc-multilib package. For more information about multi-architecture systems, see CategoryMultiarch.

Removing gcc-multilib

As cross toolchain support improves, multilib support is supposed to be phased out. When one would use -m32 earlier, one should now use i686-linux-gnu-gcc as compiler.

Removal status

  • {X} aflplusplus

  • (!) elfutils: supposedly used for testing, but really unused

  • {X} fasm

  • {X} fis-gtm

  • /!\ gcc-11: Use will be removed when it is no longer built.

  • /!\ gcc-12: Use will be removed when it is no longer built.

  • /!\ gcc-13: Use will be removed when it is no longer built.

  • /!\ gcc-14: Use will be removed when it is no longer built.

  • /!\ gcc-15: Use will be removed when it is no longer built.

  • /!\ gcc-snapshot: Use will be removed when it is no longer built.

  • {X} gnu-efi: difficult. We'd need gcc-i686-gnu, but it's not built, cause it's not a port.

  • {X} grub2: difficult. We'd need gcc-i686-gnu`, but that's not built, cause it's not a port.

  • {X} ispc

  • {X} libnss-extrausers

  • {X} linux

  • {X} llvm-toolchain-14

  • {X} llvm-toolchain-17

  • {X} llvm-toolchain-18

  • {X} llvm-toolchain-19

  • {X} llvm-toolchain-20

  • {X} llvm-toolchain-snapshot

  • {X} memtest86+

  • {X} multiboot

  • /!\ ncurses: Builds a shared library that links libc.

  • {X} oaklisp

  • /!\ readline: Builds a shared library that links libc.

  • {X} rr: difficult. Uses CMake to build both a 64bit library and a 32bit library. Manually fiddles -m32, but has no option to replace the 32bit compiler. Doing two passes fails, because the 32bit build pass would then need libcapnp-dev:i386 but we cannot have cross-arch dependencies.

  • {X} sbsigntool

  • {X} smlnj

  • {X} snapd

  • {X} strace

  • (!) syslinux: unused dependency

  • {X} user-mode-linux

  • {X} valgrind

  • {X} virtualbox

  • (!) wraplinux: can use i686-linux-gnu-gcc

  • (!) x86info: unused dependency

  • {X} xen

  • (!) xserver-xorg-video-geode: should stop building on amd64, use xserver-xorg-video-geode:i386 via multilib instead

  • /!\ zlib: Builds a shared library that links libc.

Icons:

  • {X} TODO

  • /!\ defer

  • (!) WIP

  • (./) done


CategoryMultiarch