On Fri, Feb 20, 2009 at 09:14:31AM +0100, Jakub Jelinek wrote: >On Fri, Feb 20, 2009 at 07:44:57AM +0100, Ralf Corsepius wrote: >> Kevin Kofler wrote: >>> Jesse Keating wrote: >>>> No, they're being made to be able to produce those for those reasons. >>>> It is yet to be seen if it will be successful, and using the x86_64 >>>> kernel on i586 installs hinges upon this functionality so I recall. >>> >>> AFAIK, Debian has been shipping i386 GCC with -m64 support for ages. The >>> drawback is that it's slower even when not using -m64 because some internal >>> types (HOST_WIDE_INT and related stuff) are larger. >> >> Not true. -m64/-32 cause gcc to switch between multilibs, when using a >> multilibbed setup. Unless something is broken somewhere, the internal >> types, library search paths etc. will be set up correctly. > >This is actually true, not false. If you support both -m32 and -m64, >you need 64-bit HOST_WIDE_INT, while i?86-linux configured gcc normally uses 32-bit >HOST_WIDE_INT. On the extremely register starved i?86 using 64-bit >HOST_WIDE_INT obviously slows things down (and increases compiler memory >requirements). > >What I'm probably going to do is just some hack in the gcc driver, if -m64 >is passed, switch to a different cc1 backend, maybe even driver (similarly >to how -V or -b switches work) and use a i586-redhat-linux -> >x86_64-redhat-linux cross-compiler in that case. >But before doing that, we'll need either a x86_64 cross binutils or i?86 >binutils supporting both i?86 and x86_64 in rawhide. I'm slightly confused as to why this hasn't already been done. IIRC, the ppc toolchain works this way already (supports both -m32 and -m64 with the same binutils), and it has for quite a while... Is the register starvation issue the only reason i586/x86_64 don't do the biarch support? josh -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list