From: cross@spitfire.i.gajendra.net   
      
   In article <108splv$24jsc$2@dont-email.me>,   
   Simon Clubley wrote:   
   >On 2025-08-29, Arne Vajhøj wrote:   
   >> On 8/29/2025 10:14 AM, Waldek Hebisch wrote:   
   >>> I wonder if anybody is using GNU binutils targeting VMS. I am   
   >>> trying to set up toolchain for cross-compilation (from Linux) to   
   >>> Alpha VMS. Trying reasonably recent (2.43 and 2.39) binutils I   
   >>> get errors suggesting serious brokennes, for example when I use   
   >>> 'ar' to create a library and later extract a member I get changed   
   >>> file and 'objdump' says that extracted file is malformed.   
   >>>   
   >>> I am now trying binutils 2.21 and apparently they do not have the   
   >>> problem above. But I see some weirdness and apparently '-shared'   
   >>> option (to create shared image) is not supported.   
   >>   
   >> I suspect very few try to build VMS executables on Linux.   
   >>   
   >   
   >A decade ago, I got as far as getting a simple C program for VMS Alpha   
   >to compile and link on Linux. Anything else more complicated than that   
   >(ie: other languages) failed and I suspect that either bits were missing   
   >from the public kits or the additional steps required were not obvious.   
   >   
   >I discussed this at length in comp.os.vms at the time. Anyone interested   
   >will have to rely on the notes I posted at the time as I have completely   
   >forgotten the details of any of this (and have no motivation to get back   
   >up to speed on them because my hobbies these days are very different and   
   >because there's no longer a proper hobbyist licence for VMS Alpha).   
   >   
   >> GNV got both ar and ld, but that does not help you.   
   >>   
   >> But are you sure you want to do it this way?   
   >>   
   >> My understanding is that you want to do:   
   >>   
   >> source-(compiler on Linux)->.obj->(ld on Linux)->VMS .exe   
   >>   
   >> I would go for:   
   >>   
   >> source-(compiler on Linux)->.obj->(LINK on VMS)->VMS .exe   
   >   
   >I strongly suspect that will not work as the VMS linker may not   
   >have the features needed to link those .o files.   
      
   What features? Presumably the `.o` files generated are actually   
   VMS `.OBJ` files. I suppose the compiler could generate generic   
   ELF or COFF or a.out objects for Alpha, and then rely on GNU LD   
   to do the right thing and convert them to a properly linked VMS   
   executable, but that seems a rather roundabout way to go.   
      
   >> Or if possible even better:   
   >>   
   >> source-(compiler on Linux)->.s-(GCC AS on VMS)->.obj-(LINK on VMS)->VMS .exe   
   >   
   >Er, why ? If you can get the BFD library working for VMS Alpha   
   >once again, that's the major problem sorted.   
   >   
   >> GCC AS (version 2.8) is working on VMS Alpha.   
   >   
   >Also, what makes you think that the GNU gas of that era will still   
   >be suitable for today's compilers ?   
      
   I'd be rather surprised if much had changed in that department.   
      
    - Dan C.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|