apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances \
gcc-11 g++-11 | grep "^\w" | sort -u | xargs
(credits: How to list/download the recursive dependencies of a debian package?)
apt download binutils binutils-common binutils-x86-64-linux-gnu cdebconf cpp-11 debconf dpkg g++-11 gcc-11 \
gcc-11-base gcc-12-base libacl1 libasan6 libatomic1 libbinutils libbz2-1.0 libc-dev-bin libc6 libc6-dev libcc1-0 \
libcom-err2 libcrypt-dev libcrypt1 libctf-nobfd0 libctf0 libdebian-installer4 libgcc-11-dev libgcc-s1 libgmp10 \
libgomp1 libgprofng0 libgssapi-krb5-2 libisl23 libitm1 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 liblsan0 \
liblzma5 libmpc3 libmpfr6 libnewt0.52 libnsl-dev libnsl2 libpcre2-8-0 libquadmath0 libselinux1 libslang2 libssl3 \
libstdc++-11-dev libstdc++6 libtextwrap1 libtirpc-common libtirpc-dev libtirpc3 libtsan0 libubsan1 libzstd1 \
linux-libc-dev perl-base rpcsvc-proto tar zlib1g
$ for i in *.deb; do dpkg -x $i .; done
$ patchelf --add-needed $(realpath lib/x86_64-linux-gnu/libc.so.6) usr/bin/gcc-11
$ patchelf --set-interpreter $(realpath lib/x86_64-linux-gnu/ld-linux-x86-64.so.2) usr/bin/gcc-11
$ patchelf --add-needed $(realpath lib/x86_64-linux-gnu/libc.so.6) usr/bin/g++-11
$ patchelf --set-interpreter $(realpath lib/x86_64-linux-gnu/ld-linux-x86-64.so.2) usr/bin/g++-11
$ ln -sf ../../../../../usr/bin/as usr/lib/gcc/x86_64-linux-gnu/11
$ ln -sf ../../../../../usr/bin/ld usr/lib/gcc/x86_64-linux-gnu/11
for file in as ld cc1 cc1plus collect2 lto1 lto-wrapper; do
patchelf --add-needed $(realpath lib/x86_64-linux-gnu/libc.so.6) usr/lib/gcc/x86_64-linux-gnu/11/$file;
patchelf --set-interpreter $(realpath lib/x86_64-linux-gnu/ld-linux-x86-64.so.2) usr/lib/gcc/x86_64-linux-gnu/11/$file;
done
for file in usr/lib/gcc/x86_64-linux-gnu/11/*.so*; do
patchelf --add-needed $(realpath lib/x86_64-linux-gnu/libc.so.6) $file;
done
for file in usr/lib/x86_64-linux-gnu/*.so*; do
patchelf --add-needed $(realpath lib/x86_64-linux-gnu/libc.so.6) $file;
done