[Info-vax] Error running MariaDB

John Reagan xyzzy1959 at gmail.com
Fri Oct 9 07:54:32 EDT 2020


On Friday, October 9, 2020 at 6:19:00 AM UTC-4, hb wrote:
> On 10/9/20 10:47 AM, issinoho wrote: 
> > On Friday, 9 October 2020 at 00:35:41 UTC+1, xyzz... at gmail.com wrote: 
> >> You need to use /DEFINE=(__CRTL_VER=80400000) when you compile the code [or whatever the oldest version you want to support]. 
> >> Those symbols are described in the CRTL reference manual. 
> >> 
> >> The new fpclassify() work is guarded such that older __CRTL_VER will skip the definition of the new support 
> >> and the references to the new MATH$ entry points. The release notes for another RTL ECO kit will be clearer. 
> >> 
> >> And yes, putting new functionality in remedial ECO kits is not something that has been done in the past. 
> > 
> > Does ANAL/IMAGE list versions of libraries built against? All I could get was the following... 
> > 
> > Shareable Image List 
> > 
> > 0) "DECC$SHR" 
> > 1) "CMA$TIS_SHR" 
> > 2) "LIBRTL" 
> > 3) "DPML$SHR" 
> > 4) "LIBOTS" 
> > 5) "PTHREAD$RTL" 
> > 6) "SYS$PUBLIC_VECTORS"
> There is no "version" of a shareable image recorded in the image. There 
> is only a Global Section MATCH control, which usually indicates whether 
> the order of entries in the symbol vector changed. Here the order did 
> not change (so the GSMATCH didn't change), but new entries were added. 
> 
> ANALYZE/IMAGE for an image lists the shareable images it depends on. It 
> also shows the Global Section MATCH control. In its output look for 
> 'global section name: "DPML$SHR_001"'. The preceding lines have the 
> GSMATCH info. You will see that this matches your DPML$SHR. 
> 
> Anyway, ANALYZE/IMAGE does not compare the GSMATCH found in the image 
> with the GSMATCH in the shareable on the system. It also does not try to 
> find out whether all the references to the shareable image can be 
> resolved from the shareable on the system, usually found in SYS$SHARE. 
> So ANALYZE/IMAGE can't detect this problem. 
> 
> The new and here missing entries in the symbol vector of the shareable 
> image are detected at image activation time. That is, when the image 
> activator tries to resolve the references. 
> 
> As already said, the sources need to be recompiled either on a system 
> without the CRTL ECO, probably your system, or with using the above 
> __CRTL_VER macro.
And we never bump the GSMATCH on any RTL anymore.  

Consider this very case.  If we had bumped the minor ID, then ANY program (even "helloworld.c") linked against the new RTL even if it didn't use something like fpclassify() would now demand that the new RTL be installed.  Instead, we just rely on the missing symbol vector error message.  Sadly, there is no way for the activating system to know a name of the missing routine.

We'd only bump the MAJOR ID if we decided to shuffle the symbol vector.  And there is no reason for that.  In such an extreme case, I'd just make new RTL with a different name.

The GSMATCH MAJOR,MINOR has its roots going all the way back to the VAX days where transfer vectors and the UNIVERSAL attribute didn't provide the ability to catch "going past the end of the vector".



More information about the Info-vax mailing list