View previous topic :: View next topic |
Author |
Message |
adam613 n00b
Joined: 25 Jun 2003 Posts: 21 Location: The Big Apple
|
Posted: Fri Jul 18, 2003 6:16 am Post subject: 64-bit build progress |
|
|
So I haven't actually gotten any closer to making a 64-bit build, but I've learned a lot
I built cross-binutils and cross-gcc with a sparc64 target, and glibc64. When I tried to rebuild gcc as a native compiler, I realized that it requires multilib, which requires the presence of glibc32. gcc -m32 will fail unless there is a 32-bit libc installed, so I guess complete purity must be sacrified for compatibility. If I install a new glibc, it will overwrite my current glibc, so I'm going to start over.
There are four big tricks I've discovered so far:
1) You need to symlink the startfiles (crt1.o, crti.o, and crtstart.o) from $prefix/lib to $prefix/$target/lib, or ld won't find them after glibc64 is installed.
2) You need to specify CC to the glibc configure script in order to get it to use the right compiler, and you need to put $prefix/$target/bin at the beginning of your path to get it to use the right binutils.
3) the gcc specfile is your friend. More details when I figure out exactly what I did that worked But that's how you differentiate between 32-bit and 64-bit builds, and you need to hack it to build a native toolchain. There's a nice doc at http://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html#Spec%20Files. I think the key is to build both 32-bit and 64-bit toolchains, have the 64-bit gcc be the default, and use the specfile to make everything link against /lib64/* unless -m32 is specified.
4) glibc-2.3.2 requires a patch to build on sparc64. http://adamtrilling.homelinux.org/glibc-pause.patch Please don't kill my cable modem
Once I get it to work flawlessly, I'll post a commented shell script. For now, just notes. |
|
Back to top |
|
|
xming Guru
Joined: 02 Jul 2002 Posts: 441
|
|
Back to top |
|
|
adam613 n00b
Joined: 25 Jun 2003 Posts: 21 Location: The Big Apple
|
Posted: Fri Jul 18, 2003 1:54 pm Post subject: |
|
|
I had thought of that. But do we know how disabling multilib is going to affect things later? |
|
Back to top |
|
|
adam613 n00b
Joined: 25 Jun 2003 Posts: 21 Location: The Big Apple
|
Posted: Fri Jul 18, 2003 3:40 pm Post subject: |
|
|
Nope, doesn't work. libgcc.so also requires a 32-bit glibc and 32-bit startfiles, and we definitely can't live without a dynamic libgcc. So the new plan is to make a pure 64-bit system with 32-bit backward compatibility
I figured I was going to have to maintain backward compatibility anyway, just because of binary packages that are compiled in 32-bit mode.
Good thought though. |
|
Back to top |
|
|
xming Guru
Joined: 02 Jul 2002 Posts: 441
|
Posted: Fri Jul 18, 2003 7:19 pm Post subject: |
|
|
Quote: | libgcc.so also requires a 32-bit glibc and 32-bit startfiles |
I thinks this means your gcc is still a cross compiler (32 bit bin generating 64 executables)
Quote: | So the new plan is to make a pure 64-bit system with 32-bit backward compatibility |
I thought that was always the plan, basically I think pure 64-bit is easier then hybrid system
xming |
|
Back to top |
|
|
|