-
Notifications
You must be signed in to change notification settings - Fork 46
Building P4P against PVXS+TLS #177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
@ernestow The change made by this PR should not be necessary with epics-base/pvxs#53 or epics-base/pvxs#115. Some added Makefile magic in PVXS should automatically inject a dependency on This mechanics keys off of the
Or append to After building, look for the results in
|
This variable is set when building PVXS (not P4P). |
After, Could be because you auto discover openssl via: "configure/probe-openssl.c" ? ernesto@dev-epicsgw (tls) $ cat cfg/TOOLCHAIN_PVXS.rhel9-x86_64 Add OpenSSL library paths for specific targetsUSR_LDFLAGS_windows-x64-mingw += -L/usr/x86_64-w64-mingw32/lib64 |
At runtime, I get: So, then I tried: |
Following Michael's advice on how to include required libraries from PVXS. |
Sorry, I am re-opening the pull request and will simply update. |
“Updated the patch based on review — now using dependencies from "<>/pvxs/cfg/" as suggested. Let me know if further changes are needed.” By the way at run time, I still have the issue with interference python 3.10 and openssl. |
@ernestow I am changing this PR to a Draft. Ultimately, the SPVA changes will not require any change to dependent module builds. At present this is not the case with epics-base/pvxs#115 . |
Also, I take it that you are not setting It might be interesting to see how your
|
I have removed the hack of using LD_PRELOAD at run time :) Wordy comment below: How to build P4P with the new PVXS which has TLS support (06/16/25) Note:
===============================================================================================================
|
My readelf looks good now, I think: ernesto@dev-epicsgw $ readelf -d python3.11/rhel9-x86_64/p4p/_p4p.so Dynamic section at offset 0x20d540 contains 39 entries: |
@ernestow There is difference between our build situations. (not right or wrong, just different) In my case, |
That indeed was the issue:
I built shared library for pvxs instead of only static:
(p4p-build-env_tls-1.3) ***@***.*** $ pwd
/sdf/group/cds/sw/epics/users/TestStand/modules/pvxs/latest/lib/rhel9-x86_64
(p4p-build-env_tls-1.3) ***@***.*** $ ls
libpvxs.a libpvxsIoc.a libpvxsIoc.so@ libpvxsIoc.so.1.3* libpvxs.so@ libpvxs.so.1.3*
Works nicely now:
No changes, to P4P except I create a python environment with a newer version of openssl
(p4p-build-env_tls-1.3) ***@***.*** $ bin/rhel9-x86_64/pvagw -h
usage: pvagw [-h] [--no-ban-local] [-v] [--logging LOGGING] [--debug] [-T] [--example-config] [--example-systemd] config
positional arguments:
config Config file
options:
-h, --help show this help message and exit
--no-ban-local Legacy option. Ignored
-v, --verbose Enable basic logging with DEBUG level
--logging LOGGING Use logging config from file (JSON in dictConfig format)
--debug Enable extremely verbose low level PVA debugging
-T, --test-config Read and validate configuration files, then exit w/o starting a gateway. Also prints the names of all
configuration files read.
--example-config Write an example configuration file and exit. "--example-config -" writes to stdout
--example-systemd Write an example systemd unit file and exit "--example-systemd -" writes to stdout
…________________________________
From: mdavidsaver ***@***.***>
Sent: Monday, June 23, 2025 9:40 AM
To: epics-base/p4p ***@***.***>
Cc: Williams Jr., Ernest L. ***@***.***>; Mention ***@***.***>
Subject: Re: [epics-base/p4p] Building P4P against PVXS+TLS (PR #177)
BEWARE: This email originated outside of our organization. DO NOT CLICK links or attachments unless you recognize the sender and know the content is safe.
[https://avatars.githubusercontent.com/u/4429215?s=20&v=4]mdavidsaver left a comment (epics-base/p4p#177)<#177 (comment)>
@ernestow<https://github.com/ernestow> There is difference between our build situations. (not right or wrong, just different)
In my case, _p4p.so is linked against libpvxs.so (the shared library). In your case it is linked against libpvxs.a (the static library).
—
Reply to this email directly, view it on GitHub<#177 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AB44BJESHHGDK3UZ5K4GOXD3FAUZFAVCNFSM6AAAAAB7D2IMTSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDSOJXGE3DGMRVHA>.
You are receiving this because you were mentioned.
|
Still not should how to use rpath correctly. |
I don't disagree :) I don't work with conda, and so don't know what its developers consider the Right Way. |
Changes made in order to compile P4P with the forked PVXS tls branch.
HOST OS: Rocky 9
Python ENV 3.10
Due to conflicts with openssl library provided by conda at run time I needed the following:
LD_PRELOAD=/usr/lib64/libssl.so:/usr/lib64/libcrypto.so LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH bin/rhel9-x86
_64/pvagw -h
Here is my CONFIG_SITE.local file for reference:
md: edit to be less shouty