Igor,

On Thu, Jan 02, 2003 at 03:03:21PM -0500, Igor Pechtchanski wrote:
> How about doing exactly what the message suggests (see attached)?

I think that I found the best solution -- auto-import the functions by
just removing the "__declspec(dllimport)" indicators.  If interested,
see attached.

Thanks,
Jason

-- 
PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers
Fingerprint: 7A73 1405 7F2B E669 C19D  8784 1AFD E4CC ECF4 8EF6
--- Begin Message ---
On Tue, Dec 31, 2002 at 05:14:17PM -0500, Tim Peters wrote:
> Please don't make this kind of change -- it makes the code so much
> harder to follow.  If this is needed for Cygwin, then, e.g., do
> 
> [snip]

I believe that I have found a cleaner solution to this problem.
Cygwin's ld can auto-import functions:

    http://www.cygwin.com/ml/cygwin-apps/2001-08/msg00024.html

Specifically, the following snippet is the most pertinent:

    We "always" have allowed 'auto-import' of *functions* that are
    exported by the DLL (as long as the DLL contains the appropriate
    symbols).

Note I don't believe that "always" pertained when I first started down
this path in the Python 2.0 time frame.

Anyway, with the attached patch to pyport.h, I was able to build Cygwin
Python without any errors.  Note this includes the new datetime module
from CVS -- not the patched one in sandbox.

I feel this is the best approach because modules should build under
Cygwin without the standard Cygwin style patch that I have been
submitting for years.  Do others concur?  If so, then I will begin to
clean up the "mess" that I have created.

Now if SF could search for patches by the submitter, my job would be a
little easier...

Jason

-- 
PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers
Fingerprint: 7A73 1405 7F2B E669 C19D  8784 1AFD E4CC ECF4 8EF6
Index: pyport.h
===================================================================
RCS file: /cvsroot/python/python/dist/src/Include/pyport.h,v
retrieving revision 2.57
diff -u -p -r2.57 pyport.h
--- pyport.h    28 Dec 2002 21:56:07 -0000      2.57
+++ pyport.h    2 Jan 2003 20:51:50 -0000
@@ -429,7 +429,11 @@ and both these use __declspec()
 #              else /* Py_BUILD_CORE */
                        /* Building an extension module, or an embedded situation */
                        /* public Python functions and data are imported */
-#                      define PyAPI_FUNC(RTYPE) __declspec(dllimport) RTYPE
+#                      if defined(__CYGWIN__)
+#                              define PyAPI_FUNC(RTYPE) RTYPE
+#                      else /* __CYGWIN__ */
+#                              define PyAPI_FUNC(RTYPE) __declspec(dllimport) RTYPE
+#                      endif /* __CYGWIN__ */
 #                      define PyAPI_DATA(RTYPE) extern __declspec(dllimport) RTYPE
                        /* module init functions outside the core must be exported */
 #                      if defined(__cplusplus)
--- End Message ---
--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to