From: antispam@fricas.org   
      
   Simon Clubley wrote:   
   > On 2025-09-09, Waldek Hebisch wrote:   
   >> Simon Clubley wrote:   
   >>> On 2025-09-09, Craig A. Berry wrote:   
   >>>> Assuming you've copied the VMS headers over to Linux where you are   
   >>>> building the compiler, the switch would just be -D_USE_STD_STAT.   
   >>>   
   >>> Copying the headers is what I did (with patches afterwards IIRC).   
   >>> Waldek OTOH said that he was creating his own headers. I don't know   
   >>> if that is still the case.   
   >>   
   >> I am using my own headers and my own (fake) libraries. Because   
   >> may fakes are static libraries the resulting binary has no   
   >> chance of working. I need to work out how to generate fake   
   >> shared images, then binaries linked to fake libraries when   
   >> transfed to VMS will use real libraries from the system and should   
   >> work.   
   >>   
   >   
   > I can see how you might be able to get this working with sharable   
   > images, but I am not seeing how you might get this working with   
   > .olb object module libraries, given that the contents are linked into   
   > the executable during linking and are not referenced at runtime.   
   >   
   > Unless there's something I am not seeing, that would mean the actual   
   > link would have to be done on VMS, and that you couldn't use binutils   
   > on Linux to create the actual VMS Alpha executable image.   
      
   AFAICS everthing needed to run simple programs is provided by   
   imagelib.olb. imagelib.olb is "shared image library", it does   
   not contain code but only references to sharable images. I think   
   that now I know enough to build "working" imagelib.olb. I put   
   working in quote, because to really work is also needs sharable   
   images which it references and that I need to work out.   
      
   By default GNU ld also wants to use 'starlet.olb' and   
   'sys$public_vectors'. I do not know if 'starlet.olb' is a "shared   
   image library" or just static library. IIUC 'sys$public_vectors'   
   is a sharable image. So at least programs that do not use   
   'starlet.olb' should work after linking with fake shareable   
   images. And I think that this includes a lot of code.   
      
   People that need to link to static libraries will need to   
   use real VMS libraries, that is clear.   
      
   >>> BTW, according to the messages I posted at the time, Waldek's C++   
   >>> build failure is identical to the one I experienced so clearly   
   >>> nothing has changed in this area since then.   
   >>   
   >> I have now fix or workaround for this issue, so build goes further.   
   >> But I get different assembler error at later stage.   
   >>   
   >   
   > Nice to see progress on C++. That means you have got further than   
   > I did with C++.   
      
   Well, even geting reproducible failure is worthwhile. I reported   
   failures in binutils to binutils developers and Alan Modra fixed   
   them. So now binutils from developement trunk should work as   
   well or better than the old ones.   
      
   Part of this is finding guilty party. ATM I still do not know   
   if assembler should make more effort to handle code generated   
   by g++, or g++ should generate code more to the assembler   
   liking.   
      
   --   
    Waldek Hebisch   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|