Menu

How to generate 64 bit library module (dll) on windows using this compiler?

2022-04-29
2022-04-29
  • eugene borreo

    eugene borreo - 2022-04-29

    I tried to installed this compiler on my local and produce dll but when I run sigcheck to check if the dll is 32 or 64 bit, seems like it only generate 32 bit. Appreciate any explanation on this and any advise if possible to generate 64bit.

     
    • Mickey White

      Mickey White - 2022-04-29

      For Windows 64bit I suggest try https://www.arnoldtrembley.com/GnuCOBOL.htm
      and look for (UPDATED 2020-12-30) MSYS2 64-bit MinGW GnuCOBOL 3.1.2 for Windows

       
    • Ralph Linkletter

      Do you have a COBOL program that requires more than 2,147,483,648 bytes of address space ? That is two billion +.
      If not, the 32 bit COBOL will work just fine with a 64 bit Windows OS.

      I am waiting and still counting on one finger the number of COBOL application programs requiring more than 2,147,483,648 bytes of addressability :-)

      Ralph

       
      • Simon Sobisch

        Simon Sobisch - 2022-04-29

        In my personal experience the main reasons to use 32 bit, in order of ordering:

        • there are other 64bit libraries that should be CALLed / linked to
        • application server has a 64bit only OS (true for some GNU/Linux environments if you don't want to install the 32bit subsystem, possibly true for some Windows Server versions some day)
        • some stakeholders recognizes 32bit software as red signal "outdated"
        • big files should be memory-mapped in the application; in this case you can get over 2GB more fast
        • the complete application otherwise needs 2GB over all modules (if I remember correctly there was a limit with something like 1,4GB for Windows if you don't use "special link options" that need to be both in libcob(possibly also in cobcrun if you use that) and all COBOL modules)
        • quite GnuCOBOL specific: you want to compile big programs with high optimization levels, in this case the used C compiler needs to be 64bit and if you don't want to use its cross-compilation to x86 feature (which is possible as cobc just calls a system process which goes over the bit-ness-border), then "everything 64bit" is the easiest option

        All of those are valid reasons.

         

Anonymous
Anonymous

Add attachments
Cancel