bug-gnulib
[Top][All Lists]
Advanced

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

How to deal with gnulib in multi-shared-libs project with MSVC


From: Michael Goffioul
Subject: How to deal with gnulib in multi-shared-libs project with MSVC
Date: Fri, 22 Nov 2013 10:32:37 -0500

Hi,

I'd like to know what would be the recommended way to deal with gnulib in a project with mutliple shared libraries when compiled with MSVC. The context is compilation of GNU Octave, which consists of multiple shared libraries (one core, and several other all depending on the core one).

I can see 2 ways:
1) compile gnulib statically into each shared library
2) compile gnulib statically into the core library and re-export gnulib symbols from the library to make them available to the other shared libraries

In scenario 1), my concern is about the internal states in some modules. Each DLL will have its own internal states and they won't be shared between the libraries. For instance, the signal handling routines like sigprocmask, sigaction... Are the gnulib's routines designed to support that scenario or will they step on each other's toes when called from various DLL?

I tested scenario 2), libtool being able to export automatically C symbols (auto-export is not supported by MSVC). However, I hit a problem for variables. The getopt module for instance has extern variables (optarg and optind). And MSVC, in its great wisdom, requires that DLL variables be decorated with dllexport/dllimport, which is not the case for the gnulib's getopt module.

So the question is: what would be the recommended way to deal with gnulib and the multiple DLL's in octave?

Thanks,
Michael.


reply via email to

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