In trunk revision 144629 there is a large size discrepancy of _installed_ gcc depending on first part of triplet when building Multi-lib which is neither explained by size of executables nor differencing of the directories.
To reproduce (on Debian Lenny 5.0): 1. Boot 32-Bit using Grub entry "Debian GNU/Linux, kernel 2.6.xx-i386": 2. Configure and build gcc like this: # gcc/xgcc -v Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../gcc_trunk/configure --prefix=/mnt/drive2/gcc_installed --enable-languages=c,ada,c++,fortran,java,objc,obj-c++ --enable-multilib --disable-stage1-checking --enable-checking=release --with-gmp=/usr/local --with-mpfr=/usr/local 3. Boot 64-Bit using Grub entry "Debian GNU/Linux, kernel 2.6.xx-amd64": 4. Configure and build gcc like this: # gcc/xgcc -v Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../gcc_trunk/configure --prefix=/mnt/drive2/gcc_installed_64 --enable-languages=c,ada,c++,fortran,java,objc,obj-c++ --enable-multilib --disable-stage1-checking --enable-checking=release --with-gmp=/usr/local --with-mpfr=/usr/local 5. Note that only the "--prefix" (and Boot Mode) is changed. Now check the sizes on the installed directories, see a BIG difference: # du -ah /mnt/drive2/gcc_build/ | tail -1 2.4G # du -ah /mnt/drive2/gcc_installed/ | tail -1 541M # du -ah /mnt/drive2/gcc_build_64/ | tail -1 3.9G /mnt/drive2/gcc_build_64/ # du -ah /mnt/drive2/gcc_installed_64/ | tail -1 931M /mnt/drive2/gcc_installed_64/ 6. Check why the installed sizes are so different: # find /mnt/drive2/gcc_installed/ | sort > list_gcc_installed.txt # find /mnt/drive2/gcc_installed_64/ | sort > list_gcc_installed_64.txt # diff -Naur list_gcc_installed.txt list_gcc_installed_64.txt > list_gcc_installed_32vs64.txt 7. Now use Gedit (or other editor) to match up the directories and check why the sizes are so different. It seems that even though we use "--enable-multilib" we do not build the same alternate libraries in both Modes, we are lazier in the 32-Bit Mode. 8. The result is this: When we build gcc, with the OS in the 64-Bit Boot Mode, we also build a couple of "32" directories (but not others that maybe we should build). When we build gcc, with the OS in the 32-Bit Boot Mode, we fail to build some "64" directories and this results in an incomplete "Multilib-version" of gcc. I am not confused that a few more features are available in one Boot Mode or the other, nor that the size of the executables are going to be different, this has been taken into consideration. I examined the 'diffs' and see that we are building a "x86_64-pc-linux-gnu/32/bits" directory but no corresponding "i686-pc-linux-gnu/64/bits" directory. I examined the 'diffs' and see that we are building a "x86_64-pc-linux-gnu/4.4.0/32" directory but no corresponding "i686-pc-linux-gnu/4.4.0/32" directory. The "x86_64-pc-linux-gnu/4.4.0/32/" directory ONLY contains: "x86_64-pc-linux-gnu/4.4.0/32/adainclude/*" "x86_64-pc-linux-gnu/4.4.0/32/adalib/*" "x86_64-pc-linux-gnu/4.4.0/32/crt*" and these _few_ files: "x86_64-pc-linux-gnu/4.4.0/32/libgcc.a" "x86_64-pc-linux-gnu/4.4.0/32/libgcc_eh.a" "x86_64-pc-linux-gnu/4.4.0/32/libgcov.a" "x86_64-pc-linux-gnu/4.4.0/32/libgfortranbegin.a" "x86_64-pc-linux-gnu/4.4.0/32/libgfortranbegin.la" where are the rest (of the libraries and alternate directories) for the multilibs on Platform "i686-pc-linux-gnu" ? See the attachment. Rob -- Summary: trunk revision 144629 - Multilibs missing Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rob1weld at aol dot com GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39388