Hello, Gage Morgan, on Mon 23 May 2016 12:30:40 +0000, wrote: > I'm looking to help compile for 64-bit processors
> I'm writing in to see what the first objective would be for me to commit to. > I > am not hostile, so do not pull out your flamethrowers just yet. :-) The kernel part already has some work done, for the Xen support only however. Adding support for booting from grub would already be useful. Then there are several things to do, in order: - add 64bit configuration parts in binutils. Helmut Grohne gave a stab with the attached patch, but it probably needs much more care, checking the difference between linux and hurd in the 32bit case, and doing the same differences for the 64bit case. - add 64bit configuration parts in gcc. I haven't had any look at this. - add 64bit support to glibc. That happens in glibc/sysdeps/mach/i386, glibc/sysdeps/mach/hurd/i386, glibc/libpthread/sysdeps/i386, glibc/libpthread/sysdeps/mach/i386, glibc/libpthread/mach/hurd/i386. That's where most of the hairy stuff lies. - fix RPC interfaces. Synchronize with Flavio Cruz, he is working on reworking mig to make interfaces much nicer, allowing much better definitions for the 64bit case. - Add an amd64 variants for hurd/pfinet/linux-src/arch/i386/lib/checksum.S and hurd/pfinet/linux-src/include/asm-i386. AFAICT that's basically the only non-portable part of the hurd translators. And then it's a matter of bootstrapping the Debian distrib by using Helmut Grohne's bootstrap.sh, or by using Guix. Samuel
--- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -671,7 +671,7 @@ targ_selvecs="i386_elf32_vec i386_aout_nbsd_vec i386_coff_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" want64=true ;; - x86_64-*-linux-*) + x86_64-*-linux-* | x86_64-*-gnu*) targ_defvec=x86_64_elf64_vec targ_selvecs="i386_elf32_vec x86_64_elf32_vec i386_aout_linux_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" want64=true --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -311,6 +311,7 @@ i[3-7]86-*-mach*) targ_emul=i386mach ;; i[3-7]86-*-gnu*) targ_emul=elf_i386 targ_extra_emuls=elf_iamcu ;; +x86_64-*-gnu*) targ_emul=elf_x86_64 ;; i[3-7]86-*-msdos*) targ_emul=i386msdos; targ_extra_emuls=i386aout ;; i[3-7]86-*-moss*) targ_emul=i386moss; targ_extra_emuls=i386msdos ;; i[3-7]86-*-winnt*) targ_emul=i386pe ;