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 
for
    'struct random_data'.

Bruno

Reply via email to