Commit f34240de authored by Marc G. Fournier's avatar Marc G. Fournier

Changes to fix/improve the dynamic loading on NT

From: Horak Daniel <horak@mmp.plzen-city.cz>
parent f7430af9
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#include "utils/acl.h" #include "utils/acl.h"
#endif #endif
TriggerData *CurrentTriggerData = NULL; DLLIMPORT TriggerData *CurrentTriggerData = NULL;
void RelationBuildTriggers(Relation relation); void RelationBuildTriggers(Relation relation);
void FreeTriggerDesc(Relation relation); void FreeTriggerDesc(Relation relation);
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* spi.c * spi.c
* Server Programming Interface * Server Programming Interface
* *
* $Id: spi.c,v 1.34 1999/02/13 23:15:30 momjian Exp $ * $Id: spi.c,v 1.35 1999/03/09 13:39:00 scrappy Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -19,9 +19,9 @@ static _SPI_connection *_SPI_current = NULL; ...@@ -19,9 +19,9 @@ static _SPI_connection *_SPI_current = NULL;
static int _SPI_connected = -1; static int _SPI_connected = -1;
static int _SPI_curid = -1; static int _SPI_curid = -1;
uint32 SPI_processed = 0; DLLIMPORT uint32 SPI_processed = 0;
SPITupleTable *SPI_tuptable; DLLIMPORT SPITupleTable *SPI_tuptable;
int SPI_result; DLLIMPORT int SPI_result;
static int _SPI_execute(char *src, int tcount, _SPI_plan *plan); static int _SPI_execute(char *src, int tcount, _SPI_plan *plan);
static int _SPI_pquery(QueryDesc *queryDesc, EState *state, int tcount); static int _SPI_pquery(QueryDesc *queryDesc, EState *state, int tcount);
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* Copyright (c) 1994, Regents of the University of California * Copyright (c) 1994, Regents of the University of California
* *
* $Id: c.h,v 1.51 1999/02/13 23:20:44 momjian Exp $ * $Id: c.h,v 1.52 1999/03/09 13:39:01 scrappy Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -57,6 +57,10 @@ ...@@ -57,6 +57,10 @@
#include <errno.h> #include <errno.h>
#endif #endif
#ifdef __CYGWIN32__
#include <errno.h>
#endif
/* ---------------------------------------------------------------- /* ----------------------------------------------------------------
* Section 1: bool, true, false, TRUE, FALSE * Section 1: bool, true, false, TRUE, FALSE
* ---------------------------------------------------------------- * ----------------------------------------------------------------
...@@ -829,6 +833,20 @@ extern char *form(const char *fmt,...); ...@@ -829,6 +833,20 @@ extern char *form(const char *fmt,...);
#define COPY_CMD "cp" #define COPY_CMD "cp"
#define SEP_CHAR '/' #define SEP_CHAR '/'
/* defines for dynamic linking on Win32 platform */
#ifdef __CYGWIN32__
#if __GNUC__ && ! defined (__declspec)
#error You need egcs 1.1 or newer for compiling!
#endif
#ifdef BUILDING_DLL
#define DLLIMPORT __declspec (dllexport)
#else /* not BUILDING_DLL */
#define DLLIMPORT __declspec (dllimport)
#endif
#else /* not CYGWIN */
#define DLLIMPORT
#endif
/* Provide prototypes for routines not present in a particular machine's /* Provide prototypes for routines not present in a particular machine's
* standard C library. It'd be better to put these in config.h, but * standard C library. It'd be better to put these in config.h, but
* in config.h we haven't yet included anything that defines size_t... * in config.h we haven't yet included anything that defines size_t...
......
...@@ -26,7 +26,7 @@ typedef struct TriggerData ...@@ -26,7 +26,7 @@ typedef struct TriggerData
Trigger *tg_trigger; Trigger *tg_trigger;
} TriggerData; } TriggerData;
extern TriggerData *CurrentTriggerData; extern DLLIMPORT TriggerData *CurrentTriggerData;
#define TRIGGER_EVENT_INSERT 0x00000000 #define TRIGGER_EVENT_INSERT 0x00000000
#define TRIGGER_EVENT_DELETE 0x00000001 #define TRIGGER_EVENT_DELETE 0x00000001
......
...@@ -66,9 +66,9 @@ typedef struct ...@@ -66,9 +66,9 @@ typedef struct
#define SPI_OK_UPDATE 9 #define SPI_OK_UPDATE 9
#define SPI_OK_CURSOR 10 #define SPI_OK_CURSOR 10
extern uint32 SPI_processed; extern DLLIMPORT uint32 SPI_processed;
extern SPITupleTable *SPI_tuptable; extern DLLIMPORT SPITupleTable *SPI_tuptable;
extern int SPI_result; extern DLLIMPORT int SPI_result;
extern int SPI_connect(void); extern int SPI_connect(void);
extern int SPI_finish(void); extern int SPI_finish(void);
......
...@@ -13,3 +13,8 @@ SHLIB_LINK=$(DLLLIBS) ...@@ -13,3 +13,8 @@ SHLIB_LINK=$(DLLLIBS)
$(DLLTOOL) --export-all --output-def $*.def $< $(DLLTOOL) --export-all --output-def $*.def $<
$(DLLWRAP) -o $@ --def $*.def $< $(SRCDIR)/utils/dllinit.o $(DLLLIBS) $(DLLWRAP) -o $@ --def $*.def $< $(SRCDIR)/utils/dllinit.o $(DLLLIBS)
rm -f $*.def rm -f $*.def
curdir:=$(shell pwd)
ifeq ($(findstring backend,$(curdir)), backend)
CFLAGS+= -DBUILDING_DLL=1
endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment