Skip to content
This repository has been archived by the owner on Jul 22, 2024. It is now read-only.

How to build a new copy of BBAPI using a newer version of BOOST #1020

Open
roymuss opened this issue Jan 28, 2022 · 2 comments
Open

How to build a new copy of BBAPI using a newer version of BOOST #1020

roymuss opened this issue Jan 28, 2022 · 2 comments

Comments

@roymuss
Copy link

roymuss commented Jan 28, 2022

Question

We have started integrating the SCR library into our code base. However, our code requires BOOST version 1.74.0 to compile (header-only). When we use SCR with BBAPI, it hangs during one of the boost calls. I believe that BBAPI is built with 1.53.0 and this is incompatible with our version.
Is there any possibility of an installation of BBAPI using the newer version of Boost? Or have an implementation that is more robust to conflicting boost versions?

I do see some install steps in docs in the github repo. However, it'd be good to get IBM's suggestion and help on the next steps.
-Roy Musselman
[email protected]

Answer:

_place

Approach:

here replace this with a short summary of how you addressed the problem. in the comments place step by step notes of progress as you go

What is next:

Define the next steps and follow up here

@tgooding
Copy link
Contributor

BBAPI uses RHEL8's system boost library, which is 1.66.0-10. The old releases that were based on RHEL7 used boost 1.60.0-4 (for boost::log).

The analysis presented here does not seem to be complete as header-only usage w/o linking 1.74 boost libraries shouldn't ripple outside of the SCR object file. There is more to that story (memory leak/corruption? something unexpected happening with dynloader (use LD_DEBUG))

That said, the side-channel discussion said the hang appeared within a C++ static constructor. We agree thats not a good hygiene, commit #1021 makes a change to connections.cc to avoid a C++ static constructor.

To build, the directions are generally:

% git commit https://github.com/IBM/CAST.git
% cd CAST

We use a build container to build CAST, you should be able to create the build container via:  
%  podman build --rm -t castbuild:8.4 -f scripts/Dockerfile

Then build via:
%  podman run --rm -v $PWD:/home/build castbuild:8.4 scripts/configure.pl --rpmbuild --skipcsm
%  podman run --rm -v $PWD:/home/build castbuild:8.4 scripts/rebuild noinstall package

This will create RPMs in work/rpms.

@roymuss
Copy link
Author

roymuss commented Feb 24, 2022 via email

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants