Skip to content
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

Constant values need to be defined #358

Closed
rhc54 opened this issue Aug 11, 2021 · 0 comments · Fixed by #394
Closed

Constant values need to be defined #358

rhc54 opened this issue Aug 11, 2021 · 0 comments · Fixed by #394

Comments

@rhc54
Copy link
Member

rhc54 commented Aug 11, 2021

Overview

The Standard currently only defines the name of PMIx constants - it does not assign them a value, thus leaving the value to each implementation. This creates a problem for vendors seeking to distribute implementation-agnostic products as they cannot know the meaning of a particular value returned by a function call.

Motivation

Implementation-agnostic products (e.g., debuggers) are typically compiled against one implementation, but are designed to work against whatever implementation is installed on the target system. This is done by using the combination of dlopen and dlsym to load the library and access its public APIs.

Unfortunately, the value of the constants in the code is determined at compile time - it isn't possible to load them via dlopen. Thus, the resulting binary is "locked" to the implementation against which it was compiled, thereby forcing the vendor to distribute implementation-specific copies of their product.

Discussion Items

The solution to the problem is to have the Standard define the actual value of each constant and not just its name. Doing this forces all implementations to use the same value, thus allowing for implementation-agnostic products to be distributed.

raffenet added a commit to raffenet/pmix-standard that referenced this issue Feb 15, 2022
Finish assigning values to constants as defined in OpenPMIx. This is
basically a revert of
pmix@a256e08
and
pmix@296edb4
from pmix#359.

Refs pmix#358.

Signed-off-by: Ken Raffenetti <[email protected]>
raffenet added a commit to raffenet/pmix-standard that referenced this issue Feb 15, 2022
Finish assigning values to constants as defined in OpenPMIx. This is
basically a revert of
pmix@a256e08
and
pmix@296edb4
from pmix#359.

Refs pmix#358.

Signed-off-by: Ken Raffenetti <[email protected]>
raffenet added a commit to raffenet/pmix-standard that referenced this issue Feb 16, 2022
Finish assigning values to constants as defined in OpenPMIx. This is
basically a revert of
pmix@a256e08
and
pmix@296edb4
from pmix#359.

Refs pmix#358.

Signed-off-by: Ken Raffenetti <[email protected]>
jjhursey pushed a commit to raffenet/pmix-standard that referenced this issue Mar 10, 2022
Finish assigning values to constants as defined in OpenPMIx. This is
basically a revert of
pmix@a256e08
and
pmix@296edb4
from pmix#359.

Refs pmix#358.

Signed-off-by: Ken Raffenetti <[email protected]>
@jjhursey jjhursey linked a pull request Apr 12, 2022 that will close this issue
raffenet added a commit to raffenet/pmix-standard that referenced this issue Jul 25, 2022
Finish assigning values to constants as defined in OpenPMIx. This is
basically a revert of
pmix@a256e08
and
pmix@296edb4
from pmix#359.

Refs pmix#358.

Signed-off-by: Ken Raffenetti <[email protected]>
raffenet added a commit to raffenet/pmix-standard that referenced this issue Jul 27, 2022
Finish assigning values to constants as defined in OpenPMIx. This is
basically a revert of
pmix@a256e08
and
pmix@296edb4
from pmix#359.

Refs pmix#358.

Signed-off-by: Ken Raffenetti <[email protected]>
jjhursey pushed a commit to raffenet/pmix-standard that referenced this issue Aug 11, 2022
Finish assigning values to constants as defined in OpenPMIx. This is
basically a revert of
pmix@a256e08
and
pmix@296edb4
from pmix#359.

Refs pmix#358.

Signed-off-by: Ken Raffenetti <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant