From: arne@vajhoej.dk   
      
   On 8/29/2025 1:32 PM, Waldek Hebisch wrote:   
   > 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.   
      
   >> 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   
   >   
   > That is plan B. Working binutils would be simpler because   
   > I could use existing automated process.   
      
   But couldn't you have your existing automated process do the   
   link on VMS via some fancy scripting?   
      
   I have little faith in ld producing good VMS .exe.   
      
   All the GCC ports to VMS I have seen (GCC 1.4x on VAX,   
   GCC 2.8.x on Alpha and GNAT 2.8.x on Alpha) have used   
   VMS linker. I suspect they have their reasons.   
      
   > Actually, ATM I getting errors during gcc build. I can use   
   > crude workaround to go further, but I am affraid that to get   
   > working compiler I need either working binutils or to examine   
   > all build steps involving binutils and do equvalent work in   
   > different way.   
      
   Are you trying to get a recent GCC working on VMS?   
      
   In that case there may be some ideas from the GNAT   
   Itanium port done by the french:   
      
   https://github.com/AdaLabs/gnat-vms   
      
   >> Or if possible even better:   
   >>   
   >> source-(compiler on Linux)->.s-(GCC AS on VMS)->.obj-(LINK on VMS)->VMS .exe   
   >>   
   >> GCC AS (version 2.8) is working on VMS Alpha.   
   >   
   > Actually, it is possible that I will have to use   
   >   
   > source-(compiler on Linux)->.s-(VMS assembler)>.obj...   
   >   
   > because one of next goals is to get running compiler wich generate(d)   
   > assembly for VMS assembler and may be incompatible with GNU as. But   
   > this means more changes to build process (= work work => not better).   
      
   If you can generate VMS assembler, then you are all good.   
      
   Arne   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|