mridoni / gixsql

GixSQL is an ESQL preprocessor and a series of runtime libraries to enable GnuCOBOL to access PostgreSQL, ODBC, MySQL, Oracle and SQLite databases.
GNU General Public License v3.0
16 stars 8 forks source link

Potential issue with release el8 rpm #149

Closed processor286 closed 1 year ago

processor286 commented 1 year ago

Trying to test a simple program am faced with the following error, here are some details of the software and platform.

gixsql was installed from the distribution RPM using yum

OS Version cat /etc/redhat-release Red Hat Enterprise Linux release 8.7 (Ootpa)

COBOL version cobc --version cobc (GnuCOBOL) 4.0.0 Copyright (C) 2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later https://gnu.org/licenses/gpl.html This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Keisuke Nishida, Roger While, Ron Norman, Simon Sobisch, Edward Hart Built May 19 2023 14:58:32 Packaged May 19 2023 14:57:59 UTC C version "8.5.0 20210514 (Red Hat 8.5.0-16.0.2)"

GIX SQL version gixsql --version gixpp - the ESQL preprocessor for Gix-IDE/GixSQL Version: 1.0.20b libgixpp version: 1.0.20b

installed RPM rpm -qa | grep gix gixsql-1.0.20b-1.el8.x86_64

Compilation and link attempt cobc -x T2.cbl -lgixsql /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgixsql.so: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()' collect2: error: ld returned 1 exit status


I've probably done something silly here, but appreciate a pointer in the right direction :)

processor286 commented 1 year ago

I might add, I've seen posts about filesystem in C++ and suggesting adding -lstdc++fs but this doesn't help, I don't have that library installed anywhere, and 'yum' did not bring in a dependency for it when I did:

yum -y install https://github.com/mridoni/gixsql/releases/download/v1.0.20b/gixsql-1.0.20b-1.el8.x86_64.rpm

GitMensch commented 1 year ago

This may be kind of a duplicate to #18; along with a possible broken el8 rpm.

Also see the note in the README about that: https://github.com/mridoni/gixsql/blob/fe866af4c648da9f79c457b6b2e5f977f5e12c1d/README.md?plain=1#L416

processor286 commented 1 year ago

I installed gcc-toolset-11 and it seems to not help:

scl enable gcc-toolset-11 bash
gcc --version
gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9.1.0.3)
Copyright (C) 2021 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.

cobc -x T2.cbl -lgixsql
/opt/rh/gcc-toolset-11/root/usr/bin/ld: /lib/../lib64/libgixsql.so: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
collect2: error: ld returned 1 exit status

Still not trying to compile GixSQL, just use the provided el8 rpm to precompile and link a cobol program

GitMensch commented 1 year ago

The important question is how the el8 RPM was built - and fix the missing dependency in there; I suggest to edit the issue title to point out that the el8 rpm is not functional

processor286 commented 1 year ago

Done. The workflow file that built the rpm doesn't appear to use an esoteric version of gcc, just EL8 from Alma and epel.

Might try running the steps from the workflow in my own el8 container to build it in my own environment and see if that helps.

mridoni commented 1 year ago

Yes, the workflow is actually a very simple, but I don't have a lot of experience with RPMs/RHEL/etc. so I might easily have missed something. I will try to make more tests during the next week.

mridoni commented 1 year ago

I reproduced it, in the next few days I will start working on a fix

mridoni commented 1 year ago

I have just uploaded new RHEL/AlmaLinux packages (package version is 1.0.20b-4); these should solve the install/link problems mentioned here.

GitMensch commented 1 year ago

@processor286 Can you please verify that this can be closed?

processor286 commented 1 year ago

@GitMensch yes, it is solved, can be closed, sorry for delay.

GitMensch commented 1 year ago

Please click on close then. Thank you.