Hi,

I'm trying to use gnulib with GNU Octave and am overall very pleased,
as it is allowing me to remove a lot of cruft from Octave's source
files and just assume that a POSIX environment is available without
having to use a lot of #ifdefs.  To me, that's a significant
improvement.

However, there is one issue that has caused a bit of trouble as I
have started using more gnulib modules.

Octave is mostly written in C++ and am having some difficulty with the
rpl_ redefinitions of symbols that have been used as member function
names in the Octave sources.  For example, in a header file, we might
have

  class foo
  {
  public:
    ...
    int open (some, args);
    ...
  };

and then in the corresponding source file,

  #include <fcntl.h>

  int foo::open (some, args) { ... }

Any file that includes foo.h sees a declaration for foo::open,
but on systems where gnulib's fcntl.h header redefines open to be
rpl_open, linking will fail because the compiler generates code for
foo::rpl_open instead of foo::open.

Since I'm doing my development work on a GNU/Linux system that doesn't
need a lot of gnulib functions enabled, I don't see these problems
until they are reported by people working on systems that need more
help from gnulib.

Is there an easy way that I can determine which symbols *could* be
redefined by the gnulib modules I'm using when I'm working on a system
that does not require the redefinitions?

Do other people have these kinds of problems?  If so, how are you
dealing with them?

Thanks!

jwe


Reply via email to