Synopsis - Issue Tracker

Bug81 Editing

Title Add support for declspec(dllexport) / visibility attributes to all public APIs
Created on 2005-08-15.09:21:33 by stefan, last changed 2007-04-30.14:06:46 by admin.
assigned to hkaiser priority immediate
type rfe severity normal
components other formatter platform Windows
status open resolution
depends on superseded by
Add Comment:
File
CC List:? david, hir, hkaiser, stefan

Messages
Author: stefan Date: 2005-08-15.09:21:33
Add the usual machinery to support DSOs for MSVC.
The same infrastructure will allow to control
symbol visibility with gcc 4.0 and higher, greatly
enhancing library size and load times.
See http://www.nedprod.com/programs/gccvisibility.html
for more.
Author: stefan Date: 2006-02-13.01:54:25
Hartmut, you once indicated you'd be interested
into working on this. Is this still the case ?
If so, can you assign this issue to you please ?
Author: david Date: 2007-02-12.14:39:08
I can take this on. I would suggest however, to use a more neutral word than DLLEXPORT to express dynamic interface. Something like SYNOPSIS_API, which can take the value __declspec(dllexport/dllimport), depending on an external #define. Usually, this external define is provided by the VS.NET project system (something like SYNOPSIS_EXPORTS), but it can be controlled by a define as the first line of every implementation file (see boost::program_options or other boost dynamically linked libraries), which is more portable, although more verbose.

I will need some guidance on which interface should be exposed at first.
Author: stefan Date: 2007-02-13.14:00:14
OK, sounds good. I agree SYNOPSIS_API would be a 
good name for the macro. As far as coverage is
concerned, I think the first goal might be to get
the tool applets in src/tools/ compile (and link !)
with MSVC, i.e. make whatever declarations are
required there 'public'.

Thanks !

(PS: I have checked in some modifications that
 may address your build problem on windows.
Please post about that to the list, or submit
a separate bug report, so we can track that down.)
History
Date User Action Args
2005-08-15 09:21:34stefancreate
2005-09-12 06:55:21anonymoussetpriority: normal
platforms: + FreeBSD
2005-12-13 14:21:21stefanlinktask40 solves
2006-02-13 01:54:25stefansetnosy: + hkaiser
messages: + msg495
2006-02-13 14:25:25hkaisersetstatus: new
platforms: + Windows, - FreeBSD
assignedto: (no value)
2006-06-20 22:04:15anonymoussetcomponents: + Python parser, - C++ parser
2007-02-12 14:39:12davidsetnosy: + david
messages: + msg609
2007-02-13 14:00:18stefansetmessages: + msg610
2007-02-22 04:10:47anonymoussetcomponents: + build system, - Python parser
2007-04-25 01:26:22anonymoussetplatforms: + FreeBSD, - Windows
messages: + msg631
components: + Cpp parser, - build system
2007-04-26 03:42:52anonymoussetplatforms: + GNU/Linux, - FreeBSD
messages: + msg646
components: + HTML formatter, - Cpp parser
2007-04-26 08:56:35anonymoussetplatforms: + Windows, - GNU/Linux
messages: + msg648
2007-04-26 12:32:19anonymoussetpriority: immediate
platforms: + FreeBSD, - Windows
messages: + msg650
components: + Python parser, - HTML formatter
nosy: + hir
2007-04-26 16:06:15anonymoussetpriority: normal
messages: + msg652
components: + sxr, - Python parser
2007-04-26 19:42:23anonymoussetpriority: immediate
platforms: + Solaris, - FreeBSD
messages: + msg654
components: + IDL parser, - sxr
2007-04-26 22:58:00anonymoussetpriority: high
platforms: + FreeBSD, - Solaris
messages: + msg656
components: + HTML formatter, - IDL parser
2007-04-27 02:30:31anonymoussetpriority: normal
platforms: + Windows, - FreeBSD
messages: + msg658
components: + other formatter, - HTML formatter
2007-04-30 14:06:46adminsetmessages: - msg631, msg646, msg648, msg650, msg652, msg654, msg656, msg658