Date: Sun, 28 Jan 2024 10:53:53 -0700 From: Warner Losh <imp@bsdimp.com> To: Mario Marietto <marietto2008@gmail.com> Cc: 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: <CANCZdfrBnC-G0kG0%2BuwQKZWz2Va--Db-z3TS2td2yWisMGOx8Q@mail.gmail.com> In-Reply-To: <CA%2B1FSijnTFspSkdp5YA7fnaQvgUjhc=P9NEPTw4NRGOQSDCnag@mail.gmail.com> 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>
next in thread | previous in thread | raw e-mail | index | archive | help
--00000000000002cc3c0610053784 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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. But it turns out that's a bit of a hassle. Well, not a huge hassle, I had to do the following. First, set up a FreeBSD 10.4 armv6 chroot and install qemu-user-static. See https://gist.github.com/bsdimp/0f2f294c7441ebf68a8ffebab935bd2c for details= . Or you could just run the RPI-B image on a real RPI-B. It would be more of a hassle and only marginally faster. Next, I created a worktree and a side branch (using the same paths in the gist above, note my origin is freebsd but the default is origin): % cd git/freebsd-src % mkdir ~/arm10/imp % git worktree add -b arm10-14 ~/arm10/imp/stable-14 freebsd/stable/14 I then had to apply these patches: https://people.freebsd.org/~imp/14-sh-on-10.diff which coped with history / libedit overhaul and O_VERIFY being added to the system. OK, truth be told I iterated a bunch to get the patch... I had no reason to think these changes were needed before I started... Next, I got into the emulated arm tree: % sudo chroot ~/arm10 /bin/sh # cd /imp/stable-14/ # patch -p1 < 14-sh-on-10.diff # make SSP_CFLAGS=3D WITHOUT_TESTS=3Dt WITHOUT_MAN=3Dt DEBUG_FILES_CFLAGS= =3D WARNS=3D0 ... lots of output, ignore the warnings # set -o pipefail set: Illegal option -o pipefail # /usr/obj/imp/stable-14/arm.armv6/bin/sh/sh # set -o pipefail # ^D # So success! But all that's a hassle, so I also uploaded the sh to https://people.freebsd.org/~imp/sh14-on-10.armv6 so you can just try it. I don't know if this will fix the problem that put us down this rabbit hole in the first place or not. But maybe some of the above is helpful or useful for other reasons. Hope this helps. Warner On Sun, Jan 28, 2024 at 7:33=E2=80=AFAM Mario Marietto <marietto2008@gmail.= com> wrote: > Using sh of FreeBSD 12.04 : > > /bin/sh : Undefined symbol "stat@FBSD_1.5" > > nothing to do. > > On Sun, Jan 28, 2024 at 3:17=E2=80=AFPM Mario Marietto <marietto2008@gmai= l.com> > wrote: > >> I've used FreeBSD 13.2 and I've got the same error message : >> >> /lib/libc.so.7: version FBSD_1.6 required by /bin/sh not found >> >> Let's see with FreeBSD 12.04... >> >> On Sun, Jan 28, 2024 at 2:04=E2=80=AFPM Mario Marietto <marietto2008@gma= il.com> >> wrote: >> >>> Hello Warner, >>> >>> Thanks for your help. But unfortunately your solution didn't work. Afte= r >>> having followed your instructions carefully : >>> >>> Save a copy of /bin/sh. Check out stable/13 (or 12 if the following >>>> fails). Cd to src/bin/sh. Type make all. You may need -m >>>> /path/to/src/share/mk if it makes complaints. Create a test area, I'll= call >>>> it /destdir. Also mkdir /destdir/bin too. Then make install >>>> DESTDIR=3D/destdir. You may need to do this as root. Ignore the failur= es for >>>> the man pages and maybe tests. You should have a /destdir/bin/sh. See = if it >>>> runs. If so, copy it to /bin and try the upgrade again. >>> >>> >>> It asked me to copy some new libraries from FreeBSD 14.0 to the >>> /usr/lib32 and /lib directories of the FreeBSD 10.4 system. I copied al= l >>> the libraries requested and at the end,it gave the following error : >>> >>> /lib/libc.so.7: version FBSD_1.6 required by /bin/sh not found >>> >>> so,I have changed the flag that does not allow me to rename it with the >>> command : >>> >>> # chflags noschg libc.so.7 >>> >>> and I've copied the libc.so.7 file that's on the directory /lib of the >>> FreeBSD 14 to the same directory of the FreeBSD 10.4 system and I've >>> rebooted. Unfortunately it hasn't been accepted. The error is the follo= wing >>> one : >>> >>> /lib/libc.so.7 : unsupported relocation type 37 in non-PLT relocations >>> >>> What has been my mistake ? Maybe using FreeBSD 14 is wrong ? >>> >>> On Sun, Jan 28, 2024 at 9:47=E2=80=AFAM Mario Marietto <marietto2008@gm= ail.com> >>> wrote: >>> >>>> # set -o pipefail >>>> set : variable name must begin with a letter. >>>> >>>> On Sun, Jan 28, 2024 at 5:43=E2=80=AFAM Warner Losh <imp@bsdimp.com> w= rote: >>>> >>>>> >>>>> >>>>> On Sat, Jan 27, 2024, 5:54=E2=80=AFPM Warner Losh <imp@bsdimp.com> wr= ote: >>>>> >>>>>> >>>>>> >>>>>> On Sat, Jan 27, 2024, 5:12=E2=80=AFPM Mario Marietto <marietto2008@g= mail.com> >>>>>> wrote: >>>>>> >>>>>>> Hello. >>>>>>> >>>>>>> I'm trying to upgrade as much as I can FreeBSD 10.4 because it is >>>>>>> the only one version that can compile some of the old arm 32 bit co= de I >>>>>>> need to use for one of my projects. As you already know,packages do= n't work >>>>>>> at all,but ports almost work. I was trying to install xfce4 from po= rts,but >>>>>>> the compilation stopped when it didn't accept this file : >>>>>>> >>>>>>> >>>>>>> http://distcache.FreeBSD.org/ports-distfiles/trousers-0.3.14.tar.gz >>>>>>> >>>>>>> >>>>>>> at this point,I decided to upgrade the system with : >>>>>>> >>>>>>> >>>>>>> # freebsd-update fetch >>>>>>> # freebsd-update install >>>>>>> >>>>>>> >>>>>>> and the ports tree with : >>>>>>> >>>>>>> >>>>>>> # portsnap fetch extract >>>>>>> # portsnap fetch update >>>>>>> >>>>>>> >>>>>>> At this point it asked me to update pkg,so I did : >>>>>>> >>>>>>> >>>>>>> # cd /usr/ports/ports-mgmt/pkg >>>>>>> # make >>>>>>> >>>>>>> >>>>>>> but unfortunately I got this error that I'm not able to fix : >>>>>>> >>>>>>> >>>>>>> set : illegal option -o pipefail >>>>>>> >>>>>>> >>>>>>> and I can't do anything anymore. I'm stuck here. Can someone help m= e >>>>>>> to fix it ? thanks. >>>>>>> >>>>>> >>>>>> Save a copy of /bin/sh. Check out stable/13 (or 12 if the following >>>>>> fails). Cd to src/bin/sh. Type make all. You may need -m >>>>>> /path/to/src/share/mk if make complains. Create a test area, I'll ca= ll it >>>>>> /destdir. Also mkdir /destdir/bin too. Then make install DESTDIR=3D= /destdir. >>>>>> You may need to do this as root. Ignore the failures for the man pag= es and >>>>>> maybe tests. You should have a /destdir/bin/sh. See if it runs. If s= o copy >>>>>> it to /bin and try the upgrade again. >>>>>> >>>>>> I think 12 has pipefail. I dont think 11 does. 13 definitely has it. >>>>>> The error message is from the shell. >>>>>> >>>>> >>>>> >>>>> The command "set -o pipefail" is how you'll know if it will work.... >>>>> or stands a good chance of working. >>>>> >>>>> >>>>> Warner >>>>>> >>>>>> >>>> >>>> -- >>>> Mario. >>>> >>> >>> >>> -- >>> Mario. >>> >> >> >> -- >> Mario. >> > > > -- > Mario. > --00000000000002cc3c0610053784 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>OK. On your 10.x arm system, you need to build /bin/s= h using sources from FreeBSD 13.</div><div>Binaries from 12 or 13 won't= work on your 10.x system: libc doesn't have the right symbols.</div><d= iv>But source build against a 10.x system should work. That was my suggesti= on. Too bad</div><div>pipefail didn't arrive until 14. So you'll ne= ed to build that on your 14 system.<br></div><div><br></div><div>But it tur= ns out that's a bit of a hassle. Well, not a huge hassle, I had to do t= he following.</div><div>First, set up a FreeBSD 10.4 armv6 chroot and insta= ll qemu-user-static. See</div><div><a href=3D"https://gist.github.com/bsdim= p/0f2f294c7441ebf68a8ffebab935bd2c">https://gist.github.com/bsdimp/0f2f294c= 7441ebf68a8ffebab935bd2c</a> for details.</div><div>Or you could just run t= he RPI-B image on a real RPI-B. It would be more of</div><div>a hassle and = only marginally faster.<br></div><div><br></div><div>Next, I created a work= tree and a side branch (using the same paths in the gist</div><div>above, n= ote my origin is freebsd but the default is origin):</div><div>% cd git/fre= ebsd-src</div><div>% mkdir ~/arm10/imp<br></div><div>% git worktree add -b = arm10-14 ~/arm10/imp/stable-14 freebsd/stable/14</div><div>I then had to ap= ply these patches:</div><div><a href=3D"https://people.freebsd.org/~imp/14-= sh-on-10.diff">https://people.freebsd.org/~imp/14-sh-on-10.diff</a></div><d= iv>which coped with history / libedit overhaul and O_VERIFY being added to<= /div><div>the system. OK, truth be told I iterated a bunch to get the patch= ... I had no</div><div>reason to think these changes were needed before I s= tarted... <br></div><div><br></div><div>Next, I got into the emulated arm t= ree:</div><div>% sudo chroot ~/arm10 /bin/sh</div><div># cd /imp/stable-14/= </div><div># patch -p1 < 14-sh-on-10.diff</div><div># make SSP_CFLAGS=3D= WITHOUT_TESTS=3Dt WITHOUT_MAN=3Dt DEBUG_FILES_CFLAGS=3D WARNS=3D0</div><di= v>... lots of output, ignore the warnings<br></div><div># set -o pipefail</= div><div>set: Illegal option -o pipefail</div><div># /usr/obj/imp/stable-14= /arm.armv6/bin/sh/sh</div><div># set -o pipefail</div><div># ^D</div><div>#= <br></div><div><br></div><div>So success! But all that's a hassle, so I= also uploaded the sh to</div><div><a href=3D"https://people.freebsd.org/~i= mp/sh14-on-10.armv6">https://people.freebsd.org/~imp/sh14-on-10.armv6</a></= div><div>so you can just try it. I don't know if this will fix the prob= lem that put us down</div><div>this rabbit hole in the first place or not. = But maybe some of the above is helpful</div><div>or useful for other reason= s.</div><div><br></div><div>Hope this helps.<br></div><div><br></div><div>W= arner</div><div><br></div><div><div class=3D"gmail_quote"><div dir=3D"ltr" = class=3D"gmail_attr">On Sun, Jan 28, 2024 at 7:33=E2=80=AFAM Mario Marietto= <<a href=3D"mailto:marietto2008@gmail.com">marietto2008@gmail.com</a>&g= t; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0p= x 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div d= ir=3D"ltr"><div>Using sh of FreeBSD 12.04 :</div><div><br></div><div><span>= <div>/bin/sh : Undefined symbol "stat@FBSD_1.5"</div><div><br></d= iv><div>nothing to do.<br></div></span></div></div><br><div class=3D"gmail_= quote"><div dir=3D"ltr" class=3D"gmail_attr">On Sun, Jan 28, 2024 at 3:17= =E2=80=AFPM Mario Marietto <<a href=3D"mailto:marietto2008@gmail.com" ta= rget=3D"_blank">marietto2008@gmail.com</a>> wrote:<br></div><blockquote = class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px sol= id rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>I've used F= reeBSD 13.2 and I've got the same error message :</div><div><br></div><= div><div>/lib/libc.so.7: version FBSD_1.6 required by /bin/sh not found</di= v><div><br></div><div>Let's see with FreeBSD 12.04...<br></div></div></= div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On= Sun, Jan 28, 2024 at 2:04=E2=80=AFPM Mario Marietto <<a href=3D"mailto:= marietto2008@gmail.com" target=3D"_blank">marietto2008@gmail.com</a>> wr= ote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px= 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D= "ltr"><div>Hello Warner,</div><div><br></div><div>Thanks for your help. But= unfortunately your solution didn't work. After having followed your in= structions carefully :</div><div><br></div><blockquote class=3D"gmail_quote= " style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);= padding-left:1ex"><span>Save a copy of /bin/sh. Check out stable/13 (or 12 = if=20 the following fails). Cd to src/bin/sh. Type make all. You may need -m=20 /path/to/src/share/mk if it makes complaints. Create a test area, I'll = call=20 it /destdir. Also mkdir /destdir/bin too. Then make install=C2=A0=20 DESTDIR=3D/destdir. You may need to do this as root. Ignore the failures=20 for the man pages and maybe tests. You should have a /destdir/bin/sh.=20 See if it runs. If so, copy it to /bin and try the upgrade again.</span></b= lockquote><div><br></div><div>It asked me to copy some new libraries from F= reeBSD 14.0 to the /usr/lib32 and /lib directories of the FreeBSD 10.4 syst= em. I copied all the libraries requested and at the end,it gave the followi= ng error :<br></div><div><br></div><div>/lib/libc.so.7: version FBSD_1.6 re= quired by /bin/sh not found</div><div><br></div><div>so,I have changed the = flag that does not allow me to rename it with the command :</div><div><br><= /div><div><pre># chflags noschg libc.so.7<br><br></pre></div><div>and I'= ;ve copied the libc.so.7 file that's on the directory /lib of the FreeB= SD 14 to the same directory of the FreeBSD 10.4 system and I've reboote= d. Unfortunately it hasn't been accepted. The error is the following on= e :</div><div><br></div><div>/lib/libc.so.7 : unsupported relocation type 3= 7 in non-PLT relocations</div><div><br></div><div>What has been my mistake = ? Maybe using FreeBSD 14 is wrong ? <br></div></div><br><div class=3D"gmail= _quote"><div dir=3D"ltr" class=3D"gmail_attr">On Sun, Jan 28, 2024 at 9:47= =E2=80=AFAM Mario Marietto <<a href=3D"mailto:marietto2008@gmail.com" ta= rget=3D"_blank">marietto2008@gmail.com</a>> wrote:<br></div><blockquote = class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px sol= id rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div># set -o pipefa= il</div><div>set : variable name must begin with a letter.<br></div></div><= br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Sun,= Jan 28, 2024 at 5:43=E2=80=AFAM Warner Losh <<a href=3D"mailto:imp@bsdi= mp.com" target=3D"_blank">imp@bsdimp.com</a>> wrote:<br></div><blockquot= e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px s= olid rgb(204,204,204);padding-left:1ex"><div dir=3D"auto"><div><br><br><div= class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, Jan 27= , 2024, 5:54=E2=80=AFPM Warner Losh <<a href=3D"mailto:imp@bsdimp.com" t= arget=3D"_blank">imp@bsdimp.com</a>> wrote:<br></div><blockquote class= =3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg= b(204,204,204);padding-left:1ex"><div dir=3D"auto"><br><br><div class=3D"gm= ail_quote" dir=3D"auto"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, Jan 2= 7, 2024, 5:12=E2=80=AFPM Mario Marietto <<a href=3D"mailto:marietto2008@= gmail.com" rel=3D"noreferrer noreferrer" target=3D"_blank">marietto2008@gma= il.com</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"m= argin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left= :1ex"><div dir=3D"ltr"><div style=3D"max-width:800px"><div><p>Hello.</p><p>= I'm trying to upgrade as much as I can FreeBSD 10.4 because it is the only one version that can compile some of the old arm 32 bit code I need to use=20 for one of my projects. As you already know,packages don't work at=20 all,but ports almost work. I was trying to install xfce4 from ports,but=20 the compilation stopped when it didn't accept this file :</p><p><br></p= ><p><a href=3D"http://distcache.FreeBSD.org/ports-distfiles/trousers-0.3.14= .tar.gz" rel=3D"noopener nofollow ugc noreferrer noreferrer noreferrer" tar= get=3D"_blank">http://distcache.FreeBSD.org/ports-distfiles/trousers-0.3.14= .tar.gz</a></p><p><br></p><p>at this point,I decided to upgrade the system = with :</p><p><br></p><pre><code># freebsd-update fetch # freebsd-update install </code></pre><p><br></p><p>and the ports tree with :</p><p><br></p><pre><co= de># portsnap fetch extract # portsnap fetch update </code></pre><p><br></p><p>At this point it asked me to update pkg,so I did= :</p><p><br></p><pre><code># cd /usr/ports/ports-mgmt/pkg # make </code></pre><p><br></p><p>but unfortunately I got this error that I'm = not able to fix :</p><p><br></p><pre><code>set : illegal option -o pipefail </code></pre><p><br></p><p>and I can't do anything anymore. I'm stu= ck here. Can someone help me to fix it ? thanks.</p></div></div></div></bl= ockquote></div><div dir=3D"auto"><br></div><div dir=3D"auto">Save a copy of= /bin/sh. Check out stable/13 (or 12 if the following fails). Cd to src/bin= /sh. Type make all. You may need -m /path/to/src/share/mk if make complains= . Create a test area, I'll call it /destdir. Also mkdir /destdir/bin to= o. Then make install=C2=A0 DESTDIR=3D/destdir. You may need to do this as r= oot. Ignore the failures for the man pages and maybe tests. You should have= a /destdir/bin/sh. See if it runs. If so copy it to /bin and try the upgra= de again.</div><div dir=3D"auto"><br></div><div dir=3D"auto">I think 12 has= pipefail. I dont think 11 does. 13 definitely has it. The error message is= from the shell.</div></div></blockquote></div></div><div dir=3D"auto"><br>= </div><div dir=3D"auto"><br></div><div dir=3D"auto">The command "set -= o pipefail" is how you'll know if it will work.... or stands a goo= d chance of working.</div><div dir=3D"auto"><br></div><div dir=3D"auto"><br= ></div><div dir=3D"auto"><div class=3D"gmail_quote"><blockquote class=3D"gm= ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,= 204,204);padding-left:1ex"><div dir=3D"auto"><div dir=3D"auto">Warner=C2=A0= </div><div dir=3D"auto"><br></div><div class=3D"gmail_quote" dir=3D"auto"><= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft:1px solid rgb(204,204,204);padding-left:1ex"> </blockquote></div></div> </blockquote></div></div></div> </blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre= fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<br></d= iv> </blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre= fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<br></d= iv> </blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre= fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<br></d= iv> </blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre= fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Mario.<br></d= iv> </blockquote></div></div></div> --00000000000002cc3c0610053784--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfrBnC-G0kG0%2BuwQKZWz2Va--Db-z3TS2td2yWisMGOx8Q>