diff Python/dynload_next.c @ 28060:fb79cc2630c1 2.2

Partial backport of 2.11: better error messages on import failures. Fixes #652590.
author Jack Jansen <jack.jansen@cwi.nl>
date Tue, 25 Feb 2003 14:20:44 +0000
parents 28f4cea209d7
children
line wrap: on
line diff
--- a/Python/dynload_next.c	Tue Feb 25 14:19:07 2003 +0000
+++ b/Python/dynload_next.c	Tue Feb 25 14:20:44 2003 +0000
@@ -120,6 +120,7 @@
 		NSModule newModule;
 		NSSymbol theSym;
 		const char *errString;
+		char errBuf[512];
 	
 		if (NSIsSymbolNameDefined(funcname)) {
 			theSym = NSLookupAndBindSymbol(funcname);
@@ -150,8 +151,15 @@
 		if (errString == NULL) {
 			newModule = NSLinkModule(image, pathname,
 				NSLINKMODULE_OPTION_BINDNOW|NSLINKMODULE_OPTION_RETURN_ON_ERROR);
-			if (!newModule)
-				errString = "Failure linking new module";
+			if (newModule == NULL) {
+				int errNo;
+				char *fileName, *moreErrorStr;
+				NSLinkEditErrors c;
+				NSLinkEditError( &c, &errNo, &fileName, &moreErrorStr );
+				PyOS_snprintf(errBuf, 512, "Failure linking new module: %s: %s", 
+						fileName, moreErrorStr);
+				errString = errBuf;
+			}
 		}
 		if (errString != NULL) {
 			PyErr_SetString(PyExc_ImportError, errString);