tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: rust and NetBSD/i386 8.x



Havard Eidnes <he%NetBSD.org@localhost> writes:

> I don't know if anyone has noticed, but it looks like our "rust"
> package has ceased to be buildable on NetBSD/i386 8.x.
>
> Rummaging through my old build logs, I see that this surfaced
> with rust version 1.70.0.
>
> Our/my system for cross-building bootstrap kits for our rust port
> had been built against a DESTDIR of a netbsd-8 i386 system
> "forever", until that hit the following problem:
>
> [  1%] Building IntrinsicsAArch64.h...
> In file included from /usr/pkgsrc/wip/rust/work/rustc-1.70.0-src/src/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:12:0,
>                  from /usr/pkgsrc/wip/rust/work/rustc-1.70.0-src/src/llvm-project/llvm/include/llvm/TableGen/Record.h:17,
>                  from /usr/pkgsrc/wip/rust/work/rustc-1.70.0-src/src/llvm-project/llvm/utils/TableGen/Attributes.cpp:9:
> /usr/pkgsrc/wip/rust/work/rustc-1.70.0-src/src/llvm-project/llvm/include/llvm/ADT/Hashing.h:54:10: fatal error: optional: No such file or directory
>  #include <optional>
>           ^~~~~~~~~~
> compilation terminated.
>
> and similarly for <variant>.  

Do you understand why this has happened for i386 but not the other
architectures?

> However, this causes the bootstrap kits that we distribute to no
> longer work on NetBSD/i386 8.0: early in the build process you'll
> see this error message:

I had noticed in bulk builds that this platform was troubled.  But I
personally have given up on it.

> It is conceivable that it is still possible to build newer rust
> versions on NetBSD/i386 8.0, but it will
>
> a) require a native build of each version, starting with a
>    bootstrap kit from 1.69.0 up to the version you desire, using
>    the previous version's "dist" result as bootstrap kit for the
>    next version (as rust only supports one version backward
>    compatibility...)
>
> b) require the use of an external LLVM instead of the embedded
>    LLVM inside the rust distribution.  I have in the past
>    succeeded in building even 1.74.0 with an external LLVM
>    version 15.0.7.
>
> But... That's not how I build the bootstrap kits for our various
> NetBSD targets, and going through this process to continue to
> support NetBSD/i386 8.x with rust I consider to be too much of a
> pain.

Indeed that sounds like a tremendous amount of work.

I think the question on the table is if anyone cares enough to do this
work to keep NetBSD/i386 8 rust working.

The other question is if having 1.69 in pkgsrc (as rust169) is useful,
or if most things that use rust consider that too old.  And then if
anyone wants to do that work.

(I am guessing the answer to both questions is no, as I do not perceive
there to exist people that work on pkgsrc for things sort of like rust
who also care about 8.)


It sounds like someone should add BROKEN_ON to the rust package for
netbsd-8-i386, as it ought to be workable but doesn't build.   That
seems cleaner than having it fail.


> Given that we at least "in name" still support NetBSD/8.0 with
> pkgsrc, I found it pertinent to send this "heads up", even though
> I have not picked up any signal indicating that someone else has
> stumbled upon this particular problem, and found reason to raise
> the issue.  I may not have listened in on all the channels,
> though...

"support" is a funny word.  What "pkgsrc suppports the current and
previous stable release of NetBSD" means, in my view is:

  - we agree as a group that these are platforms where things should work

  - TNF build infrastructure creates binary packages

  - packages are allowed to exist on the ftp server

  - when commiting an update to a package that will break it on NetBSD
    8, that should be proposed/discussed here to see if anyone wants to
    do the work to have multiple ersion

but it doesn't mean we will not update packages because they no longer
build on 8.

We have included a note that increasingly complicated/desktoppy things
do not build on 8.  It's easy enough to add rust to the list.







The real issue is the NetBSD 10 released has not been released, closing
in on 4 years after 9.0 was released on February 14, 2020.  8.0 was
released on July 17, 2018, and enough upstream projects demand newer
compiler support that a 5 year old base system is no longer viable.
But the larger situation about 8 is not about this specific rust issue.




Home | Main Index | Thread Index | Old Index