public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
* [Bug?] SIG2STR_MAX not good for #if
@ 2023-06-19  6:15 Mingye Wang
  2023-06-19  9:00 ` Corinna Vinschen
  0 siblings, 1 reply; 9+ messages in thread
From: Mingye Wang @ 2023-06-19  6:15 UTC (permalink / raw)
  To: newlib

When building schilytools on MSYS2, I got hit with:

```
defs.h:1288:21: error: missing binary operator before token "("
 1288 | #if     NUMBUFLEN < SIG2STR_MAX
```

For context, the source goes:

```
#define     NUMBUFLEN   21  /* big enough for 64 bits */
#if NUMBUFLEN < SIG2STR_MAX
#undef      NUMBUFLEN
#define     NUMBUFLEN   (SIG2STR_MAX-1)
#endif
```

A cursory inspection of /usr/include leads me to this "#define
SIG2STR_MAX (sizeof("RTMAX+") + sizeof("4294967295") - 1)" definition;
redefining it with a plain number makes the build go through. Looking
up the newlib source code, it appears that the definition is not
specific to MSYS2 or Cygwin, but common to all newlib distributions.

The wording proposed for SIG2STR_MAX by geoffclare in comment 4975[1]
under the POSIX issue 8 bug report requires that the definition is
suitable for #if, which newlib currently violates. Now this isn't
quite standard yet and is subject to change, so I can't say for sure
this is newlib's bug.

  [1]: https://www.austingroupbugs.net/view.php?id=1138#c4975

Regards,
Mingye Wang (Artoria2e5)

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-06-21 13:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-19  6:15 [Bug?] SIG2STR_MAX not good for #if Mingye Wang
2023-06-19  9:00 ` Corinna Vinschen
2023-06-19 11:11   ` Joel Sherrill
2023-06-21  1:08     ` Mingye Wang
2023-06-21  1:22   ` [PATCH] Make SIG2STR_MAX usable in #if Mingye Wang
2023-06-21  7:33     ` Torbjorn SVENSSON
2023-06-21  9:13       ` Corinna Vinschen
2023-06-21 12:13         ` [PATCHv2] " Mingye Wang
2023-06-21 13:20           ` Corinna Vinschen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).