This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Minor bug in mkmap-symver.awk? (fwd)


Hi Richard,
On Tue, 26 Nov 2002, Richard Henderson wrote:
> On Tue, Nov 26, 2002 at 09:45:12PM -0700, Roger Sayle wrote:
> > Is this the appropriate solution, or should GNU ld's grammar be
> > modified to allow "global:" to be followed by an empty list?
>
> Neither.  This should never happen.  The only times I've
> ever seen it happen is when the cross-nm isn't installed
> correctly.

Consider the hypothetical situation, that someone would like
to add some additional symbols to libgcc.so, that are only
required and/or relevant to some targets or multilibs.

In my case, I was evaluating adding __abssf2 and __absdf2 to
the software floating point support in libgcc.  Adding the lines:

GCC_3.3 {
  __abssf2
  __absdf2
}

to the end of libgcc-std.ver is sufficient on the powerpc and
mips where software floating point is built into libgcc by default.
However, building on i686 GNU/Linux fails because these new symbols
aren't added to libgcc.  Rightly so, as the i386 backend doesn't
use FPBIT.  It provides its own patterns of "abssf2" and "absdf2",
and doesn't implement the soft-float forms of the existing __negsf2
or __negdf2 libcalls.


I hope this explains the circumstances.  New symbols require a
new library version, but if none of the new symbols are relevant
on a platform, there's a bizarre interplay of versioning, i.e.
the library is still "effectively" the older version.

You're right that an ideal solution should distinguish this case
from an incorrectly installed cross-nm.

Roger
--


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]