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 <<a href="mailto:leres@freebsd.org">leres@freebsd.org</a>> 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> > On Sun, Jan 28, 2024 at 10:53 AM Warner Losh <<a href="mailto:imp@bsdimp.com" target="_blank">imp@bsdimp.com</a> <br> > <mailto:<a href="mailto:imp@bsdimp.com" target="_blank">imp@bsdimp.com</a>>> wrote:<br> > <br> > OK. On your 10.x arm system, you need to build /bin/sh using sources<br> > from FreeBSD 13.<br> > Binaries from 12 or 13 won't work on your 10.x system: libc doesn't<br> > have the right symbols.<br> > But source build against a 10.x system should work. That was my<br> > suggestion. Too bad<br> > pipefail didn't arrive until 14. So you'll need to build that on<br> > your 14 system.<br> > <br> > ... need to build stable/14 on your 10.x system this should say. Rather <br> > an important<br> > detail I didn'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't fall back</div><div>to the old versions of. Plus we'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>
