This is the mail archive of the
mailing list for the binutils project.
Re: glibc 2.1 and gabi
Date: Thu, 20 Jul 2000 23:22:18 -0700
From: "H . J . Lu" <firstname.lastname@example.org>
On Thu, Jul 20, 2000 at 11:21:12PM -0700, Geoff Keating wrote:
> > Date: Thu, 20 Jul 2000 21:14:54 -0700
> > From: "H . J . Lu" <email@example.com>
> > On Thu, Jul 20, 2000 at 08:27:31PM -0700, Geoff Keating wrote:
> > > I know I _can_ use it, but when do I _have_ to use it? What would go
> > > wrong if the linker never emitted any of these tags?
> > The reason I added the support is Ulrich wanted DF_1_NODELETE for
> > libpthread.so.
> So shouldn't we only use the new tags if the user specifies -z
> nodelete (or whatever it is)?
Yes, that is how it works. The new dtags will be generated only
by either -z xxxxx or --enable-new-dtags.
Q: But why do you need --enable-new-dtags at all?
A: Because HJ sneaked in some patches that do more than just setting a
flag such as DF_1_NODELETE as a response for the user specifying a -z
2000-07-19 H.J. Lu <firstname.lastname@example.org>
* elf32-arm.h (elf32_arm_size_dynamic_sections): Also set
DF_TEXTREL if DT_TEXTREL is set.
* bfd/elflink.h (NAME(bfd_elf,size_dynamic_sections)): Also
set DF_SYMBOLIC for symbolic link. Also set DT_RUNPATH if
DT_RPATH is set.
Set the DT_FLAGS and DT_FLAGS_1 entries if necessary.
Especially the DT_RUNPATH change is important. This means that where
previously -rpath did only set DT_RPATH, it now also sets DT_RUNPATH.
As I understand it DT_RUNPATH is supposed to replace DT_RPATH in the
new ELF specs, but with slightly different semantics (at least on some
platfroms). This makes me wonder whether setting both is really such
an idea. I think that changes such as these deserve some deserve some
more discussion on the binutils list before they are made. HJ, could
you please try to cooperate a bit more and give other people who
depend on the ELF linker a chance to comment on this kind of changes?