]> granicus.if.org Git - graphviz/commitdiff
clean up references to `__IMPORT__` and `__EXPORT__`
authorSaleem Abdulrasool <compnerd@compnerd.org>
Mon, 3 May 2021 00:36:29 +0000 (17:36 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 9 May 2021 01:38:30 +0000 (18:38 -0700)
This removes any reference to the custom `__IMPORT__` and `__EXPORT__`
macros.  These are remnants from supporting uwin.  However, the need for
uwin is greatly diminished by proper native Windows support for the
library.

Furthermore, the functionality that this enables will be restored
imminently by means of decoration of public interfaces.

The uwin system used `_BLD_STATIC` to indicate a static build and
`__DYNAMIC__` to indicate a shared build.  Furthermore, it used
`_BLD_DLL` to indicate a dynamic library on Windows, that is a DLL.
This augmented the check of `_DLL` which is the Microsoft specified
define that indicates a shared library build.  Based upon the state of
these four flags (why four flags for 2 states?) it then defined
`__IMPORT__` and `__EXPORT__` to `__declspec(dllimport)` and
`__declspec(dllexport)` respectively.

To further complicate things, UWIN was built up during Windows 3.1,
which meant that it predated the linker support for DLL storage.
Instead, this is required work by the user, and it has special macros
for declaring the (now) synthetic import symbol as well as defining it.
This is now no longer required due to improved support in the compiler
and linker which will perform the necessary work.

On Unix, this synthetic symbol declaration and definition is not
required as the linker has always supported this for shared libraries -
it is responsible for creating the PLT which is roughly equivalent to
the IAT (technically, the IAT is both the PLT and the GOT).  This is now
also automated on Windows, at least for the past ~25 years.

This clean up is meant to simplify the migration to `[module]_EXPORTS`
as the "standard" macro which is defined by CMake (and is generally used
elsewhere now as well) to indicate that the symbols for the module
should be exported.  `_DLL` provides the necessary information whether a
DLL is being built or not.

With that history, it is clear that this is a regression for GraphViz on
uwin, the temporary breakage seems reasonable to simplify the migration.

lib/ast/hashkey.h
lib/dotgen/dotprocs.h
lib/expr/expr.h
lib/pathplan/pathplan.h
lib/pathplan/vispath.h
lib/sfio/sfio.h
tclpkg/tcldot/tcldot.c

index b10bf2da9359c57a90fe39e8f48580a71af5e51b..ba1d798bb849acd1f311e1b22df7e25f7b13088b 100644 (file)
@@ -43,9 +43,6 @@ extern "C" {
 #define HASHNKEY4(n,c4,c3,c2,c1)       HASHKEY5((n)+'a',c4,c3,c2,c1)
 #define HASHNKEY5(n,c5,c4,c3,c2,c1)    HASHKEY6((n)+'a',c5,c4,c3,c2,c1)
 
-#if _BLD_ast && defined(__EXPORT__)
-#define extern         __EXPORT__
-#endif
 
     extern long strkey(const char *);
 
index 93fd9fa78b11a13c3ff50d71c64f9c7134ae9506..d9d22f78e6b42fd67a0c9bf75e3be3ad670481ff 100644 (file)
@@ -69,9 +69,6 @@ extern "C" {
     extern void virtual_weight(Agedge_t *);
     extern void zapinlist(elist *, Agedge_t *);
 
-#if defined(_BLD_dot) && defined(_DLL)
-#   define extern __EXPORT__
-#endif
     extern Agraph_t* dot_root(void *);
     extern void dot_concentrate(Agraph_t *);
     extern void dot_mincross(Agraph_t *, int);
index c81446f9485d4469c90d188a60095eb198a7ea4a..68072a2f12c893051269a76eadea8d6767cbb155 100644 (file)
@@ -27,13 +27,6 @@ extern "C" {
 
 #undef RS      /* hp.pa <signal.h> grabs this!! */
 
-#if _BLD_expr && defined(__EXPORT__)
-#define extern         __EXPORT__
-#endif
-#if !_BLD_expr && defined(__IMPORT__)
-#define extern         extern __IMPORT__
-#endif
-
 #include <expr/exparse.h>
 
 #undef extern
@@ -277,9 +270,6 @@ struct Excc_s                               /* excc() state                 */
 
 };
 
-#if _BLD_expr && defined(__EXPORT__)
-#define extern         __EXPORT__
-#endif
 
 extern Exnode_t*       excast(Expr_t*, Exnode_t*, int, Exnode_t*, int);
 extern Exnode_t*       exnoncast(Exnode_t *);
index afb868d224c52d245c22e5d07769d8a80f79f17c..a2e8773ea1751a9d84ef73b066f37f7e506b0f98 100644 (file)
@@ -20,9 +20,6 @@ extern "C" {
 #endif
 
 
-#if defined(_BLD_pathplan) && defined(__EXPORT__)
-#   define extern __EXPORT__
-#endif
 
 /* find shortest euclidean path within a simple polygon */
     extern int Pshortestpath(Ppoly_t * boundary, Ppoint_t endpoints[2],
index 4a4a5be74be57c7a0f8a03fc93d2c2715cd1c2f7..61450477762c55f3eab206d7e03fb19dc3e991a2 100644 (file)
@@ -19,9 +19,6 @@
 extern "C" {
 #endif
 
-#if defined(_BLD_pathplan) && defined(__EXPORT__)
-#   define extern __EXPORT__
-#endif
 
 /* open a visibility graph 
  * Points in polygonal obstacles must be in clockwise order.
index 7f75011d39add9f8d4505ef0a1dcd70671058463..a4a0f60a878721f55eaa252e2e6f47933d7466ab 100644 (file)
@@ -281,9 +281,6 @@ extern "C" {
 #define sfstderr       ((Sfio_t*)_ast_dll->_ast_stderr)
 #endif
 
-#if defined(_BLD_sfio) && defined(__EXPORT__)
-#define extern __EXPORT__
-#endif
 
     extern Sfio_t *sfnew(Sfio_t *, void *, size_t, int, int);
     extern Sfio_t *sfopen(Sfio_t *, const char *, const char *);
index 24151b3041894df5a43cacd8160eef4ffbb8e7a9..b747124cf1e78363251e823f95afd83f86fe25b3 100644 (file)
@@ -151,9 +151,6 @@ static int dotstring(ClientData clientData, Tcl_Interp * interp,
     return TCL_OK;
 }
 
-#if defined(_BLD_tcldot) && defined(_DLL)
-__EXPORT__
-#endif
 int Tcldot_Init(Tcl_Interp * interp)
 {
     ictx_t *ictx;