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/