-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
[build] Automatically set USE_BINARYBUILDER_CSL=0
when local CSL is new
#41645
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fixes #40585 |
giordano
reviewed
Jul 20, 2021
deps/csl.mk
Outdated
else | ||
# If it's not, see if we should disable it due to `libstdc++` being newer: | ||
LIBSTDCXX_PATH := $(eval $(call pathsearch,libstdc++,$(STD_LIB_PATH))) | ||
ifneq (,$(and $(LIBSTDCXX_PATH),$(shell strings $(LIBSTDCXX_PATH) | grep $(CSL_NEXT_GLIBCXX_VERSION)))) |
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.
Do we need to mention binutils
in the required build dependencies? It's kind of implicit though since also ld
is in binutils
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.
Can't hurt to list the requirement explicitly, right?
giordano
reviewed
Jul 20, 2021
vtjnash
reviewed
Jul 20, 2021
vtjnash
reviewed
Jul 20, 2021
vchuravy
added
backport 1.6
Change should be backported to release-1.6
backport 1.7
building
Build system, or building Julia or its dependencies
labels
Jul 20, 2021
… new We ship our own compiler support libraries to ensure a minimum level of support for BB-built libraries, however certain distros provide very bleeding-edge compilers. This can be a problem if we download an _older_ `libstdc++.so` and forcibly link against that when launching Julia, as when Julia itself is built with the local `g++`, it may use symbols that don't exist in the BB-sourced `libstdc++.so`. To address this, we default to not using BB-sourced CSLs if the `libstdc++.so` that the native compiler would use contains a symbol that our BB-sourced CSLs do not have. We use the monotonically-climbing `GLIBCXX_3.4.XX` version symbols for this purpose; encoding the "next" version number within `deps/csl.mk`, and triggering the BB-avoidance if that version exists within the system-provided `libstdc++.so`.
staticfloat
force-pushed
the
sf/auto_disable_bb_csl
branch
from
July 21, 2021 19:11
77a988a
to
c2704f8
Compare
KristofferC
pushed a commit
that referenced
this pull request
Jul 26, 2021
… new (#41645) We ship our own compiler support libraries to ensure a minimum level of support for BB-built libraries, however certain distros provide very bleeding-edge compilers. This can be a problem if we download an _older_ `libstdc++.so` and forcibly link against that when launching Julia, as when Julia itself is built with the local `g++`, it may use symbols that don't exist in the BB-sourced `libstdc++.so`. To address this, we default to not using BB-sourced CSLs if the `libstdc++.so` that the native compiler would use contains a symbol that our BB-sourced CSLs do not have. We use the monotonically-climbing `GLIBCXX_3.4.XX` version symbols for this purpose; encoding the "next" version number within `deps/csl.mk`, and triggering the BB-avoidance if that version exists within the system-provided `libstdc++.so`. (cherry picked from commit 27c0291)
This was referenced Jul 26, 2021
KristofferC
pushed a commit
that referenced
this pull request
Jul 26, 2021
… new (#41645) We ship our own compiler support libraries to ensure a minimum level of support for BB-built libraries, however certain distros provide very bleeding-edge compilers. This can be a problem if we download an _older_ `libstdc++.so` and forcibly link against that when launching Julia, as when Julia itself is built with the local `g++`, it may use symbols that don't exist in the BB-sourced `libstdc++.so`. To address this, we default to not using BB-sourced CSLs if the `libstdc++.so` that the native compiler would use contains a symbol that our BB-sourced CSLs do not have. We use the monotonically-climbing `GLIBCXX_3.4.XX` version symbols for this purpose; encoding the "next" version number within `deps/csl.mk`, and triggering the BB-avoidance if that version exists within the system-provided `libstdc++.so`. (cherry picked from commit 27c0291)
KristofferC
pushed a commit
that referenced
this pull request
Jul 26, 2021
… new (#41645) We ship our own compiler support libraries to ensure a minimum level of support for BB-built libraries, however certain distros provide very bleeding-edge compilers. This can be a problem if we download an _older_ `libstdc++.so` and forcibly link against that when launching Julia, as when Julia itself is built with the local `g++`, it may use symbols that don't exist in the BB-sourced `libstdc++.so`. To address this, we default to not using BB-sourced CSLs if the `libstdc++.so` that the native compiler would use contains a symbol that our BB-sourced CSLs do not have. We use the monotonically-climbing `GLIBCXX_3.4.XX` version symbols for this purpose; encoding the "next" version number within `deps/csl.mk`, and triggering the BB-avoidance if that version exists within the system-provided `libstdc++.so`. (cherry picked from commit 27c0291)
63 tasks
KristofferC
pushed a commit
that referenced
this pull request
Aug 31, 2021
… new (#41645) We ship our own compiler support libraries to ensure a minimum level of support for BB-built libraries, however certain distros provide very bleeding-edge compilers. This can be a problem if we download an _older_ `libstdc++.so` and forcibly link against that when launching Julia, as when Julia itself is built with the local `g++`, it may use symbols that don't exist in the BB-sourced `libstdc++.so`. To address this, we default to not using BB-sourced CSLs if the `libstdc++.so` that the native compiler would use contains a symbol that our BB-sourced CSLs do not have. We use the monotonically-climbing `GLIBCXX_3.4.XX` version symbols for this purpose; encoding the "next" version number within `deps/csl.mk`, and triggering the BB-avoidance if that version exists within the system-provided `libstdc++.so`. (cherry picked from commit 27c0291)
KristofferC
pushed a commit
that referenced
this pull request
Sep 3, 2021
… new (#41645) We ship our own compiler support libraries to ensure a minimum level of support for BB-built libraries, however certain distros provide very bleeding-edge compilers. This can be a problem if we download an _older_ `libstdc++.so` and forcibly link against that when launching Julia, as when Julia itself is built with the local `g++`, it may use symbols that don't exist in the BB-sourced `libstdc++.so`. To address this, we default to not using BB-sourced CSLs if the `libstdc++.so` that the native compiler would use contains a symbol that our BB-sourced CSLs do not have. We use the monotonically-climbing `GLIBCXX_3.4.XX` version symbols for this purpose; encoding the "next" version number within `deps/csl.mk`, and triggering the BB-avoidance if that version exists within the system-provided `libstdc++.so`. (cherry picked from commit 27c0291)
staticfloat
added a commit
that referenced
this pull request
Dec 23, 2022
… new (#41645) We ship our own compiler support libraries to ensure a minimum level of support for BB-built libraries, however certain distros provide very bleeding-edge compilers. This can be a problem if we download an _older_ `libstdc++.so` and forcibly link against that when launching Julia, as when Julia itself is built with the local `g++`, it may use symbols that don't exist in the BB-sourced `libstdc++.so`. To address this, we default to not using BB-sourced CSLs if the `libstdc++.so` that the native compiler would use contains a symbol that our BB-sourced CSLs do not have. We use the monotonically-climbing `GLIBCXX_3.4.XX` version symbols for this purpose; encoding the "next" version number within `deps/csl.mk`, and triggering the BB-avoidance if that version exists within the system-provided `libstdc++.so`. (cherry picked from commit 27c0291)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We ship our own compiler support libraries to ensure a minimum level of
support for BB-built libraries, however certain distros provide very
bleeding-edge compilers. This can be a problem if we download an
older
libstdc++.so
and forcibly link against that when launchingJulia, as when Julia itself is built with the local
g++
, it may usesymbols that don't exist in the BB-sourced
libstdc++.so
.To address this, we default to not using BB-sourced CSLs if the
libstdc++.so
that the native compiler would use contains a symbol thatour BB-sourced CSLs do not have. We use the monotonically-climbing
GLIBCXX_3.4.XX
version symbols for this purpose; encoding the "next"version number within
deps/csl.mk
, and triggering the BB-avoidance ifthat version exists within the system-provided
libstdc++.so
.