New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
unclear version error message #8661
Comments
From perl@nevcal.comThis is a bug report for perl from perl@nevcal.com, So in attempting to build PAR on Windows, an inappropriate installation Perl lib version (v5.8.8) doesn't match executable version (v5.8.3) at Having finally figured out the cause of the problem, with help from So "Perl lib version" in the above message is the hard coded string in And, it seems that "executable version" might really mean that for On Windows, where dynamic libraries are searched for according to the 1. Directory containing the executable program So the real problem was that I was looking for a perl.exe with the wrong It would be extremely helpful to use descriptive text in the message It would be extremely helpful if the complete file name of the perl file It would be great if the error message said something like: "Config.pm version (v5.8.8) doesn't match C:\Windows\system32\perl58.dll And it would be great if there were some explanation in Config.pod that Following Andy's suggestion that this should be reported as a bug, Andy suggested: Yes, that would have been more useful in this case. The 'Config.pm' part Does Windows perl have $Config{useshrplib} set? If so, we could change Perl Config.pm version (v5.8.8) doesn't match shared library version I don't know if that would be more or less confusing, however. On a related note, would adding useful comments to Config.pm near line 46 My attempt to analyze Andy's suggestion: I temporarily added a line in Config.pm just before the error message is None of that seems particularly useful. It is possible, on Windows, for So my patch (below) adds a paragraph of explanation, avoids using "lib" It would be very nice if the message could include the path to the Dunno how to attach to perlbug reports, so the patch is in-line, sorry. Inline Patch--- Config.pm~ Thu Sep 21 18:48:43 2006
+++ Config.pm Thu Nov 2 10:11:43 2006
@@ -40,11 +40,22 @@
return;
}
-die "Perl lib version (v5.8.8) doesn't match executable version ($])"
+# this error is generated when the compiled perl binary, either the
$^V eq v5.8.8 Flags: Site configuration information for perl v5.8.8: Configured by SYSTEM at Tue Aug 29 12:39:43 2006. Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Locally applied patches: @INC for perl v5.8.8: Environment for perl v5.8.8: --
|
From perl@nevcal.comconfig_pm.diff--- Config.pm~ Thu Sep 21 18:48:43 2006
+++ Config.pm Thu Nov 2 10:11:43 2006
@@ -40,11 +40,22 @@
return;
}
-die "Perl lib version (v5.8.8) doesn't match executable version ($])"
+# this error is generated when the compiled perl binary, either the executable
+# perl program for static builds, or the dynamic shared library for dynamic
+# builds, is not consistent with the version found in the CORE distributed
+# Config.pm file. This indicates some inconsistency in the Perl components
+# found at execution time, and such inconsistency is serious enough to be
+# considered fatal immediately, rather than attempting to execute with
+# mismatched components, which would likely lead to other, more mysterious
+# and difficult to diagnose issues. Check versions and paths to figure out
+# how the inconsistency was generated; be aware that on Windows, there are
+# 4 places searched for shared libraries before the PATH is searched!
+
+die "Perl Config.pm version (v5.8.8) doesn't match executable (or possibly shared library) version ($])"
unless $^V;
$^V eq v5.8.8
- or die "Perl lib version (v5.8.8) doesn't match executable version (" .
+ or die "Perl Config.pm version (v5.8.8) doesn't match executable (or possibly shared library) version (" .
sprintf("v%vd",$^V) . ")";
|
From @jkeenanOn Thu Nov 02 11:53:38 2006, perl@nevcal.com wrote:
I reviewed this older ticket tonight. Because it is lengthy, I urge * A complaint about the lack of helpfulness of this error message:
-- a message which I have also found confusing. * The original poster's analysis, with particular focus on how this gets * The poster's suggestion for an improved error message:
* The author's citation from feedback on a mailing list from Andy --
* The original poster's response to Andy's feedback and an inline patch:
Now, since Config.pm is a generated file, I believe the patch should ##### So, do people feel these error messages are sufficiently helpful? Thank you very much. |
The RT System itself - Status changed from 'new' to 'open' |
From @rjbsI think "Config.pm" would be clearer than "lib" -- I wonder if that |
From @jkeenanOn Sun Jan 22 15:13:15 2012, rjbs wrote:
Have you been able to follow up on this? Thank you very much. |
From @nwc10On Thu, Nov 02, 2006 at 11:53:39AM -0800, Glenn Linderman wrote:
Agree that it would be useful.
I think that's going to be more confusing, as it's going to be 100% wrong. The desire is to have the path of the (loaded) perl DLL in the error message. Nicholas Clark |
From @nwc10On Tue, Mar 27, 2012 at 02:06:28PM +0100, Nicholas Clark wrote:
I *think* that it may be possible to get about an 80% solution to this. My impression was that Win32 already can (easily) report the path of the It looks like *most* dl_open() based platforms provide a dl_addr() function DESCRIPTION const char* dli_fname The pathname of the shared object containing void* dli_fbase The base address (mach_header) at which the const char* dli_sname The name of the nearest run-time symbol with a void* dli_saddr The value of the symbol returned in dli_sname. The dladdr() function is available only in dynamically linked programs. (at least Linux, FreeBSD, OpenBSD, OS X and Solaris and, gosh, HP-UX. which should be good enough to find the filename for a symbol we know came I have enough more pressing itches to scratch that I can't promise to even Nicholas Clark |
From @nwc10On Wed, Apr 18, 2012 at 01:48:30PM +0100, Nicholas Clark wrote:
To add - if anyone wants to take this up, I think the most useful way to Nicholas Clark * We support both kinds of OS, ... |
From @tonycozOn Wed Apr 18 05:49:13 2012, nicholas wrote:
Perl on Win32 includes code to initialize w32_module_name when the DLL
I can add Haiku-OS to that list (well, it's in the headers.) This ticket included a patch to Config.pm, which is a generated file, so The ticket itself remains open if anyone is interested. Tony |
Migrated from rt.perl.org#40652 (status was 'open')
Searchable as RT40652$
The text was updated successfully, but these errors were encountered: