Hi all. If there's a faq or other docs that can guide me in this please just point them out. I've read the GCC install.info and searched the web but come up empty. I've been trying with binutils 2.21, and GCC 4.4.6 and 4.5.2. I'd like to create a 32bit version of GCC (+ binutils) that can compile for both 32bit and 64bit output. I know this can be done as I've seen it done before, but I need to build my own and I just can't come up with the right magic. I am using --enable-targets=all to configure. I've tried building on a 32bit system with --target=x86_64-pc-linux-gnu, I've tried building on a 32bit system without setting a --target. I've tried building on a 64bit system with --build and --host set to i686-pc-linux-gnu, both with and without setting --target. And various other combinations. When compiling GCC, I am using --sysroot to build it to run on a much older version of Linux than I have. That can be leading to my problems of course, but the alternatives are not lovely (create a VM or something I suppose). In all cases, something fails to compile properly: libgcc won't link, or libssp throws a fit, or something (I would like to have libssp support if possible). I can and will go into details but I've tried so many things, I'm wondering if someone can narrow down the alternatives for me and I can focus on the "right" way to proceed then ask questions about just that when I hit problems. Can I build a 32/64bit compiler on a 32bit version of Linux? Do I need to make a cross-compiler (set --build and --host)? Do I need to set --target? Or does the --enable-targets=all take care of this? Or, do I need to build GCC on a 64bit version of Linux? If so, how do I get a 32bit binary out of that? Do I need to set --build and --host for this? What would --target be here... i686-pc-linux-gnu?