[adding the gnulib mailing list] On Fri, Aug 06, 2021 at 08:57:05AM -0700, Mike Fulton wrote: > Hi, > > I am building m4 (latest) on the z/OS operating system and for the most > part, things are going very well. > I am not sure of the best place to request this - whether as a 'bug' report > (which this is not) or as a discussion topic, so I decided on 'discussion'. > > The problem I have hit for z/OS is that canonicalize-lgpl.c is defining > __stat to stat, i.e. > #define __stat stat > > Unfortunately, on z/OS, the system header <sys/stat.h> uses __stat as a > wrapper for the header file to test if the header has been included or not, > e.g. > > #ifndef __stat > #define __stat 1 > <header file contents> > #endif > > So - the patch I did was just to use a different name for the macro in > canonicalize-lgpl.c - I chose __m4stat but any non-colliding name would > work fine. > > What is the best way for me to proceed - should I open a 'bug' for this?
You already have - I'm forwarding this to the gnulib folks (where the canonicalize-lgpl.c file comes from), and we will get it fixed to quit using the identifier __stat for our own uses now that we know system headers are using it. Once it is fixed there, I need to do another m4 release anyways (1.4.19 has a bug with unintended locale sensitivity when it comes to parsing numbers), so eventually when I get the time, the 1.4.20 release will include the gnulib fix. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org