[PATCH] libc: Replace i386/sys/fenv.h symlink with an #include shim

Corinna Vinschen vinschen@redhat.com
Wed Mar 24 10:15:58 GMT 2021

On Mar 23 15:38, Corinna Vinschen via Newlib wrote:
> On Mar 13 19:11, David Macek via Newlib wrote:
> > > > More to the point, how big of an issue would be to duplicate the file?
> > >
> > > I'm not hot on duplicating an identical file, it just raises maintenance
> > > cost.  I'm currently looking into a solution to share the file without
> > > duplicating it.
> > 
> > Something like a Makefile rule?
> A bit more complicated in fact.  I added a new topic branch called
> topic/shared_arch_headers to the upstream repo, containing a single
> patch
>   a8cd2849ed0c Add build mechanism to share common header files between
>                machines

Update: I split this patch into seven patches and force pushed them
onto topic/shared_arch_headers:

3835c015d09d Add build mechanism to share common header files between machines
e8e95bf6436a configure.host: define shared ix86 and x86_64 directory
718f3955449f fenv: add missing declarations to x86 fenv.h
a0d06f6c50ed fenv: Move shared x86 sys/fenv.h from x86_64 to shared_x86
c06e30d3d961 fenv: move shared x86 fenv.c to libm/machine/shared_x86
7803e212adcd fenv: drop Cygwin-specific implementation in favor of newlib code
3b79d7e1c31f Cygwin: don't call _feinitialise from _dll_crt0

Please fetch this change and reset your branch to this new state.
This should very much simplify reviewing the changes.

> This patch introduces a new way to share header files between
> architectures, not share by other architectures.
> I tried to change this in a generic way.  The fenv stuff in this patch
> is basically just the first user of this new mechanism.
> As a side-effect, this also allows to remove Cygwin's own fenv code
> finally, which was already pretty much the same as newlib's x86 code
> anyway.  The major exception was the call to _feinitialise in Cygwin DLL
> startup.  Given that the newlib fenv code is auto-initializing, this can
> go away.  Cygwin just has to keep the _feinitialise entry point for
> backward compatibility for apps built in a certain time frame.
> David, Joel, anybody else interested in this stuff, please inspect
> this patch on the topic/shared_arch_headers branch thorougly.  I will
> not push this quickly, since we're in the process of releasing Cygwin
> 3.2.0.  I don't want to destabilise the release without need :)


More information about the Newlib mailing list