Subject: binutils 2.8.1.0.6 is released (fwd)

From: Philip Blundell <[email-masked]>
Date: Sat, 14 Jun 1997 12:32:02 +0100 (BST)

Here's the news.  I think this version should work for arm-linuxaout,
including the '$' thing.  Please check it out; I'd like to hear reports of
success or failure.

---------- Forwarded message ----------
Date: Fri, 13 Jun 1997 12:19:22 -0700 (PDT)
From: "H.J. Lu" <[email-masked]>
To: [email-masked]
Cc: GNU C Library <[email-masked]>,
    Kenneth Albanowski <[email-masked]>,
    Kenneth Osterberg <[email-masked]>, [email-masked],
    Mat Hostetter <[email-masked]>,
    Andy Dougherty <[email-masked]>,
    Brian Bourgault <[email-masked]>,
    "John W. Christy" <[email-masked]>,
    Craig Groeschel <[email-masked]>, Warner Losh <[email-masked]>,
    Rob Farnum <[email-masked]>, Michael Meissner <[email-masked]>,
    Ron Guilmette <[email-masked]>, Thomas Roell <[email-masked]>,
    Craig Burley <[email-masked]>,
    John Polstra <[email-masked]>,
    Simon Shapiro <[email-masked]>,
    Galen Hazelwood <[email-masked]>,
    linuxgcc <[email-masked]>, David Engel <[email-masked]>
Subject: binutils 2.8.1.0.6 is released

>   If you compile this new glibc version and you have binutils 2.8(.1)
>   you must change 
> 
> 	versioning = yes
> 
>   in config.make as determined by the configure script to
> 
> 	versioning = no
> 
>   There are several `ld' patches necessary to build a working shared
>   object with versioning.  There will hopefully be a binutils 2.8.2
>   release but HJ will hopefully soon (he said within the next two days)
>   make a new snapshot for Linux.  Those of you who you the daily
>   gas snapshots, the changes were checked in yesterday (Wednesday).
> 
> OK, please make sure you follow this.  Otherwise glibc will not build.
> But even with the current `ld' version there are still some problems.
> He don't have the time to trace this down in the next days but I also
> didn't want to delay the patch.  So, people honestly using glibc
> should compile without versioning.  (Not even `make check' succeeds
> with versioning in the moment).  With the larger group of people
> having access to the versioning stuff I hope to get some help finding
> the bugs.  I currently know of two:
> 
> - building test-float fails since a symbol is reported to be missing
>   though it is available in libc.so
> 
> - sometimes libc.so is build without versioning information though the
>   --version-script option is given (strange)

I have seen this error. I will try to track it down.

H.J.
---
This is the beta release of binutils 2.8.1.0.6 for Linux, which is
based on the binutils 970612 snapshot plus Linux/ARM support and
PowerPC/ELF fix. You also need libc 5.4.33 or above to use the
precompiled binaries for libc 5 or glibc 2.0.4 or above to use the
precompiled binaries for glibc 2.

There are some changes to ARM. Please make sure Linux/ARM is still
working. Also I'd like to know if PowerPC/ELF is really working now.
Please also make sure it doesn't break anything else.

Please report any bugs related to binutils 2.8.1.0.6 to
[email-masked].

Changes from binutils 2.8.1.0.4:

1. Update from the binutils gas-970612.
2. More Ulrich's ELF versioning patches.
3. A minor ELF/PPC change.
4. Some Linux/ARM change.
5. The .set bug fix.
6. Some 64-bit clean patch.
7. An MMX opcode fix.

Changes from binutils 2.8.1.0.3:

1. Update from the binutils gas-970607.
2. Ulrich's ELF version fix.
3. Geoff Keating's PowerPC/ELF fix. Needed for glibc.

Changes from binutils 2.8.1.0.1:

1. Update from the binutils gas-970531.
2. Add Linux/ARM support.
3. Some Linux/Alpha change.

IMPORTANT:
The .plt format that the Alpha was using was not thread safe.  So I 
changed it.  The new format is *not* binary compatible with the old,
thus you must use glibc 2.0.4 to get an ld.so that can understand it.

Note that the new ld.so knows how to deal with the old .plt format, so
old libraries will still work, but they should be relinked eventually
for performance reasons.

Please do remember to remove /usr/bin/encaps first. Please also
remove /usr/bin/nm first, which may be a symbolic link in some
Linux distributions.

The file list:

1. binutils-2.8.1.0.6.tar.gz. Source code.
2. binutils-2.8.1.0.4-2.8.1.0.6.diff.gz. Patch against the previous beta
   source code.
3. binutils-2.8.1.0.6.bin.tar.gz. Precompiled Linux/x86 binaries for
   libc 5.
4. binutils-2.8.1.0.6-glibc.bin.tar.gz. Precompiled Linux/x86 binaries
   for libc 6 (glibc 2.0.2 or above).

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.
The beta directory is in private/tofu under the GCC directory.

Most of my stuff can also be found at

ftp://ftp.yggdrasil.com/private/hjl

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.8.1.0.6.bin.tar.gz | tar tvvf -

or
	gzip -dc binutils-2.8.1.0.6-glibc.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.8.1.0.6.bin.tar.gz | tar xvvf -

To install for libc 6 (glibc 2.0.2 or above), PLEASE DO

1. su root
2. cd /
3. rm -f /usr/bin/encaps /usr/bin/nm
4. gzip -dc binutils-2.8.1.0.6-glibc.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 /usr/ix86-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 have an old linux library in the a.out format and you cannot
obtain the newer version in the ELF format for whatever reason, you
can try "objcopy --remove-leading-char" on the a.out library and see
if it can link with your code in ELF. For Sybase client libraries,
I did

# cd sybase/lib
# for f in *.a
do
  objcopy --remove-leading-char $f
done

It seems to compile/link fine with libc 5.4.2x. But I don't know
if it really works or not. The resulting binaries should work
if the libc ABI used by the old library is unchanged in the new
libc.

According to Bruce Milner <[email-masked]>:

Just a quick note about your example using objcopy for
sybase. The sybase a.out libraries "are" dependent on a changed
feature of the libc ABI.
 
The ctype macros changed to a byte order independent format
(little endian). In order to use the sybase libraries, one needs to
rename the the ctype table variables in the sybase library files
and link in an old version of the libc's "C-ctype.o ctype-info.o"
files.

[email-masked] put a ELF'ized version of these
libraries on 

ftp://mudshark.sunquest.com/pub/ctlib-linux-elf

Thanks.

H.J. Lu
[email-masked]
06/13/97