[Info-vax] PHP on VMS x86-64 9.2-2

Arne Vajhøj arne at vajhoej.dk
Thu Mar 21 19:39:54 EDT 2024


On 3/21/2024 7:35 PM, Arne Vajhøj wrote:
> On 3/20/2024 10:40 PM, Lawrence D'Oliveiro wrote:
>> On Wed, 20 Mar 2024 21:36:05 -0400, Arne Vajhøj wrote:
>>> On 3/20/2024 9:02 PM, Lawrence D'Oliveiro wrote:
>>>> early days, it never progressed to developing library versioning.
>>>
>>> It did.
>>
>> It’s supposed to solve problems with linking with incompatible libraries.
> 
> It refuses to load the executable when only an incompatible
> library is present. It does not by magic download a compatible
> library.

And for those that never got to read that section of the linker
manual:

$ type hello1.for
       subroutine hello
       write(*,*) 'hello 1'
       end
$ type hello2.for
       subroutine hello
       write(*,*) 'hello 2'
       end
$ type main.for
       program main
       call hello
       end
$ for hello1
$ for hello2
$ for main
$ set noon
$ def/nolog hello sys$disk:[]hello.exe
$! I am not aware of the issue
$ link/share=hello hello1 + sys$input/opt
symbol_vector=(hello=procedure)
$
$ link main + sys$input/opt
hello/share
$
$ run main
hello 1
$ link/share=hello hello2 + sys$input/opt
symbol_vector=(hello=procedure)
$
$ run main
%DCL-W-ACTIMAGE, error activating image HELLO
-CLI-E-IMGNAME, image file DKA0:[arne]hello.EXE;3
-SYSTEM-F-SHRIDMISMAT, ident mismatch with shareable image
$! I am not willing to commit to maintaining backwards compatibility
$ link/share=hello hello1 + sys$input/opt
gsmatch=equal,1,1
symbol_vector=(hello=procedure)
$
$ link main + sys$input/opt
hello/share
$
$ run main
hello 1
$ link/share=hello hello2 + sys$input/opt
gsmatch=equal,1,2
symbol_vector=(hello=procedure)
$
$ run main
%DCL-W-ACTIMAGE, error activating image HELLO
-CLI-E-IMGNAME, image file DKA0:[arne]hello.EXE;5
-SYSTEM-F-SHRIDMISMAT, ident mismatch with shareable image
$! I promise to maintain backwards compatibility
$ link/share=hello hello1 + sys$input/opt
gsmatch=lequal,1,1
symbol_vector=(hello=procedure)
$
$ link main + sys$input/opt
hello/share
$
$ run main
hello 1
$ link/share=hello hello2 + sys$input/opt
gsmatch=lequal,1,2
symbol_vector=(hello=procedure)
$
$ run main
hello 2
$! fake it
$ link/share=hello hello1 + sys$input/opt
gsmatch=equal,1,1
symbol_vector=(hello=procedure)
$
$ link main + sys$input/opt
hello/share
$
$ run main
hello 1
$ link/share=hello hello2 + sys$input/opt
gsmatch=equal,1,1
symbol_vector=(hello=procedure)
$
$ run main
hello 2
$! hack it
$ link/share=hello hello1 + sys$input/opt
gsmatch=always,1,1
symbol_vector=(hello=procedure)
$
$ link main + sys$input/opt
hello/share
$
$ run main
hello 1
$ link/share=hello hello2 + sys$input/opt
gsmatch=always,1,2
symbol_vector=(hello=procedure)
$
$ run main
hello 2

Arne




More information about the Info-vax mailing list