Menu

Installation Build fail

2022-01-12
2022-12-31
1 2 > >> (Page 1 of 2)
  • Jack Tearle

    Jack Tearle - 2022-01-12

    Any help with this error, compiler is gcc version 7.3.0

     
  • Vincent (Bryan) Coen

    Are you using one of the Windows build from the Arnold website ?

    If not, I suggest you do so.

     
  • Jack Tearle

    Jack Tearle - 2022-01-13

    No, it is the gnucobol-3.1.2 that I downloaded today.
    Environment is gcc 7.3.0 on SCO Unix.

     
    • David Wall

      David Wall - 2022-01-13

      admittedly it's a comparison of a mingw build of 3.2 with a whatever yours is:
      but the difference (major that is ) starts about here:
      see attached comparison of my build log with yours.
      Don't know if it helps. - haven't kept a log of a 3.1 build for yonks.

       
  • Simon Sobisch

    Simon Sobisch - 2022-01-13

    Please provide config.log, too.

    The issue seems that mpz_abs as used in numeric.c and intrinsic.c (defined as __gmpz_abs) and is integrated into the object file, similar with the "fits" functions in common.c and intrinsic.c.

    The most reasonable guess is that they already get in with including the header.

    Mabe config.log helps a bit - if you know which header is used then please attach it, too.

     
  • Jack Tearle

    Jack Tearle - 2022-01-13

    I made a change to LD_LIBRARY_PATH and ran configure and make again.

     
    • David Wall

      David Wall - 2022-01-13

      Something wrong with the configure - every ten lines or so it's 'compilation terminated'.
      No wonder the make fails.

       
      • Simon Sobisch

        Simon Sobisch - 2022-01-13

        That's no real issue - configure actually tests a bunch of things and then checks with the correct compilation if the tested feature works or not; as long as configure does not error the make step should pass, too.

         
  • Simon Sobisch

    Simon Sobisch - 2022-01-13

    As this is all GMP related and GMP is quite old which has a lot of effect on arithmetic performance I'd suggest to:

    • download, configure and install GMP - possibly with an explicit --prefix to not affect other parts of the system
    • export LD_LIBRARY_PATH accordingly (add the installed library directory), then run GnuCOBOL's configure with PKG_CONFIG_PATH=/path/to/gmps/pc (or as an alternative the complete CPPFLAGS and LDFLAGS necessary)

    This should result in an output of "GMP 6.2.1" instead of "GMP 4.2" - and hopefully a working make.

     
  • Jack Tearle

    Jack Tearle - 2022-01-14

    More troubles, does GMP 6.2.1 now require a 64bit system?

     
    • Simon Sobisch

      Simon Sobisch - 2022-01-14

      No, it doesn't. Try to run configure CC="gcc -m32" and see if this is better (assuming you actually want a 32bit GnuCOBOL).

       
  • Simon Sobisch

    Simon Sobisch - 2022-01-21

    Ping @kitamanswinner - any update with your 32bit GMP build for your 32bit GnuCOBOL environment?

     
  • Anonymous

    Anonymous - 2022-01-21

    I downloaded the current version of gmp621.
    Configure ran ok, and compiled ok,
    When it came to linking, there was a problem with about a dozen programs (assert.o among others) that were pre-compiled in the distribution using Ubuntu gcc, and when I tried to individually compile those, the compilation failed.

     
    • Simon Sobisch

      Simon Sobisch - 2022-01-21

      Then either some system libraries are only 64 bit or the linker path point to those or... my configure line was not as good as it should have been: CFLAGS="-m32" LDFLAGS="-m32" (and potentially include / library paths to point to 32bit first).

       

      Last edit: Simon Sobisch 2022-01-21
  • Jack Tearle

    Jack Tearle - 2022-01-21

    Using:
    ./configure CFLAGS="-m32" LDFLAGS="-m32"
    I get the following error:
    ....
    checking size of unsigned long... 4
    checking size of mp_limb_t... 4
    configure: error: Oops, mp_limb_t is 32 bits, but the assembler code
    in this configuration expects 64 bits.
    You appear to have set $CFLAGS, perhaps you also need to tell GMP the
    intended ABI, see "ABI and ISA" in the manual.
    unix:/tmp/gmp621.4#

    Some days I wish I had learned to compile C programs, other days I am glad I didn't.

     
    • Simon Sobisch

      Simon Sobisch - 2022-01-21

      The GMP manual says: add ABI=32 (and mentions that a 64bit build would be faster).

       
  • Jack Tearle

    Jack Tearle - 2022-01-21

    Unfortunately SCO is 32bit only.
    Ran with additional ABI=32 on configure, then had to make a .libs directory and copy all existing .o files to it.
    Then ended with the same problem:

    .libs/assert.o: file not recognized: File format not recognized
    collect2: error: ld returned 1 exit status
    make[2]: [libgmp.la] Error 1
    make[2]: Leaving directory /tmp/gmp621.4' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory/tmp/gmp621.4'
    make:
    [all] Error 2
    unix:/tmp/gmp621.4#

    partial content of assert.o :

    %d:
    GNU MP assertion failed: %s
    GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
    assert.c
    .LC0
    .LC1
    .LC2
    __gmp_assert_header
    stderr
    GLOBAL_OFFSET_TABLE
    __fprintf_chk

    I don't know how to get past this, as assert.o is part of the distribution.

     
    • Simon Sobisch

      Simon Sobisch - 2022-01-22

      What do you mean with

      had to make a .libs directory and copy all existing .o files to it

      ?
      When you run make it should create this directory and compile the files into it.

       
  • Jack Tearle

    Jack Tearle - 2022-01-22

    make does not create the .libs directory.
    When I created it myself, and copied the existing .o files to it, they were not changed by make.
    When I deleted the .o files in .libs, and also deleted the .o files in the distribution, the associated .c files were not compiled.

     
  • Simon Sobisch

    Simon Sobisch - 2022-02-04

    The only issue that is noted in GMPs Known Build Problems is that you rather should use GNU make than the system one.
    For one ABI=32 it is listed that there are build issues when you don't add --disable-shared.

    Please report your findings:

    • configure chooses to build 64bit ABI (but that seems to be related to gcc defaulting to 64bit, which is quite strange for a 32bit only OS; so maybe GCC is to blame?)
    • linking does not work because the distribution-shipped assert.o fails to link

    to the GMP Bugs mailing list.

     
  • Jack Tearle

    Jack Tearle - 2022-02-05

    Finally. I have attached the errors from 'make check' .
    What files are necessary to create a downloadable binary package?

     
    • Simon Sobisch

      Simon Sobisch - 2022-02-05

      What did you do to now have a working compile?

      For the testsuite: there is tests/testsuite.log, please attach that to inspect the failures.

      Can you please do a second build (possibly in a folder next to yours) using a 3.2 nightly build? You can find the URLs at https://sourceforge.net/projects/gnucobol/files/gnucobol/nightly_snapshots/ - I guess the results are possibly better.

       
  • Jack Tearle

    Jack Tearle - 2022-02-05

    Linux users generally start a script with #!/bin/sh assuming that it is a link to /bin/bash. This is not true with SCO, as for backwards compatibility, the original Bourne shell sh is shipped along with ksh93 and bash. Once I changed /bin/sh to be /bin/bash, I was able to install gmp-6.2.1, after which I added /usr/local/lib to LD_LIBRARY_PATH and did configure, make and make test for gnucobol.
    I edited the testsuite.log and just attached the errors, most of which were expected.
    @Simon, can you send me a private email, I lost your email address last October when I ran out of disk space and tried unsuccessfully to re-partition the disk (don't ask).

     

    Last edit: Jack Tearle 2022-02-05
    • Simon Sobisch

      Simon Sobisch - 2022-02-05

      Good to know that the shell was the reason for the build issues, I guess there would have been the option to manually start bash and pass SHELL=/bin/bash to configure (that won't help for scripts, of course).

      You can commonly upload testsuite.log here (potentially after removing the minor pieces that would show the system environment); which would be useful for you to receive general answers also from others and will also others show both the potential issue and the solution together.

      If you really need personal support then we possibly could find an agreement (and there are companies doing this, too); if there's no bigger thing like in this case you find my email address in at least every ChangeLog file in the gnucobol folder.

      That said: can you please check the results with the GnuCOBOL nightly instead of the old 31rc-1?

       
  • Jack Tearle

    Jack Tearle - 2022-02-06

    I installed gnucobol-4.0-early-dev. Attached is the testsuite.log
    I had to cancel tests 850,851,1109 and 1110, as they appeared to be hung (ran for minutes).

     
1 2 > >> (Page 1 of 2)

Anonymous
Anonymous

Add attachments
Cancel