Re: [PATCH] libgloss: arm: break newlib dependency

Richard Earnshaw <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>

On 22/12/2022 22:03, Mike Frysinger wrote:
> On 21 Dec 2022 09:24, Corinna Vinschen wrote:
>> On Dec 20 20:47, Mike Frysinger wrote:
>>> On 19 Dec 2022 10:08, Richard Earnshaw wrote:
>>>> On 14/12/2022 09:13, Mike Frysinger wrote:
>>>>> The libgloss port has been reaching back into newlib internals for a
>>>>> single header whose contents have been frozen for almost a decade.
>>>>> To break this backwards libgloss->newlib dependency, duplicate that
>>>>> header here so we can keep libgloss independent as it's meant to be.
>>>>
>>>> This isn't really 'newlib internals', it's a header file that tries to
>>>> provide ACLE[1] compatibility for older versions of GCC that lacked such
>>>> support.  Having two copies of this is a maintenance burden, so I'm not
>>>> entirely sure this is a great thing to do, even if the copies are
>>>> supposed to be identical.
>>>
>>> newlib already has 2 itself.  so this will be a 3rd.  i don't disagree with
>>> the maintenance concern, but the fact the file hasn't changed in a decade,
>>> and seems unlikely to ever change, makes me not worry about it.
>>>
>>>> If we can agree on a common location in the source tree that both newlib
>>>> and libgloss can pull this from, then I'm happy to move it if that would
>>>> make you happier.
>>>
>>> libgloss is supposed to be C library agnostic.  the C library (newlib) itself
>>> relies on the output of libgloss (e.g. the crt and low level syscalls).  since
>>> there is no other tree/project in play that i'm aware of, that means there are
>>> really only three options:
>>> * have the compiler provide it
>>> * have libgloss provide it (and newlib uses that)
>>> * duplicate the header
>>>
>>> i know the libgloss/newlib separation is still pretty unclean due to the two
>>> projects historically being one (i.e. everything in newlib), but i don't think
>>> that's a good reason to keep it messy with libgloss depending on newlib.
>>
>> Why not just <toplevel>/include then?  It already contains target-specific
>> stuff in the opcodes subdir, or the xtensa headers.  Having to share them
>> between newlib and libgloss should be reason enough to move the file there.
> 
> the file is currently installed under machine/.  none of the installed headers
> use it though, so maybe it doesn't really need to be installed.  if that's the
> case, moving it into the top-level include/ would work.
> -mike

The file should not be installed, it's only for the build system.  If it 
is being installed, then that's a bug.

Moving it to <toplevel>/include is ok by me.   We'll need to sync it to 
the binutils repo (to support all-in-one build trees), but that's not a 
real issue as the file doesn't change often as you've already noted.

R.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.