Files
oldlinux-files/ftp-archives/tsx-11.mit.edu/1996-10-07/packages/GCC/release.binutils-2.6.0.9
2024-02-19 00:24:15 -05:00

220 lines
5.7 KiB
Groff

How to remove cross targets.
This is the public release of binutils 2.6.0.9 for Linux, which is
based on the binutils snapshot, gas-960228. It is a Linux only release.
and the binary release is only intended for an ELF based system. You
also need libc 5.2.18 and gcc 2.7.2 or above.
This linker won't search libxxxx.so.x.y.z for -lxxxx. Please make
a symbolic link from libxxxx.so to libxxxx.so.x.y.z. Otherwise, you
cannot link your binaries with libxxxx.so.x.y.z or your linker will
die if there is no libxxxx.a.
Due to the bug in modules 1.2.8/1.3.57, modules created by ld in this
binutils may not work. Please get the current modules from:
http://www.pi.se/blox/modules/
which should work with this version of binutils.
The major changes from 2.6.0.2 are:
1. One serious bss bug is fixed in this release.
2. The linker will try to check conflicts in shared libraries caused
by DT_NEEDED. Please check it out.
3. The linker no longer checks /etc/ld.so.cache for shared libraries
included by DT_NEEDED. Please use -Wl,-rpath-link for any
directories other than /lib, /usr/lib and /usr/local/lib where a
shared library may be found. XFree86 needs to be fixed for it. For
XFree86 3.1.2D or above, please add
#define BinUtilsVersion 2608
to your /usr/X11R6/lib/X11/config/site.def or xc/cofig/cf/site.def.
4. If the static a.out library, libfoo.a, is compiled with the same
header files, you can convert libfoo.a into the one compatible with
ELF. You just need to use the shell script enclosed here to make
libfoo.a compatible with ELF by removing the leading underscore
in the global symbol names. After converting libfoo.a, you should
install it in a directory which will be searched by the ELF linker.
You can finnaly link static a.out libraries with ELF after the
conversion.
5. A weak alias bug is fixed for libc 5.3.5.
6. The shared library support from Alan Modra alan@spri.levels.unisa.edu.au
is finally in. If
# configure --enable-shared
is used, libbfd and libopcodes will be built as shared libraries.
7. The -Bsymbolic option is finally working right. Thanks, Ian.
8. I also include the cross assembler and cross linker binaries for
SunOS and Solaris under Sparc as well as for m68k/ELF and
m68k/linuxaout. But you have to configure your cross compiler with
# configure --prefix=/usr --local-prefix=/usr/local \
--gxx-include-dir=/usr/include/g++ \
--with-gnu-ld --with-gnu-as \
--host=i486-linux --target=sparc-sun-sunos4.1
for Sparc/SunOS, or
# configure --prefix=/usr --local-prefix=/usr/local \
--gxx-include-dir=/usr/include/g++ \
--with-gnu-ld --with-gnu-as \
--host=i486-linux --target=sparc-sun-solaris2
for Sparc/Solaris, or
# configure --prefix=/usr --local-prefix=/usr/local \
--gxx-include-dir=/usr/include/g++ \
--with-gnu-ld --with-gnu-as \
--host=i486-linux --target=m68k-linux
for m68k/ELF, or
# configure --prefix=/usr --local-prefix=/usr/local \
--gxx-include-dir=/usr/include/g++ \
--with-gnu-ld --with-gnu-as \
--host=i486-linux --target=m68k-linuxaout
for m68k/a.out
to use the cross assembler and linker binaries without any changes.
9. The .plt section bug fix from pirker@eiunix.tuwien.ac.at.
10. Adding the support for linking ELF .o files against the static
a.out libraries. If a static a.out library, libfoo.a, was compiled
with the same header files, you can convert libfoo.a into the one
compatible with ELF. You just need to use the shell script enclosed
here to make libfoo.a compatible with ELF by removing the leading
underscore in the global symbol names. After converting libfoo.a,
you should install it in a directory which will be searched by the
ELF linker.
11. Fix the writable text section bug for executables when shared
libraries are used.
This release contains "encaps" and a modified "objdump" by Ross. They
are used to compile the Linux kernel in ELF.
The primary ftp sites for the compiler, assembler, linker and C/C++
libraries 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.6.0.9.bin.tar.gz | tar tvvf -
to see what is in there.
The binary file is binutils-2.6.0.9.bin.tar.gz. The source code is
binutils-2.6.0.9.tar.gz. A diff against 2.6/2.6.0.2 is too big to be
included.
Please do back up before you remove things.
To install, PLEASE DO
1. su root
2. cd /
3. gzip -dc binutils-2.6.0.9.bin.tar.gz | tar xvvf -
Now you have the new gas/binutils under /usr/bin and
/usr/i486-linuxaout/bin. You have to do
/usr/i486-linuxaout/bin/as
and
/usr/i486-linuxaout/bin/ld -m i386linux
if you want to use a.out as and ld directly.
Thanks.
H.J. Lu
hjl@gnu.ai.mit.edu
03/02/96
-----
#! /bin/sh
#
# This is the shell script used to convert a static a.out library
# into the one compatible with ELF by removing the leading underscore
# in the global symbol names.
#
# Usage: convert libfoo.a [libbar.a ...]
#
# H.J. Lu
# hjl@gnu.ai.mit.edu
cwd=`pwd`
prog=$0
usage ()
{
echo Usage: $prog libfoo.a [libbar.a ...]
}
remove_underscore ()
{
lib=$1
case $lib in
lib*.a|*/lib*.a)
if [ ! -f $lib ];
then
echo $lib does not exist.
usage
exit -1
fi
;;
*)
echo $lib is not a static library.
usage
exit -1
;;
esac
case $lib in
/*)
wd=
;;
*)
wd=$cwd
;;
esac
tmpdir=$$$$
cd /tmp
rm -rf $tmpdir
mkdir $tmpdir
cd $tmpdir
ar -x $wd/$lib
for f in *.o
do
objcopy --remove-leading-char $f
done
ar -ucr ../`basename $lib` *.o
cd ..
rm -rf $tmpdir
mv /tmp/$lib $cwd
}
for l in $*
do
cd $cwd
remove_underscore $l
done