On 3/1/10, Simon Josefsson <si...@josefsson.org> wrote: > >> >> > Since I use gnulib in several sub-modules, I need to avoid > conflicts > >> >> > between different gnulib imports. > >> >> > thus I need to make all those _GL_* constants module-specific. > >> >> > thus I need gnulib-tool to accept a --macro-prefix option and this > patch: > >> >> > >> >> I believe the recommended way to avoid conflicts between different > >> >> gnulib imports is to use a separate configure.ac for each gnulib > import, > >> > > >> > of course I have a separate configure.in for each module! > >> > the setup works just fine, I just don't want to have to apply the > >> > patch to gnulib-too myself each time I pull from gnulib. > >> > >> Then I don't understand what purpose the patch serves? Each > >> configure.in instance should have its own namespace? > > > > The sub-modules have to share the gnulib directories > > (so that they do not include several identical object files) > > > I don't follow here. I use separate configure.ac (for example in > GnuTLS), with separate gnulib directories for each configure.ac. So > sub-modules do not _have_ to share gnulib directories. Can't you use a > separate gnulib directory for each configure.ac? Then there are no > header file collisions.
as I said above, I do have a separate configure.in, gllib, glm4 in each module. > Yes, some object files will be duplicated, but > that isn't harmful. I consider that to be extremely harmful. I don't see why each module should come with an extra 1/2 MB of the same gnulib headers. Also, when a module is loaded, its gnulib library is loaded too - even though the objects are already present in RAM from the core or other modules. This slows the system down. -- Sam Steingold <http://sds.podval.org>