Have just upgraded my OS from Mint 18.3 to 20.1 and am reinstalling software. The C compiler and GnuCOBOL versions on 20.1 are the same as I had on 18.3 (which worked fine).
./configure says that the C compiler (gcc 9.3.0) cannot create executables (see below):
[/home/robert/GnuCOBOL/gnucobol-3.1.2]$./configurecheckingforaBSD-compatibleinstall.../usr/bin/install-ccheckingwhetherbuildenvironmentissane...yescheckingforathread-safemkdir-p.../usr/bin/mkdir-pcheckingforgawk...gawkcheckingwhethermakesets$(MAKE)...yescheckingwhethermakesupportsnestedvariables...yescheckingformake...makecheckingwhethermakesupportsorder-onlyprerequisites...yescheckingwhetherCFLAGS-Ocanbemodified...yescheckingforgcc...gcccheckingwhethertheCcompilerworks...noconfigure:error:in`/home/robert/GnuCOBOL/gnucobol-3.1.2':configure:error:CcompilercannotcreateexecutablesSee`config.log' for more details[/home/robert/GnuCOBOL/gnucobol-3.1.2]$
I don't know, but is it really reasonable to have fdebug-prefix-map with a path of a special home directory reasonable for "general use"? I guess those may be part of the system CFLAGS, in this case you may want to adjust this before the configure.
Note: That link does not point to a public file, so it cannot be downloaded directly.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
So with this reasonable deb file I think one likely needs either have gnucobol installed from the distro before or manually install the dependencies, correct?
Do you want to tackle the creation of a deb file which has libxml2-dev and libjsonc-dev installed before configuration (and possibly get rid of the local path in CFLAGS on the way)?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I will make a new deb binary this afternoon with all the missing xml, json, ncurses, ncurcesw, Can you help me how to get rid of local path? I used the attached guide to build the deb.
That's an interesting one. to get rid of the local path I'd start do just do echo ---$CFLAGS--- ---$CPPFLAGS--- ---$LDFLAGS--- and check if/where local paths are in.
I assume the option is found in the first one, in this case you can then:
./configure CFLAGS="copy and paste CFLAGS here but without any option that has a local path"
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I updated the first post with the new deb package. I tested it with a live-mint (I installed the build essential package first sudo apt install build-essential) environment and works fine.
👍
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Congrats to the new deb, I think that will help some people.
Thinking of this: the CI/CD likely could also provide something like this, can you please drop your updated "recipe" (tarball to .deb)? I should be able to place it into the Ubuntu CI.
Note: I've mod-edited the build-essential part in (my first guess would have been build-essentials) that you noted below. As I've never used that: what does apt install -f do?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
According to stackoverflow this commonly means that you have gcc for a different architecture than you compile for. The commonly recommended sudo apt install gcc-multilibis likely not what you want - something is not setup correct on your environment, I guess you miss the correct (64bit) libraries or ld.
I suggest, if not done already, to do: sudo apt install build-essentials libgmp-dev libncurses-dev libdb-dev libxml2-dev libjson-c-dev and then try again (if you want to run make check additionally add perl).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Part of auto-tools autotest (make check), so that's at least one reason. There may be other scripts in the config/build/test/document/optional-edge-case tool chain.
But, yeah, perl just be handy to have in your $PATH.
Have good,
Blue
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Concerning GnuCOBOL: only to run 'make test' (the NIST85 testsuite). If you run a development snapshot or a "special" hardware/software to build GnuCOBOL it should be run and pass, but you're on a PC with a standart GNU/Linux distro with a release tarball, so I'd say it is 99.999% pass and id personally not run it.
Nice to know that your build works. I'm any case I suggest to reach out to the Mint folks asking them for an up-to-date package of GnuCOBOL to ease the next install.
==========
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
==========
I have attached a list of applications I installed before I install GnuCOBOL. i do not understand your other request.
Have just upgraded my OS from Mint 18.3 to 20.1 and am reinstalling software. The C compiler and GnuCOBOL versions on 20.1 are the same as I had on 18.3 (which worked fine).
./configure says that the C compiler (gcc 9.3.0) cannot create executables (see below):
Have attached config.log (zipped).
I'm just poking my head in for no reason, looks like Simon's got you covered, Robert. Eh? Full bumper to bumper? ;-) And...
Hey, Robert. (spoken all excited like, yelling across a yard at a barbecue). Nice to see Animal.
Have good,
Blue
Download the attached deb package
open Terminal.
install with
Last edit: Simon Sobisch 2021-05-18
I don't know, but is it really reasonable to have
fdebug-prefix-map
with a path of a special home directory reasonable for "general use"? I guess those may be part of the system CFLAGS, in this case you may want to adjust this before the configure.Note: That link does not point to a public file, so it cannot be downloaded directly.
I cannot provide a direct link, I attached the deb file in my previous post and I updated the post.
Thanks
So with this reasonable deb file I think one likely needs either have gnucobol installed from the distro before or manually install the dependencies, correct?
Do you want to tackle the creation of a deb file which has libxml2-dev and libjsonc-dev installed before configuration (and possibly get rid of the local path in CFLAGS on the way)?
I will make a new deb binary this afternoon with all the missing xml, json, ncurses, ncurcesw, Can you help me how to get rid of local path? I used the attached guide to build the deb.
Last edit: Nikos 2021-05-17
That's an interesting one. to get rid of the local path I'd start do just do
echo ---$CFLAGS--- ---$CPPFLAGS--- ---$LDFLAGS---
and check if/where local paths are in.I assume the option is found in the first one, in this case you can then:
./configure CFLAGS="copy and paste CFLAGS here but without any option that has a local path"
I updated the first post with the new deb package. I tested it with a live-mint (I installed the build essential package first
sudo apt install build-essential
) environment and works fine.Congrats to the new deb, I think that will help some people.
Thinking of this: the CI/CD likely could also provide something like this, can you please drop your updated "recipe" (tarball to .deb)? I should be able to place it into the Ubuntu CI.
Note: I've mod-edited the
build-essential
part in (my first guess would have been build-essentials) that you noted below. As I've never used that: what doesapt install -f
do?apt install -f
fixes , attempts to correct a system with broken dependencies.Build the deb.
I used the
dpkg-deb
to unpack - pack debs.When you look at config.log you see the output:
According to stackoverflow this commonly means that you have gcc for a different architecture than you compile for. The commonly recommended
sudo apt install gcc-multilib
is likely not what you want - something is not setup correct on your environment, I guess you miss the correct (64bit) libraries or ld.I suggest, if not done already, to do:
sudo apt install build-essentials libgmp-dev libncurses-dev libdb-dev libxml2-dev libjson-c-dev
and then try again (if you want to runmake check
additionally addperl
).3.1.2 compiled OK after I installed build-essential (build-essentials doesn't exist) and the other packages.
Why would I need to install perl?
'cause it's good for you, Robert. ;-)
Part of auto-tools autotest (
make check
), so that's at least one reason. There may be other scripts in the config/build/test/document/optional-edge-case tool chain.But, yeah, perl just be handy to have in your $PATH.
Have good,
Blue
Concerning GnuCOBOL: only to run 'make test' (the NIST85 testsuite). If you run a development snapshot or a "special" hardware/software to build GnuCOBOL it should be run and pass, but you're on a PC with a standart GNU/Linux distro with a release tarball, so I'd say it is 99.999% pass and id personally not run it.
Nice to know that your build works. I'm any case I suggest to reach out to the Mint folks asking them for an up-to-date package of GnuCOBOL to ease the next install.
Robert,
I have a laptop and a VM running Linux Mint 20.1 (under Windows 10). I am running GnuCOBOL 3.1.2 just fine.
Rich Di Iulio
Hi Rich,
Could you please send me the following:
Output from 'gcc --version'.
A list of the gcc packages marked as installed in Software Manager.
Lines 1 to the "Output variables." comment block (starts about line 207).
thanks,
Robert
On 02/05/2021 00:38, Rich Di Iulio wrote:
Hi Robert,
The output from gcc --version
==========
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
==========
I have attached a list of applications I installed before I install GnuCOBOL. i do not understand your other request.
Rich