A diferença prática entre esses pacotes é onde as bibliotecas estão localizadas. Com libfoo:i386
, as bibliotecas acabam em caminhos multiarch como /usr/lib/i386-linux-gnu
, enquanto que com lib32foo:amd64
bibliotecas acabam nos caminhos "antigos", como /usr/lib32
. Num futuro distante, nos livraríamos de qualquer pacote lib32foo
, mas ainda não chegamos lá. Pelo menos lib32stdc++6
é necessário para construir gcc-X.Y
no momento, porque ele constrói gcc-X.Y-multilib
, que é capaz de suportar comutadores como -m32
para selecionar a arquitetura de destino (isto é, a arquitetura do binário resultante). Sem os pacotes lib32foo
, as dependências de compilação de gcc-X.Y
cruzariam os limites da arquitetura e isso ainda não é suportado. Existem mais alguns problemas que exigem manter os pacotes lib32foo
por um tempo.