-
Notifications
You must be signed in to change notification settings - Fork 12
Add dyld_requires
#108
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
Add dyld_requires
#108
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -307,6 +307,38 @@ Attribute names are case sensitive. | |
| the latter, when applicable to the source being compiled, | ||
| shall have precedence. | ||
|
|
||
| .. ---------------------------------------------------------------------------- | ||
| .. cps:attribute:: dyld_requires | ||
| :type: list(string) | ||
| :context: component configuration | ||
|
|
||
| Specifies additional components required by a component | ||
| which are needed only by the dynamic library loader. | ||
| Unlike `requires (component)`_ or `link_requires`_, | ||
| these are not used to resolve symbol references of the consumer, | ||
| but represent "private" implementation requirements | ||
| of the component on which this attribute appears. | ||
|
|
||
| Typically, such requirements represent a need | ||
| to ensure that the required component can be found at run time. | ||
| This is usually accomplished in one of three ways: | ||
|
|
||
| - Ensuring that the component resides | ||
| in a default / "system" search path. | ||
|
|
||
| - Encoding the component path in the binary | ||
| in a way that influences the dynamic library loader | ||
| (e.g. "RPATH"). | ||
|
|
||
| - Providing the component path in an environment variable | ||
| which influences the dynamic library loader's search paths. | ||
|
|
||
| The last case requires external information to be provided; | ||
| this attribute facilitates tools generating that information. | ||
| In some instances, this external library search information | ||
| may also be required to successfully link components, | ||
| if the linker demands that all library references can be resolved. | ||
|
|
||
| .. ---------------------------------------------------------------------------- | ||
| .. cps:attribute:: hints | ||
| :type: list(string) | ||
|
|
@@ -427,8 +459,8 @@ Attribute names are case sensitive. | |
| :type: list(string) | ||
| :context: component configuration | ||
|
|
||
| Specifies a list of additional libraries that must be linked against | ||
| when linking code that consumes the component. | ||
| Specifies a list of additional libraries (as paths, not components) | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It would be good to clarify here that the paths doesn't need to be absolute, and that a possible intended use case, if I understood it correctly, is linkage to system libraries such as typical |
||
| that must be linked against when linking code that consumes the component. | ||
| (Note that packages should avoid using this attribute if at all possible. | ||
| Use `requires (component)`_ instead whenever possible.) | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to me, though would have been nice to have a explicit reference to the
-rpath-linkldflag as a motivator and example of the need for this item.