[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: double inclusion guard

From: Bruno Haible
Subject: Re: double inclusion guard
Date: Tue, 12 Oct 2010 21:48:34 +0200
User-agent: KMail/1.9.9

Hi Gary,

> Then I believe the only viable option to provide stable support for
> multiple gnulib directories in a single tree is to add a switch to
> gnulib-tool to rewrite gnulib #include_next lines on import, so that
> both types of compilers include header files in the same order.

Thanks for these thoughts, Gary and Eric.

To sum up the discussion:

  - Double inclusion guards must depende on the macro_prefix.

  - gnulib-tool needs an option --base-gnulib=.../gnulib-cache.m4
    that has two effects:
      - It rewrites the include_next invocations for old compilers,
        so that the program will always include
          extra/gllib/stdlib.h -> main/gllib/stdlib.h -> /usr/include/stdlib.h
      - It implies --avoid options for all the modules listed in the base
        gnulib-cache.m4. (Otherwise modules get duplicated, causing malfunction
        of modules that have global state, like sigaction, fchdir, and similar.)

  - All typedefs that are defined in a .h file and are not triggered by a module
    for a function replacement must have a double definition guard, like we did 
    'struct random_data'.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]