Skip to content

Commit

Permalink
dev-lang/julia: mark as LTO-unsafe
Browse files Browse the repository at this point in the history
julia has many problems, at many levels. Among these, it fails to build
with LTO due to various errors somewhat more inventive than the norm
when it comes to LTO issues. Iteration time on building and testing it
is, of course, horrifically bad as it bundles its own private LLVM.

I won't even try to run the testsuite. I tried that years ago on Arch.
"Flaky" doesn't even begin to describe it -- an actual passing test
result sometimes took me 7 builds in a row, and one is never sure why it
actually passed for once. "Fortunately", the ebuild restricts tests
anyway. Needless to say, who knows if it actually works.

It seems to build. Probably. At least better than when -flto is used, so
that's a win. On which note, it is worth pointing out: the ebuild
*tried* to filter lto, but didn't do so early enough. This change simply
lifts the filter early enough that it runs before a sed inserts CFLAGS
into a Makefile, so that the filter actually takes effect.

Bug NOT reported upstream. Julia is a language of all time, and
reporting bugs gets you nowhere except the receiving end of a thorough
gaslighting. I do not volunteer for this. The software is most likely
broken (LTO warnings don't indicate a flawless codebase) but I simply
don't care -- it's not my problem if this programming language is
broken, as long as it isn't an obstacle to other, more useful packages,
being safe to build by default with LTO enabled in make.conf.

Closes: https://bugs.gentoo.org/855602
Signed-off-by: Eli Schwartz <[email protected]>
  • Loading branch information
eli-schwartz committed Aug 26, 2024
1 parent 1b8914c commit 1ca4716
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 12 deletions.
7 changes: 4 additions & 3 deletions dev-lang/julia/julia-1.8.3-r4.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@ src_unpack() {
src_prepare() {
default

# Various LTO issues.
# https://bugs.gentoo.org/855602
filter-lto

# Sledgehammer:
# - prevent fetching of bundled stuff in compile and install phase
# - respect CFLAGS
Expand All @@ -106,9 +110,6 @@ src_prepare() {
}

src_configure() {
# bug #855602
filter-lto

# julia does not play well with the system versions of libuv
# Fails to compile with libpcre2 on split-usr, bug #893336
# USE_SYSTEM_LIBM=0 implies using external openlibm
Expand Down
7 changes: 4 additions & 3 deletions dev-lang/julia/julia-1.8.5-r1.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,10 @@ src_unpack() {
src_prepare() {
default

# Various LTO issues.
# https://bugs.gentoo.org/855602
filter-lto

# Sledgehammer:
# - prevent fetching of bundled stuff in compile and install phase
# - respect CFLAGS
Expand All @@ -146,9 +150,6 @@ src_prepare() {
}

src_configure() {
# bug #855602
filter-lto

# julia does not play well with the system versions of libuv
# Fails to compile with libpcre2 on split-usr, bug #893336
# USE_SYSTEM_LIBM=0 implies using external openlibm
Expand Down
7 changes: 4 additions & 3 deletions dev-lang/julia/julia-1.9.0.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,10 @@ src_unpack() {
src_prepare() {
default

# Various LTO issues.
# https://bugs.gentoo.org/855602
filter-lto

# Sledgehammer:
# - prevent fetching of bundled stuff in compile and install phase
# - respect CFLAGS
Expand All @@ -126,9 +130,6 @@ src_prepare() {
}

src_configure() {
# bug #855602
filter-lto

# julia does not play well with the system versions of libuv
# Fails to compile with libpcre2 on split-usr, bug #893336
# USE_SYSTEM_LIBM=0 implies using external openlibm
Expand Down
7 changes: 4 additions & 3 deletions dev-lang/julia/julia-1.9.4.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@ src_unpack() {
src_prepare() {
default

# Various LTO issues.
# https://bugs.gentoo.org/855602
filter-lto

# Sledgehammer:
# - prevent fetching of bundled stuff in compile and install phase
# - respect CFLAGS
Expand All @@ -109,9 +113,6 @@ src_prepare() {
}

src_configure() {
# bug #855602
filter-lto

# julia does not play well with the system versions of libuv
# Fails to compile with libpcre2 on split-usr, bug #893336
# USE_SYSTEM_LIBM=0 implies using external openlibm
Expand Down

0 comments on commit 1ca4716

Please sign in to comment.