Re: 2.4.0-test7 spurious '##' patches

From: Richard Henderson (rth@twiddle.net)
Date: Fri Sep 01 2000 - 00:44:16 EDT

  • Next message: Richard Henderson: "Re: Large File support and blocks."

    On Thu, Aug 31, 2000 at 07:09:00PM +1100, Keith Owens wrote:
    > Compiling 2.4.0-test7 with the latest IA64 toolchain, gcc version
    > 2.96-ia64-000717 snap 000828. It complained about various include
    > files, "pasting would not give a valid preprocessing token", this
    > version of gcc is a bit more paranoid about the use of '##'.

    It's also lying sometimes. For instance.

    > -#define SOCK_DEBUG(sk, msg...) do { if((sk) && ((sk)->debug)) printk(KERN_DEBUG ## msg); } while (0)
    > +#define SOCK_DEBUG(sk, msg...) do { if((sk) && ((sk)->debug)) printk(KERN_DEBUG msg); } while (0)

    This change is correct.

    > -#define dprintk(args...) dfprintk(FACILITY, ## args)
    > +#define dprintk(args...) dfprintk(FACILITY, args)

    This one isn't. This is a gcc extension to remove the previous token
    if "args" is empty. So you'd get

            dfprintk(FACILITY);
    instead of
            dfprintk(FACILITY, );

    r~
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Fri Sep 01 2000 - 00:45:59 EDT