The current stable version of busybox, 1.24.1, does not compile on uclibc because the latter lacks int syncfs(int fd). I see 3 possibilities: 1. Disable fancy sync code when on uclibc, see https://git.busybox.net/buildroot/commit/?id=d42ca918cc72bb1baf817ee1614d77b5081a7e75 2. Because it is a syscall, add its declaration into busybox like in https://www.mail-archive.com/busybox@busybox.net/msg21979.html 3. Or add the declaration to uclibc, like in https://patchwork.ozlabs.org/patch/530573/ Reproducible: Always Steps to Reproduce: 1. emerge -u1 busybox 2. 3. Actual Results: ebuild failed (compile phase) Expected Results: BusyBox updated on system
Created attachment 418612 [details] build.log from emerge
Created attachment 418614 [details] emerge --info
Yep, I hit it. I need to get syncfs() into uclibc. Until then I need to mask =sys-apps/busybox-1.24* on uclibc stages.
(In reply to Anthony Basile from comment #3) > Yep, I hit it. I need to get syncfs() into uclibc. Until then I need to > mask =sys-apps/busybox-1.24* on uclibc stages. uclibc is in real trouble. its queue of patches going into master goes back 6 months. as a result, i can't make sense of what's been submitted and what hasn't for syncfs(). I think several people has submitted something. uclibc-ng has two patches in for syncfs (the original patch and a fix) plus i submitted a patch for yet another fix which is not in yet. i'm seriously debating whether or not to switch to uclibc-ng, but I don't know, it would cause a lot of issue. we'd have to switch from depending on sys-libs/uclibc to virtual/uclibc etc etc.
(In reply to Anthony Basile from comment #4) > (In reply to Anthony Basile from comment #3) > > Yep, I hit it. I need to get syncfs() into uclibc. Until then I need to > > mask =sys-apps/busybox-1.24* on uclibc stages. > > uclibc is in real trouble. its queue of patches going into master goes back > 6 months. as a result, i can't make sense of what's been submitted and what > hasn't for syncfs(). I think several people has submitted something. > uclibc-ng has two patches in for syncfs (the original patch and a fix) plus > i submitted a patch for yet another fix which is not in yet. > > i'm seriously debating whether or not to switch to uclibc-ng, but I don't > know, it would cause a lot of issue. we'd have to switch from depending on > sys-libs/uclibc to virtual/uclibc etc etc. I like this idea. Although, I think we would just use virtual/libc instead. It looks like uclibc-ng and vanilla uclibc are similar enough that most build systems won't be any wiser to the changeout (although, after my recent fun, still would want a full system rebuild/install to be safe). The end goal would be to dump vanilla uclibc if they don't start showing signs of new development. Better to stick with something that actually pushes out tested/stable releases periodically than hack-patching a release from 3-4 years ago. I'd be curious to see if uclibc-ng, being closer to uclibc-upstream, might have decent mips n32 support or not.
uclibc-ng is in the tree, and i'm using virtual/libc but i'm not ready to switch yet, because there are some differences that i'm working through. in the mean time, vapier took <sys-apps/busybox-1.24.1 off the tree, so i'm going to have to unmask busybox and expect people to configure it with CONFIG_SYNC off. this is going to suck for the stages for a while, but i don't see any way around it until i get the switch done in a couple of months.
Hi Gentoo Community! This might not be the completely appropriate place to ask... Still, I'd like to build a toolchain based on uclibc-ng. How would I proceed, what would be the CHOST variable for uclibc-ng and how could I create a toolchain with crossdev or similar tools. Thanks for any info. dan.
(In reply to Anthony Basile from comment #6) > uclibc-ng is in the tree, and i'm using virtual/libc but i'm not ready to > switch yet, because there are some differences that i'm working through. > > in the mean time, vapier took <sys-apps/busybox-1.24.1 off the tree, so i'm > going to have to unmask busybox and expect people to configure it with > CONFIG_SYNC off. this is going to suck for the stages for a while, but i > don't see any way around it until i get the switch done in a couple of > months. It looks like one needs to only disable CONFIG_FEATURE_SYNC_FANCY to get around the issue of syncfs() missing. CONFIG_SYNC can be left on. Just tested in a mips2/o32 chroot.
(In reply to Joshua Kinard from comment #8) > It looks like one needs to only disable CONFIG_FEATURE_SYNC_FANCY to get > around the issue of syncfs() missing. CONFIG_SYNC can be left on. Just > tested in a mips2/o32 chroot. This what I proposed as the first possibility in my initial bug report. I personnaly went with option 2, patching busybox. I may add the patch here on request.
(In reply to René Rhéaume from comment #9) > (In reply to Joshua Kinard from comment #8) > > It looks like one needs to only disable CONFIG_FEATURE_SYNC_FANCY to get > > around the issue of syncfs() missing. CONFIG_SYNC can be left on. Just > > tested in a mips2/o32 chroot. > > This what I proposed as the first possibility in my initial bug report. I > personnaly went with option 2, patching busybox. I may add the patch here on > request. Option 3 appears to be the best bet. This is what uclibc-ng appears to have done, as busybox-1.26.0 compiles fine against uclibc-ng-1.0.20 using both CONFIG_SYNC and CONFIG_FEATURE_SYNC_FANCY.
(In reply to Joshua Kinard from comment #10) > Option 3 appears to be the best bet. This is what uclibc-ng appears to have > done, as busybox-1.26.0 compiles fine against uclibc-ng-1.0.20 using both > CONFIG_SYNC and CONFIG_FEATURE_SYNC_FANCY. I agree. When I personnaly chose patching busybox, I was not on uclibc-ng yet. But now, can we add elibc_uclibc ? ( sys-libs/uclibc-ng ) to DEPEND?
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9450c1fcadc71efcc52b358f3bcb8860417f68c4 commit 9450c1fcadc71efcc52b358f3bcb8860417f68c4 Author: Mike Frysinger <vapier@gentoo.org> AuthorDate: 2018-01-24 04:30:04 +0000 Commit: Mike Frysinger <vapier@gentoo.org> CommitDate: 2018-01-24 04:30:04 +0000 sys-apps/busybox: turn off some features uClibc omits #567598 Closes: https://bugs.gentoo.org/567598 sys-apps/busybox/busybox-1.25.1.ebuild | 6 ++++++ sys-apps/busybox/busybox-1.26.2-r1.ebuild | 6 ++++++ sys-apps/busybox/busybox-1.27.2.ebuild | 6 ++++++ sys-apps/busybox/busybox-1.28.0.ebuild | 6 ++++++ sys-apps/busybox/busybox-9999.ebuild | 6 ++++++ 5 files changed, 30 insertions(+)