Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Jan 2024 11:18:47 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Craig Leres <leres@freebsd.org>
Cc:        Mario Marietto <marietto2008@gmail.com>,  FreeBSD Mailing List <freebsd-questions@freebsd.org>,  freebsd-hackers <freebsd-hackers@freebsd.org>
Subject:   Re: set : illegal option -o pipefail error while trying to upgrade pkg.
Message-ID:  <CANCZdfopZ9zXV_ab0EWKigHoQRogHbR2nuGiT_MQRD3SmSU-9Q@mail.gmail.com>
In-Reply-To: <2840a1c8-839c-480f-a0db-42235bf7581e@freebsd.org>
References:  <CA%2B1FSijXJUDtkmf0KKEtCJ_cFhg4Htc_a=q1BWt9mtGV1T7oLw@mail.gmail.com> <CANCZdfqTdrPqswGPiku5f4ror2pxUr8MwpQPDqC15uYY8MkfkQ@mail.gmail.com> <CANCZdfp8skF24LVKcp1ygZL_zrrSAZ%2B=%2BvorhvXcE2BQCBOQFA@mail.gmail.com> <CA%2B1FSigBeH1Wm7C02OJvJ8YT6uMMOkZUEinOuaNyhKVBULfGcw@mail.gmail.com> <CA%2B1FSihbBxOmKa4gvNErrrfi4Se9yP7YB3C-=W4VTqLAYaoAqQ@mail.gmail.com> <CA%2B1FSii3zCfP=3L5BypzCPPTwsVJ2QFyXB%2Bb3VeFDBJm3eeuFQ@mail.gmail.com> <CA%2B1FSijnTFspSkdp5YA7fnaQvgUjhc=P9NEPTw4NRGOQSDCnag@mail.gmail.com> <CANCZdfrBnC-G0kG0%2BuwQKZWz2Va--Db-z3TS2td2yWisMGOx8Q@mail.gmail.com> <CANCZdfqu8dZXaRjdsn-hS2238yNZ1d36ZG8hJRx285=xBjNdHg@mail.gmail.com> <2840a1c8-839c-480f-a0db-42235bf7581e@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Sun, Jan 28, 2024 at 11:08 AM Craig Leres <leres@freebsd.org> wrote:

> On 1/28/24 09:55, Warner Losh wrote:
> > On Sun, Jan 28, 2024 at 10:53 AM Warner Losh <imp@bsdimp.com
> > <mailto:imp@bsdimp.com>> wrote:
> >
> >     OK. On your 10.x arm system, you need to build /bin/sh using sources
> >     from FreeBSD 13.
> >     Binaries from 12 or 13 won't work on your 10.x system: libc doesn't
> >     have the right symbols.
> >     But source build against a 10.x system should work. That was my
> >     suggestion. Too bad
> >     pipefail didn't arrive until 14. So you'll need to build that on
> >     your 14 system.
> >
> > ... need to build stable/14 on your 10.x system this should say. Rather
> > an important
> > detail I didn't catch on first proofreading.
> What about just copying /rescue/sh from a new enough system?
>
> My build server is 13.2 but it has a 14.0-RELEASE-p4 poudriere jail and
> the sh from that runs on 13.2 at least (and has pipefail). I tried to
> test with an older version of FreeBSD but it looks like my spare machine
> is too new for its usb keyboard to work with FreeBSD 10 or 11...
>

/rescue/sh will have system calls embedded in it that the old FreeBSD 10
kernel will not understand. Between FreeBSD 11 and 12 we moved to
64bit inode sizes, adding a bunch of system calls that we don't fall back
to the old versions of. Plus we've added a bunch of *at system calls that
we now use always (they are more general than the old system calls, so
those have changed into library routines that call the *at function in the
right way).

Warner

[-- Attachment #2 --]
<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 28, 2024 at 11:08 AM Craig Leres &lt;<a href="mailto:leres@freebsd.org">leres@freebsd.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 1/28/24 09:55, Warner Losh wrote:<br>
&gt; On Sun, Jan 28, 2024 at 10:53 AM Warner Losh &lt;<a href="mailto:imp@bsdimp.com" target="_blank">imp@bsdimp.com</a> <br>
&gt; &lt;mailto:<a href="mailto:imp@bsdimp.com" target="_blank">imp@bsdimp.com</a>&gt;&gt; wrote:<br>
&gt; <br>
&gt;     OK. On your 10.x arm system, you need to build /bin/sh using sources<br>
&gt;     from FreeBSD 13.<br>
&gt;     Binaries from 12 or 13 won&#39;t work on your 10.x system: libc doesn&#39;t<br>
&gt;     have the right symbols.<br>
&gt;     But source build against a 10.x system should work. That was my<br>
&gt;     suggestion. Too bad<br>
&gt;     pipefail didn&#39;t arrive until 14. So you&#39;ll need to build that on<br>
&gt;     your 14 system.<br>
&gt; <br>
&gt; ... need to build stable/14 on your 10.x system this should say. Rather <br>
&gt; an important<br>
&gt; detail I didn&#39;t catch on first proofreading.<br>
What about just copying /rescue/sh from a new enough system?<br>
<br>
My build server is 13.2 but it has a 14.0-RELEASE-p4 poudriere jail and <br>
the sh from that runs on 13.2 at least (and has pipefail). I tried to <br>
test with an older version of FreeBSD but it looks like my spare machine <br>
is too new for its usb keyboard to work with FreeBSD 10 or 11...<br></blockquote><div><br></div><div>/rescue/sh will have system calls embedded in it that the old FreeBSD 10</div><div>kernel will not understand. Between FreeBSD 11 and 12 we moved to</div><div>64bit inode sizes, adding a bunch of system calls that we don&#39;t fall back</div><div>to the old versions of. Plus we&#39;ve added a bunch of *at system calls that</div><div>we now use always (they are more general than the old system calls, so</div><div>those have changed into library routines that call the *at function in the</div><div>right way).<br></div><div><br></div><div>Warner <br></div></div></div>

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfopZ9zXV_ab0EWKigHoQRogHbR2nuGiT_MQRD3SmSU-9Q>