This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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: PATCH: Move include/stubs-biarch.h to sysdeps/generic


On Fri, 16 Mar 2012, H.J. Lu wrote:

> On Fri, Mar 16, 2012 at 10:37 AM, Roland McGrath <roland@hack.frob.com> wrote:
> >> This patch moves include/stubs-biarch.h to sysdeps/generic so that
> >> each arch can override it with sysdeps/cpu/stubs-biarch.h. ?OK to
> >> install?
> >
> > It seems like stubs-biarch.h and the whole special case for it could be
> > replaced by the genericized logic for multi-variant header generation we
> > talked about for bits/syscall.h and the like. ?That seems like the right
> > thing to do instead.
> 
> As I indicated in my reply to multi-variant header generation. they are
> tied with soversion.i and soversion.mk.  It is much bigger changes than
> I feel comfortable with.

I think stubs.h is probably simpler than lib-names.h - but a proper fix 
may require doing both.

I wonder if shlib-versions files are really doing too much.  Defining the 
details of SONAMEs and symbol versions, for a given ABI, makes sense for 
them.  But perhaps the WORDSIZE and ABI lines give information that should 
be given elsewhere.  WORDSIZE we've found isn't really adequate - after 
all, for x32 you want three variants of this information, not two (and 
it's certainly better to have something generic rather than ad hoc 
architecture-specific code).  As for the ABI lines - shouldn't all the 
other information, such as SONAMEs, be written as a function of the ABI 
name rather than of a regular expression?

So my model might be this: either a makefile, or a configure fragment, 
sets a variable that gives the canonical ABI name for a particular 
configuration.  This name may look similar to a GNU target triplet, but 
need not be identical to one.  These are the same names as presently used 
for baseline files in scripts/data/ - if two builds use the same name, 
they must have the same symbol versions, the same SONAMEs, use the same 
directories for libraries and it won't be possible to put both of them 
inside a single root filesystem because filenames would conflict.  (They 
might still be incompatible in other ways, e.g. big and little endian.)

This ABI name is then what goes on the left of lines in shlib-versions.  
The information that's presently on WORDSIZE lines would be replaced by 
additional information in makefiles, listing the names of the alternate 
ABIs alongside the other information presently listed for bits/syscall.h.

(Maybe there would be separate variables for the CPU part of the ABI name 
and the OS part.)

In any case, if it's concluded that such a cleanup should be done 
separately after the port (with a more ad hoc approach) is in then an 
issue should be filed in Bugzilla to track the desired future cleanup.

-- 
Joseph S. Myers
joseph@codesourcery.com

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