Hiroshi Inoue <in...@tpf.co.jp> writes:
> Though I'm not a MINGW expert at all, I know dllwrap is a deprecated
> tool and dlltool is almost a deprecated tool. Cygwin port is removing
> the use of dllwrap and dlltool now. Isn't it better for MINGW port to
> follow it?

Only way to make that happen is to prepare and test a patch ...

In the meantime, here's a short patch trying the "#define extern" approach.
Anyone want to try this on a Windows machine or two?  Or we could just
commit it in HEAD for long enough to see what the buildfarm says.

                        regards, tom lane

*** /home/postgres/pgsql/src/include/c.h	Fri Jan 17 15:57:23 2014
--- new/c.h	Sat Feb  8 17:19:00 2014
*************** extern int	vsnprintf(char *str, size_t c
*** 961,973 ****
  #define memmove(d, s, c)		bcopy(s, d, c)
  #endif
  
! /* no special DLL markers on most ports */
! #ifndef PGDLLIMPORT
  #define PGDLLIMPORT
- #endif
- #ifndef PGDLLEXPORT
  #define PGDLLEXPORT
- #endif
  
  /*
   * The following is used as the arg list for signal handlers.  Any ports
--- 961,969 ----
  #define memmove(d, s, c)		bcopy(s, d, c)
  #endif
  
! /* we don't use special DLL markers in declarations anymore */
  #define PGDLLIMPORT
  #define PGDLLEXPORT
  
  /*
   * The following is used as the arg list for signal handlers.  Any ports
*** /home/postgres/pgsql/src/include/port/cygwin.h	Tue Jul 23 13:41:12 2013
--- new/cygwin.h	Sat Feb  8 17:22:32 2014
***************
*** 10,18 ****
  #endif
  
  #ifdef BUILDING_DLL
! #define PGDLLIMPORT __declspec (dllexport)
  #else
! #define PGDLLIMPORT __declspec (dllimport)
  #endif
- 
- #define PGDLLEXPORT
--- 10,16 ----
  #endif
  
  #ifdef BUILDING_DLL
! #define extern	extern __declspec (dllexport)
  #else
! #define extern	extern __declspec (dllimport)
  #endif
*** /home/postgres/pgsql/src/include/port/win32.h	Sun Jan 26 22:38:59 2014
--- new/win32.h	Sat Feb  8 17:26:53 2014
***************
*** 73,93 ****
   */
  
  #if defined(WIN32) || defined(__CYGWIN__)
- 
  #ifdef BUILDING_DLL
! #define PGDLLIMPORT __declspec (dllexport)
  #else							/* not BUILDING_DLL */
! #define PGDLLIMPORT __declspec (dllimport)
! #endif
! 
! #ifdef _MSC_VER
! #define PGDLLEXPORT __declspec (dllexport)
! #else
! #define PGDLLEXPORT
  #endif
- #else							/* not CYGWIN, not MSVC, not MingW */
- #define PGDLLIMPORT
- #define PGDLLEXPORT
  #endif
  
  
--- 73,83 ----
   */
  
  #if defined(WIN32) || defined(__CYGWIN__)
  #ifdef BUILDING_DLL
! #define extern	extern __declspec (dllexport)
  #else							/* not BUILDING_DLL */
! #define extern	extern __declspec (dllimport)
  #endif
  #endif
  
  
*************** typedef int pid_t;
*** 347,354 ****
  
  
  /* In backend/port/win32/signal.c */
! extern PGDLLIMPORT volatile int pg_signal_queue;
! extern PGDLLIMPORT int pg_signal_mask;
  extern HANDLE pgwin32_signal_event;
  extern HANDLE pgwin32_initial_signal_pipe;
  
--- 337,344 ----
  
  
  /* In backend/port/win32/signal.c */
! extern volatile int pg_signal_queue;
! extern int pg_signal_mask;
  extern HANDLE pgwin32_signal_event;
  extern HANDLE pgwin32_initial_signal_pipe;
  
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to