Re: Anyone remember what AC_PROG_GCC_TRADITIONAL was testing for?

2023-04-02 Thread Zack Weinberg
On Sun, Apr 2, 2023, at 5:17 PM, Paul Eggert wrote: > That macro dates back to /usr/include header files that would play > tricks like this > > #define _IO(n, x) (('n'<<8)+x) > > #define TIOCFOO _IO(T, 1) Yeah, I thought it had to be something like that... >

Re: Anyone remember what AC_PROG_GCC_TRADITIONAL was testing for?

2023-04-02 Thread Paul Eggert
That macro dates back to /usr/include header files that would play tricks like this #define _IO(n, x) (('n'<<8)+x) #define TIOCFOO _IO(T, 1) and would expect TIOCFOO to be equivalent to (('T'<<8)+1). This sort of trick worked with K C compilers but does not work with C89+. To

Re: Anyone remember what AC_PROG_GCC_TRADITIONAL was testing for?

2023-04-02 Thread Alexandre Oliva
Hello, Zack, I don't know the answer, but I have a hunch that may hopefully ring a bell for someone who went through those pains: the included headers relied heavily on ioctl macros, that, on early Unices, often abused pre-std preprocessor macro quirks about quoting, in ways that would only have

Anyone remember what AC_PROG_GCC_TRADITIONAL was testing for?

2023-04-02 Thread Zack Weinberg
After the AC_TYPE_GETGROUPS patch I just sent and one more I have stacked up locally, the very last use of AC_EGREP_CPP and/or AC_EGREP_HEADER in a stock Autoconf macro will be in AC_PROG_GCC_TRADITIONAL, which does this: AC_DEFUN([AC_PROG_GCC_TRADITIONAL], [AC_REQUIRE([AC_PROG_CC])dnl if test