From: kaz K. <kk...@rr...> - 2000-10-28 05:06:18
|
Hi all, I'd like to report the status of new toolchain. They are stable and some weird bugs (especially in compiler) are eliminated. Now the sources of new toolchain are available, but I should explain other things first before listing up the resources. 1) There are some differences with current toolchain. New gcc and binutils are brushed up by peoples mainly in Red Hat and they changed some features of our experimental ports which are basically equal to existing ports in SourceForge. The major differences are the followings: * New gcc doesn't generate register prefix $. * New as doesn't permit register prefix. * New as doesn't need -pic option. * New ld uses in place relocation for R_SH_RELATIVE relocation in shared object. (The old ld uses addend field for it.) The last one results the binary incompatibility problem. So we prepare compatibility patches for new ld and dynamic linker in GNU libc. (These relocations appear only in shared library, fortunately :-)) The patch for new ld doesn't change the behavior of new ld but clears addend field of the relocation in problem. Then the dynamic linker can detect whether a shared library uses relocations of old type or not. Now I'm using the mixture of the old and new binaries and libraries and there is no problem. The patch for dynamic linker is included in mainline libc source already. This incompatibility makes the install of new toolchain in native system hard. I recommend that * make new binutils and gcc and install them not as system binary. (You can use --prefix option at configuration.) * make libc with new toolchain. If you get success, then install it. * make new toolchain to system binaries. for brave testers who use SH native system. But if you want to know more details, never try it :-) To be honest, I made mistakes in such process and the result was very disastrous. I think that we should prepare the binary package in SourceForge. The second deference will affects hand-crafted codes. Of course, we can give a tiny local patch which turns this difference simply (like as Niibe-san's patch) or permits $ but warning for it. 2) A few small patches are still waiting. Niibe-san and I posted a few tiny patches to new toolchain. But they are not included in mainline sources yet. 3) A native GDB support. New toolchain doesn't have any native GDB support. I have a very experimental patch for it. 4) Resources. GCC: http://gcc.gnu.org/cvs.html GNU binutils: http://sources.redhat.com/binutils/ GNU libc: http://sources.redhat.com/glibc/ GDB: http://sources.redhat.com/gdb/ Please remember these CVS resources (especially GCC) are not stable version. About local patches and a temporary native GDB support, see http://dodo.nurs.or.jp/~kkojima/gnu-on-sh/temporary-README-new-toolchain kaz |