This is the public release of binutils 2.7.0.9 for Linux, which is based on the binutils snapshot 970202 plus bug fixes and improved support for Linux/MIPS/Sparc. You also need libc 5.4.23 to use the precompiled binaries. gcc 2.7.2 or above is also required. This release is not from the FSF nor Cygnus. It is for Linux only. Please report any bugs related to binutils 2.7.0.9 to hjl@gnu.ai.mit.edu. I was informed that the Linux/MIPs support was not working properly. You are more than welcome to test/fix it. Changes from binutils 2.7.0.3: 1. Added supports for Linux/MIPS and Linux/Sparc. 2. Add machine type checking for Linuxaout/x86, Linuxaout/m68k and Linuxaout/Sparc. 3. Intel MMX instructions are added. 4. Signed branch offsets for Intel x86 are fixed. 5. Better support for Linux/Alpha. Maybe needed by glibc 2. Warning for Linuux/Alpha! The new linker exposed a bug in the old assembler affecting all local symbol relocations. You *must* recompile libgcc.a, crt*.o, and any other static libraries used. Old shared libraries are fine, as the local symbol relocations were resolved at the library's link time. 6. "encaps" is removed from this release. It is no longer needed. 7. Please so remove /usr/bin/nm first, which may be a symbolic link in some Linux distributions. Please do remember to remove /usr/bin/encaps first. In the precompiled binaries, I also include the cross assembler and cross linker binaries for Linux/Alpha, Linux/m68k, Linux/MIPS, Linux/PPC and Linux/Sparc. The file list: 1. binutils-2.7.0.9.tar.gz. Source code. 2. binutils-2.7.0.3-2.7.0.9.diff.gz. Patch against the previous source code. 3. binutils-2.7.0.9.bin.tar.gz. Precompiled Linux/x86 binaries for libc 5. To use the cross assembler and linker binaries without any changes, you have to configure your cross compiler with a. Linux/alpha (ELF): # configure --prefix=/usr --local-prefix=/usr/local \ --gxx-include-dir=/usr/include/g++ \ --with-gnu-ld --with-gnu-as \ --target=alpha-linux b. Linux/m68k (ELF): # configure --prefix=/usr --local-prefix=/usr/local \ --gxx-include-dir=/usr/include/g++ \ --with-gnu-ld --with-gnu-as \ --target=m68k-linux c. Linux/m68k (a.out): # configure --prefix=/usr --local-prefix=/usr/local \ --gxx-include-dir=/usr/include/g++ \ --with-gnu-ld --with-gnu-as \ --target=m68k-linuxaout d. Linux/MIPS (ELF, big endian): # configure --prefix=/usr --local-prefix=/usr/local \ --gxx-include-dir=/usr/include/g++ \ --with-gnu-ld --with-gnu-as \ --target=mips-linux e. Linux/MIPS (ELF, little endian): # configure --prefix=/usr --local-prefix=/usr/local \ --gxx-include-dir=/usr/include/g++ \ --with-gnu-ld --with-gnu-as \ --target=mipsel-linux f. Linux/PPC (ELF): # configure --prefix=/usr --local-prefix=/usr/local \ --gxx-include-dir=/usr/include/g++ \ --with-gnu-ld --with-gnu-as \ --target=ppc-linux g. Linux/Sparc (ELF): # configure --prefix=/usr --local-prefix=/usr/local \ --gxx-include-dir=/usr/include/g++ \ --with-gnu-ld --with-gnu-as \ --target=sparc-linux h. Linux/Sparc (a.out): # configure --prefix=/usr --local-prefix=/usr/local \ --gxx-include-dir=/usr/include/g++ \ --with-gnu-ld --with-gnu-as \ --target=sparc-linuxaout The primary ftp sites for the compiler/C library are tsx-11.mit.edu under pub/linux/packages/GCC and sunsite.unc.edu under pub/Linux/GCC. To install this package, please follow the procedure very closely. Please backup/save all the files you are instructed to delete and you should do gzip -dc binutils-2.7.0.9.bin.tar.gz | tar tvvf - to see what is in there. Please do back up before you remove things. To install for libc 5, PLEASE DO 1. su root 2. cd / 3. rm -f /usr/bin/encaps /usr/bin/nm 4. gzip -dc binutils-2.7.0.9.bin.tar.gz | tar xvvf - Now you have the new gas/binutils under /usr/bin and /usr/ix86-linuxaout/bin. You have to use /usr/ix86-linuxaout/bin/as and /usr/ix86-linuxaout/bin/ld -m i386linux if you want to use a.out as and ld directly. I have changed the target names for Linux/x86 and Linux/x86 (a.out) to ix86-linux and ix86-linuxaout respectively. The precompiled binaries are installed under /usrix86-linux and /usr/ix86-linuxaout. You should make appropriate symbolic links if you have a different name for the Linux/x86 target, like i586-unknown-linux. If you don't need the cross assemblers/linkers for alpha-linux, m68k-linux, m68k-linuxaout, mips-linux, mipsel-linux, ppc-linux, sparc-linux nor sparc-linuxaout, please do 1. su root 2. cd /usr 3. rm -rf alpha-linux, m68k-linux m68k-linuxaout \ m68k-linux m68k-linuxaout mips-linux mipsel-linux \ ppc-linux sparc-linux sparc-linuxaout Thanks. H.J. Lu hjl@gnu.ai.mit.edu 02/24/97