-
Notifications
You must be signed in to change notification settings - Fork 729
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
Tool configuration #2106
Tool configuration #2106
Conversation
a502c13
to
2c6a8e1
Compare
endif | ||
UMA_DLL_LINK_FLAGS += -qmkshrobj=0 -Wl,-brtl -Wl,-G -Wl,-bernotok -Wl,-bnoentry -lm |
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.
Why is -p 0
removed?
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.
-p 0
is an option understood by makeC++SharedLib_r
; this PR changes aix*.spec to use the C compiler: the equivalent is -qmkshrobj=0
.
endif | ||
UMA_DLL_LINK_FLAGS += -qmkshrobj=0 -Wl,-brtl -Wl,-G -Wl,-bernotok -Wl,-bnoentry -lm | ||
UMA_DLL_LINK_FLAGS += -Wl,-bE:$(UMA_TARGET_NAME).exp |
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.
Why -bE:
instead of -E? Was -E a mistake?
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.
Like above, as we switch to linking with the C compiler, we have to speak its language.
The -E
option of makeC++SharedLib_r
maps to -Wl,-bE:$(UMA_TARGET_NAME).exp
.
UMA ToolsUMA uses several kinds of tools via these properties:
Currently, these tools are essentially independent. The following tools are discovered at OpenJDK configuration time:
The plan is to adjust the OpenJ9 *.spec and module.xml files so this mapping consistently applies:
All of the UMA properties specifying linker commands will be adjusted to use To accomplish this:
|
endif | ||
# Link options like '-brtl', '-G', etc. must be prefixed by '-Wl,' to make xlc_r pass them through. | ||
UMA_DLL_LINK_FLAGS += -qmkshrobj -Wl,-brtl -Wl,-G -Wl,-bernotok -Wl,-bnoentry -lm |
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.
Did the -bmap:$(UMA_TARGET_NAME).map
get deliberately dropped (why) or accidentally lost?
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.
I'll restore the map creation.
As discussed today, we need to ensure that this change doesn't cause us to link the c++ standard library. |
2c3cdc8
to
de5492d
Compare
I think this is good to go. I wrote a script to use ldd to compare the dependencies of executables and shared libraries before and after this change: no extra references to C++ libraries. |
UMA_DLL_LINK_FLAGS += -bmap:$(UMA_TARGET_NAME).map | ||
UMA_DLL_LINK_FLAGS += -bE:$(UMA_TARGET_NAME).exp | ||
UMA_LINK_LIBRARIES += -lc_r -lC_r -lm -lpthread | ||
UMA_SYS_LINK_PATH := -L/usr/lib/threads |
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.
Please add a comment to explain the origins of this
jenkins test sanity |
* remove 'use_ld_to_link' property * always use C compiler for linking -- modules that require dynamically link C++ shared libraries must do so explicitly Signed-off-by: Keith W. Campbell <[email protected]>
* it should never be conditional * it has no meaning for static libraries Signed-off-by: Keith W. Campbell <[email protected]>
* correct references to xlc C++ library * remove configuration related to UMA_USING_LD_TO_LINK Signed-off-by: Keith W. Campbell <[email protected]>
Comment added as requested. |
jenkins test sanity |
jenkins test sanity xlinuxlargeheap jdk10 |
Who can help fix this?
|
Created #2161 |
@keithc-ca Have you validated that this doesn't link the C++ stdlib anywhere we didn't before? |
@DanHeidinga Yes, I verified that there are no new references to C++ shared libraries. |
-- it should never be conditional
-- it has no meaning for static libraries