From tlytle123 at gmail.com Thu Jun 9 15:33:15 2022 From: tlytle123 at gmail.com (Tyler Lytle) Date: Fri Jun 10 01:17:57 2022 Subject: [odb-users] Cannot Compile ODB Compiler on RHEL 8.5 In-Reply-To: References: Message-ID: Hello Boris, Thank you for the reply. I'm sorry it took me so long to get back to you. I got caught up in some other work then I caught Covid so I was out of commission for a bit. I got the following output: [tlytle@localhost odb]$ g++ --print-file-name=plugin /usr/lib/gcc/x86_64-redhat-linux/8/plugin [tlytle@localhost plugin]$ cd /usr/lib/gcc/x86_64-redhat-linux/8/plugin/ [tlytle@localhost plugin]$ ls annobin.so annobin.so.0 annobin.so.0.0.0 libcc1plugin.so libcc1plugin.so.0 libcc1plugin.so.0.0.0 libcp1plugin.so libcp1plugin.so.0 libcp1plugin.so.0.0.0 The include/ directory is actually up one directory level as shown below: [tlytle@localhost plugin]$ cd .. [tlytle@localhost 8]$ ls 32 crtbeginT.o crtfastmath.o crtoffloadtable.o crtprec80.o libasan.so libgcc_eh.a libgomp.a libitm.spec libquadmath.so libstdc++.so libubsan.so crtbegin.o crtend.o crtoffloadbegin.o crtprec32.o include libatomic.so libgcc_s.so libgomp.so liblsan_preinit.o libsanitizer.spec libtsan_preinit.o plugin crtbeginS.o crtendS.o crtoffloadend.o crtprec64.o libasan_preinit.o libgcc.a libgcov.a libgomp.spec liblsan.so libstdc++fs.a libtsan.so rpmver I hope this helps. Thank you for your time. On Wed, May 25, 2022 at 6:18 AM Boris Kolpackov wrote: > Tyler Lytle writes: > > > [tlytle@localhost odb-2.4.0]$ g++ -v > > > > [...] > > > > gcc version 8.5.0 20210514 (Red Hat 8.5.0-3) (GCC) > > > > The INSTALL directions then say to ensure that the plugin headers are > > installed. It is normally called something like "gcc-plugin-dev". Looking > > at the RHEL 8.5 repository, the closest thing that I could find is > > this: gcc-toolset-11-gcc-plugin-devel-11.2.1-1.1.el8.x86_64 > > > > I installed that RPM from the RHEL 8.5 repository. I then run > "./configure" > > and I get the following error: > > > > checking for GCC plugin headers... no > > Can you run: > > $ g++ --print-file-name=plugin > > If that prints a directory, can you check that it contains the > include/ subdirectory and a bunch of header files (.h) inside? > > If this all checks out, then it's most likely GCC 8 is too new > for ODB 2.4.0 and I suggest that you try to build the latest > pre-release of ODB 2.5.0 (which is known to work with GCC 8) > by following these instructions: > > https://codesynthesis.com/products/odb/doc/install-build2.xhtml > -- Tyler Lytle E-Mail: tlytle123@gmail.com From boris at codesynthesis.com Fri Jun 10 11:27:38 2022 From: boris at codesynthesis.com (Boris Kolpackov) Date: Fri Jun 10 11:23:18 2022 Subject: [odb-users] Cannot Compile ODB Compiler on RHEL 8.5 In-Reply-To: References: Message-ID: Tyler Lytle writes: > I got the following output: > > [tlytle@localhost odb]$ g++ --print-file-name=plugin > /usr/lib/gcc/x86_64-redhat-linux/8/plugin > > [tlytle@localhost plugin]$ cd /usr/lib/gcc/x86_64-redhat-linux/8/plugin/ > [tlytle@localhost plugin]$ ls > annobin.so annobin.so.0 annobin.so.0.0.0 libcc1plugin.so > libcc1plugin.so.0 libcc1plugin.so.0.0.0 libcp1plugin.so > libcp1plugin.so.0 libcp1plugin.so.0.0.0 > > The include/ directory is actually up one directory level as shown below: I don't think that's the directory we are looking for. The one we are after should be inside the directory reported with --print-file-name=plugin. It should contain headers like gcc.h and gcc-plugin.h. It looks like you only have the plugin libraries but not the headers. Maybe there is a separate package that contains these? Try to look for a package that contains gcc-plugin.h. From tlytle123 at gmail.com Fri Jun 10 18:27:56 2022 From: tlytle123 at gmail.com (Tyler Lytle) Date: Mon Jun 13 10:30:07 2022 Subject: [odb-users] Cannot Compile ODB Compiler on RHEL 8.5 In-Reply-To: References: Message-ID: I think I am going down a rabbit hole of RPM issues. The RHEL 8.5 ISO that contains the RedHat provided repository does not seem to have a plugin support package for GCC 8. But, weirdly, it has plugin support packages for GCC 9, 10, and 11. I don't quite understand what I'm looking at or how to find things so I went a different route. I instead downloaded the precompiled ODB 2.4.0 RPM from the Code Synthesis website and installed that and I am now making headway. The runtime ODB library was able to be built and installed correctly. Now, I am trying to build and install the MySQL runtime library. I am getting the following error during configuration: [tlytle@localhost libodb-mysql-2.4.0]$ ./configure ... configure: error: libmysqlclient_r is not found; consider using CPPFLAGS/LDFLAGS to specify its location Looking in /usr/lib64/mysql, the only MySQL related libraries are these: libmysqlclient.so libmysqlclient.so.21 libmysqlclient.so.21.1.26 Looking around on the web, the libmysqlclient_r library is no longer distributed with newer versions of MySQL as the libmysqlclient.so library is now re-entrant, rendering the libmysqlclient_r.so library meaningless. To bypass this, I just created a symlink named libmysqlclient_r.so to libmysqlclient.so. After doing this, I can now get configure to work. However, when trying to make the libodb-mysql runtime library, I get a mountain of errors. If you want, I can copy-paste these in a separate e-mail or get them to you some other way, but it is a lot of compilation errors. The make commands are as follows: [tlytle@localhost libodb-mysql-2.4.0]$ make Making all in odb/mysql make[1]: Entering directory '/home/tlytle/repos/common/odb/libodb-mysql-2.4.0/odb/mysql' make all-am make[2]: Entering directory '/home/tlytle/repos/common/odb/libodb-mysql-2.4.0/odb/mysql' depbase=`echo connection.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I'../..' -I'../..' -DLIBODB_MYSQL_DYNAMIC_LIB -g -O2 -D_REENTRANT -MT connection.lo -MD -MP -MF $depbase.Tpo -c -o connection.lo connection.cxx &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I../.. -I../.. -DLIBODB_MYSQL_DYNAMIC_LIB -g -O2 -D_REENTRANT -MT connection.lo -MD -MP -MF .deps/connection.Tpo -c connection.cxx -fPIC -DPIC -o .libs/connection.o Just one example of the errors in the output: In file included from ../../odb/mysql/mysql.hxx:27, from ../../odb/mysql/database.hxx:18, from connection.cxx:8: /usr/include/mysql/mysql.h:640:16: error: using typedef-name 'MYSQL_BIND' after 'struct' typedef struct MYSQL_BIND { ^~~~~~~~~~ On Fri, Jun 10, 2022 at 10:27 AM Boris Kolpackov wrote: > Tyler Lytle writes: > > > I got the following output: > > > > [tlytle@localhost odb]$ g++ --print-file-name=plugin > > /usr/lib/gcc/x86_64-redhat-linux/8/plugin > > > > [tlytle@localhost plugin]$ cd /usr/lib/gcc/x86_64-redhat-linux/8/plugin/ > > [tlytle@localhost plugin]$ ls > > annobin.so annobin.so.0 annobin.so.0.0.0 libcc1plugin.so > > libcc1plugin.so.0 libcc1plugin.so.0.0.0 libcp1plugin.so > > libcp1plugin.so.0 libcp1plugin.so.0.0.0 > > > > The include/ directory is actually up one directory level as shown below: > > I don't think that's the directory we are looking for. The one > we are after should be inside the directory reported with > --print-file-name=plugin. It should contain headers like gcc.h > and gcc-plugin.h. > > It looks like you only have the plugin libraries but not the > headers. Maybe there is a separate package that contains these? > Try to look for a package that contains gcc-plugin.h. > -- Tyler Lytle E-Mail: tlytle123@gmail.com From boris at codesynthesis.com Mon Jun 13 10:50:11 2022 From: boris at codesynthesis.com (Boris Kolpackov) Date: Mon Jun 13 10:45:47 2022 Subject: [odb-users] Cannot Compile ODB Compiler on RHEL 8.5 In-Reply-To: References: Message-ID: Tyler Lytle writes: > I think I am going down a rabbit hole of RPM issues. The RHEL 8.5 ISO that > contains the RedHat provided repository does not seem to have a plugin > support package for GCC 8. Hm, that's strange. I did a bit of googling and at least CentOS seems to have it. It appears the package you are looking for should be called: gcc-plugin-devel-8.5.0-3.el8.x86_64.rpm > I instead downloaded the precompiled ODB 2.4.0 RPM from the Code > Synthesis website and installed that and I am now making headway. > > [...] > > After doing this, I can now get configure to work. However, when trying to > make the libodb-mysql runtime library, I get a mountain of errors. I took a look in the commit history[1] and it appears we've made a number of changes since the 2.4.0 release to make libodb-mysql compatible with newer versions of MySQL: I can try to look through the log and point you to the relevant patches that you could then try to apply to libodb-mysql-2.4.0, but I think you will have a much better experience going forward if you manage to get your GCC plugin support sorted and then build the latest 2.5.0 pre-release based on these instructions: https://codesynthesis.com/products/odb/doc/install-build2.xhtml [1] https://git.codesynthesis.com/cgit/odb/libodb-mysql/log/ From tlytle123 at gmail.com Tue Jun 14 13:14:13 2022 From: tlytle123 at gmail.com (Tyler Lytle) Date: Wed Jun 15 07:44:29 2022 Subject: [odb-users] Cannot Compile ODB Compiler on RHEL 8.5 In-Reply-To: References: Message-ID: Thank you very much for your time, Boris. I believe that we are going to pursue using ODB 2.5.0 as falling back to an older version of MySQL is not desirable for us. We will seek out a proper GCC 8 Plugin RPM package so that we can build the ODB 2.5.0 compiler. One last question: does ODB support MariaDB in any capacity? I know it is more-or-less a carbon copy of MySQL, but I presumed the libodb-mysql configure tools isn't flexible enough to determine if MariaDB is installed and to use its header files and libraries. On Mon, Jun 13, 2022 at 9:50 AM Boris Kolpackov wrote: > Tyler Lytle writes: > > > I think I am going down a rabbit hole of RPM issues. The RHEL 8.5 ISO > that > > contains the RedHat provided repository does not seem to have a plugin > > support package for GCC 8. > > Hm, that's strange. I did a bit of googling and at least CentOS seems > to have it. It appears the package you are looking for should be called: > > gcc-plugin-devel-8.5.0-3.el8.x86_64.rpm > > > > I instead downloaded the precompiled ODB 2.4.0 RPM from the Code > > Synthesis website and installed that and I am now making headway. > > > > [...] > > > > After doing this, I can now get configure to work. However, when trying > to > > make the libodb-mysql runtime library, I get a mountain of errors. > > I took a look in the commit history[1] and it appears we've made a number > of changes since the 2.4.0 release to make libodb-mysql compatible with > newer versions of MySQL: > > I can try to look through the log and point you to the relevant patches > that you could then try to apply to libodb-mysql-2.4.0, but I think you > will have a much better experience going forward if you manage to get your > GCC plugin support sorted and then build the latest 2.5.0 pre-release > based on these instructions: > > https://codesynthesis.com/products/odb/doc/install-build2.xhtml > > [1] https://git.codesynthesis.com/cgit/odb/libodb-mysql/log/ > -- Tyler Lytle E-Mail: tlytle123@gmail.com From boris at codesynthesis.com Wed Jun 15 10:39:42 2022 From: boris at codesynthesis.com (Boris Kolpackov) Date: Wed Jun 15 10:35:17 2022 Subject: [odb-users] Cannot Compile ODB Compiler on RHEL 8.5 In-Reply-To: References: Message-ID: Tyler Lytle writes: > One last question: does ODB support MariaDB in any capacity? I know it is > more-or-less a carbon copy of MySQL, but I presumed the libodb-mysql > configure tools isn't flexible enough to determine if MariaDB is installed > and to use its header files and libraries. The 2.5.0 version of libodb-mysql supports both MySQL and MariaDB and there is a configuration variable to select which client library to use. The magic incantation (which will hopefully make more sense once you go through the setup steps) will look like this: $ bpkg build config.libodb_mysql.client_lib=mariadb -- \ libodb-mysql ?sys:libmysqlclient ?sys:libmariadb Or, if you want to try to build libmariadb from source (we have known-to-build packages for both MySQL and MariaDB), then: $ bpkg build config.libodb_mysql.client_lib=mariadb -- \ libodb-mysql libmariadb ?sys:libmysqlclient (That ?sys:libmysqlclient is currently necessary because we don't yet have conditional dependencies in the package manager so libodb-mysql unconditionally depends on libmysqlclient even though at the build system level one can select between different client libraries. But that support is coming in the next version of build2). From tlytle123 at gmail.com Wed Jun 15 11:04:57 2022 From: tlytle123 at gmail.com (Tyler Lytle) Date: Wed Jun 15 11:51:35 2022 Subject: [odb-users] Cannot Compile ODB Compiler on RHEL 8.5 In-Reply-To: References: Message-ID: Two more questions: Do you have a timeframe for when 2.5.0 will become the stable release? Also, I downloaded the odb-2.5.0-b.21.tar.gz source and tried to build it using "./configure; make; make install" but it appears there is no configure file or Makefile. Do I have to build ODB using the build2 tool? On Wed, Jun 15, 2022 at 9:39 AM Boris Kolpackov wrote: > Tyler Lytle writes: > > > One last question: does ODB support MariaDB in any capacity? I know it is > > more-or-less a carbon copy of MySQL, but I presumed the libodb-mysql > > configure tools isn't flexible enough to determine if MariaDB is > installed > > and to use its header files and libraries. > > The 2.5.0 version of libodb-mysql supports both MySQL and MariaDB and > there is a configuration variable to select which client library to > use. > > The magic incantation (which will hopefully make more sense once you > go through the setup steps) will look like this: > > $ bpkg build config.libodb_mysql.client_lib=mariadb -- \ > libodb-mysql ?sys:libmysqlclient ?sys:libmariadb > > Or, if you want to try to build libmariadb from source (we have > known-to-build packages for both MySQL and MariaDB), then: > > $ bpkg build config.libodb_mysql.client_lib=mariadb -- \ > libodb-mysql libmariadb ?sys:libmysqlclient > > (That ?sys:libmysqlclient is currently necessary because we don't yet > have conditional dependencies in the package manager so libodb-mysql > unconditionally depends on libmysqlclient even though at the build > system level one can select between different client libraries. But > that support is coming in the next version of build2). > -- Tyler Lytle E-Mail: tlytle123@gmail.com From boris at codesynthesis.com Wed Jun 15 12:00:57 2022 From: boris at codesynthesis.com (Boris Kolpackov) Date: Wed Jun 15 11:56:32 2022 Subject: [odb-users] Cannot Compile ODB Compiler on RHEL 8.5 In-Reply-To: References: Message-ID: Tyler Lytle writes: > Do you have a timeframe for when 2.5.0 will become the stable release? We don't have a firm estimate, but aiming for later this year/early next year. > Also, I downloaded the odb-2.5.0-b.21.tar.gz source and tried to build it > using "./configure; make; make install" but it appears there is no > configure file or Makefile. Do I have to build ODB using the build2 tool? Yes, ODB 2.5.0 can only be built with build2 as described in these step-by-step guide: https://codesynthesis.com/products/odb/doc/install-build2.xhtml Note that once installed, ODB can be used with any other build system, just like if it were built with an autotools-based build system (there are even pkg-config files). From tlytle123 at gmail.com Wed Jun 15 12:12:46 2022 From: tlytle123 at gmail.com (Tyler Lytle) Date: Thu Jun 16 09:57:21 2022 Subject: [odb-users] Cannot Compile ODB Compiler on RHEL 8.5 In-Reply-To: References: Message-ID: Boris, I used the build2 tool and tried to build/install libodb-mysql. I noticed this output: new libz/1.2.1200+1 (required by libcrypto, libmysqlclient) new libcrypto/1.1.1+16 (required by libmysqlclient, libssl) new libssl/1.1.1+16 (required by libmysqlclient) new libmysqlclient/8.0.15+11 (required by libodb-mysql) new libodb-mysql/2.5.0-b.21 I am building this on RHEL 8.5 which has the 1.1.1k version of these OpenSSL libraries. Do I have to use these 1.1.1+16 libraries? What changes were introduced in these 1.1.1+16 libraries? I looked at the OpenSSL website and I don't see any mention of these 1.1.1+16 libraries. On Wed, Jun 15, 2022 at 10:04 AM Tyler Lytle wrote: > Two more questions: > > Do you have a timeframe for when 2.5.0 will become the stable release? > Also, I downloaded the odb-2.5.0-b.21.tar.gz source and tried to build it > using "./configure; make; make install" but it appears there is no > configure file or Makefile. Do I have to build ODB using the build2 tool? > > On Wed, Jun 15, 2022 at 9:39 AM Boris Kolpackov > wrote: > >> Tyler Lytle writes: >> >> > One last question: does ODB support MariaDB in any capacity? I know it >> is >> > more-or-less a carbon copy of MySQL, but I presumed the libodb-mysql >> > configure tools isn't flexible enough to determine if MariaDB is >> installed >> > and to use its header files and libraries. >> >> The 2.5.0 version of libodb-mysql supports both MySQL and MariaDB and >> there is a configuration variable to select which client library to >> use. >> >> The magic incantation (which will hopefully make more sense once you >> go through the setup steps) will look like this: >> >> $ bpkg build config.libodb_mysql.client_lib=mariadb -- \ >> libodb-mysql ?sys:libmysqlclient ?sys:libmariadb >> >> Or, if you want to try to build libmariadb from source (we have >> known-to-build packages for both MySQL and MariaDB), then: >> >> $ bpkg build config.libodb_mysql.client_lib=mariadb -- \ >> libodb-mysql libmariadb ?sys:libmysqlclient >> >> (That ?sys:libmysqlclient is currently necessary because we don't yet >> have conditional dependencies in the package manager so libodb-mysql >> unconditionally depends on libmysqlclient even though at the build >> system level one can select between different client libraries. But >> that support is coming in the next version of build2). >> > > > -- > Tyler Lytle > E-Mail: tlytle123@gmail.com > -- Tyler Lytle E-Mail: tlytle123@gmail.com From david.w.mann5.ctr at us.navy.mil Wed Jun 15 13:31:32 2022 From: david.w.mann5.ctr at us.navy.mil (Mann, David W (B62) CTR USN NAVSURFWARCEN DAH VA (USA)) Date: Thu Jun 16 09:57:21 2022 Subject: [odb-users] Can I use C++ 17 std::optional members with ODB? Message-ID: Hello, I just tried to add some optional values to an ODB class. This class works with C++17 primitive types (std::string, int, double). However, when I added the following members, I get an error during the ODB compile: std::optional m_testDouble; The error was error: unable to map C++ type '::std::optional< double >' used in data member 'm_testDouble' to a SQLite database type. Is there a way I can work around this? I also tried to make the declaration a type and use #pragma db value, but I got a different error about the type not being persistent. V/R David -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 6698 bytes Desc: not available Url : https://codesynthesis.com/pipermail/odb-users/attachments/20220615/b9246705/smime.bin From boris at codesynthesis.com Thu Jun 16 10:11:13 2022 From: boris at codesynthesis.com (Boris Kolpackov) Date: Thu Jun 16 10:06:48 2022 Subject: [odb-users] Cannot Compile ODB Compiler on RHEL 8.5 In-Reply-To: References: Message-ID: Tyler Lytle writes: > I used the build2 tool and tried to build/install libodb-mysql. I noticed > this output: > > new libz/1.2.1200+1 (required by libcrypto, libmysqlclient) > new libcrypto/1.1.1+16 (required by libmysqlclient, libssl) > new libssl/1.1.1+16 (required by libmysqlclient) > new libmysqlclient/8.0.15+11 (required by libodb-mysql) > new libodb-mysql/2.5.0-b.21 > > I am building this on RHEL 8.5 which has the 1.1.1k version of these > OpenSSL libraries. Do I have to use these 1.1.1+16 libraries? No, you can use the system-installed version: $ bpkg drop libodb-mysql $ bpkg build libodb-mysql ?sys:libssl ?sys:libcrypto In fact, you may want to use system-installed libmysqlclient: $ bpkg build libodb-mysql ?sys:libmysqlclient The installation instructions that I linked to actually cover this. > What changes were introduced in these 1.1.1+16 libraries? 1.1.1+16 is actually 1.1.1n: https://cppget.org/libssl From boris at codesynthesis.com Thu Jun 16 10:27:43 2022 From: boris at codesynthesis.com (Boris Kolpackov) Date: Thu Jun 16 10:23:18 2022 Subject: [odb-users] Can I use C++ 17 std::optional members with ODB? In-Reply-To: References: Message-ID: Mann, David W (B62) CTR USN NAVSURFWARCEN DAH VA (USA) writes: > std::optional m_testDouble; > > The error was error: unable to map C++ type '::std::optional< double >' used > in data member 'm_testDouble' to a SQLite database type. > > Is there a way I can work around this? Yes, we should actually add built-in support for this (I will try to add it before the next 2.5.0 pre-release). In the meantime, you can place the following specialization into a header, say, odb-optional-traits.hxx: ------------------------------------------------------------------ #pragma once #include #include #include namespace odb { template class wrapper_traits> { public: using wrapped_type = T; using wrapper_type = std::optional; // T can be const. // using unrestricted_wrapped_type = typename std::remove_const::type; static const bool null_handler = true; static const bool null_default = true; static bool get_null (const wrapper_type& o) { return !o; } static void set_null (wrapper_type& o) { o = wrapper_type (); } static const wrapped_type& get_ref (const wrapper_type& o) { return *o; } static unrestricted_wrapped_type& set_ref (wrapper_type& o) { if (!o) o = unrestricted_wrapped_type (); return const_cast (*o); } }; } ------------------------------------------------------------------ And then add the following two ODB compiler options when compiling your headers: --odb-epilogue '#include "odb-optional-traits.hxx"' --hxx-prologue '#include "odb-optional-traits.hxx"' From david.w.mann5.ctr at us.navy.mil Thu Jun 16 10:59:25 2022 From: david.w.mann5.ctr at us.navy.mil (Mann, David W (B62) CTR USN NAVSURFWARCEN DAH VA (USA)) Date: Fri Jun 17 03:53:55 2022 Subject: [Non-DoD Source] Re: [odb-users] Can I use C++ 17 std::optional members with ODB? In-Reply-To: References: Message-ID: Thank you! I will give that a try and let you know if I need any more info. V/R David -----Original Message----- From: Boris Kolpackov Sent: Thursday, June 16, 2022 10:28 AM To: Mann, David W (B62) CTR USN NAVSURFWARCEN DAH VA (USA) Cc: odb-users@codesynthesis.com Subject: [Non-DoD Source] Re: [odb-users] Can I use C++ 17 std::optional members with ODB? Mann, David W (B62) CTR USN NAVSURFWARCEN DAH VA (USA) writes: > std::optional m_testDouble; > > The error was error: unable to map C++ type '::std::optional< double > >' used in data member 'm_testDouble' to a SQLite database type. > > Is there a way I can work around this? Yes, we should actually add built-in support for this (I will try to add it before the next 2.5.0 pre-release). In the meantime, you can place the following specialization into a header, say, odb-optional-traits.hxx: ------------------------------------------------------------------ #pragma once #include #include #include namespace odb { template class wrapper_traits> { public: using wrapped_type = T; using wrapper_type = std::optional; // T can be const. // using unrestricted_wrapped_type = typename std::remove_const::type; static const bool null_handler = true; static const bool null_default = true; static bool get_null (const wrapper_type& o) { return !o; } static void set_null (wrapper_type& o) { o = wrapper_type (); } static const wrapped_type& get_ref (const wrapper_type& o) { return *o; } static unrestricted_wrapped_type& set_ref (wrapper_type& o) { if (!o) o = unrestricted_wrapped_type (); return const_cast (*o); } }; } ------------------------------------------------------------------ And then add the following two ODB compiler options when compiling your headers: --odb-epilogue '#include "odb-optional-traits.hxx"' --hxx-prologue '#include "odb-optional-traits.hxx"' -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 6698 bytes Desc: not available Url : https://codesynthesis.com/pipermail/odb-users/attachments/20220616/c4cf162f/smime.bin From tlytle123 at gmail.com Thu Jun 16 19:18:07 2022 From: tlytle123 at gmail.com (Tyler Lytle) Date: Fri Jun 17 03:53:55 2022 Subject: [odb-users] Cannot Compile ODB Compiler on RHEL 8.5 In-Reply-To: References: Message-ID: Thank you, Boris. I was able to successfully build and install ODB 2.5.0. I was unfamiliar with build2 but now I am understanding that it is basically a package manager and a build tool rolled into one. I think I can take it from here. I appreciate your time and help. On Thu, Jun 16, 2022 at 9:11 AM Boris Kolpackov wrote: > Tyler Lytle writes: > > > I used the build2 tool and tried to build/install libodb-mysql. I noticed > > this output: > > > > new libz/1.2.1200+1 (required by libcrypto, libmysqlclient) > > new libcrypto/1.1.1+16 (required by libmysqlclient, libssl) > > new libssl/1.1.1+16 (required by libmysqlclient) > > new libmysqlclient/8.0.15+11 (required by libodb-mysql) > > new libodb-mysql/2.5.0-b.21 > > > > I am building this on RHEL 8.5 which has the 1.1.1k version of these > > OpenSSL libraries. Do I have to use these 1.1.1+16 libraries? > > No, you can use the system-installed version: > > $ bpkg drop libodb-mysql > $ bpkg build libodb-mysql ?sys:libssl ?sys:libcrypto > > In fact, you may want to use system-installed libmysqlclient: > > $ bpkg build libodb-mysql ?sys:libmysqlclient > > The installation instructions that I linked to actually cover > this. > > > > What changes were introduced in these 1.1.1+16 libraries? > > 1.1.1+16 is actually 1.1.1n: https://cppget.org/libssl > -- Tyler Lytle E-Mail: tlytle123@gmail.com