> On 2023-02-24, at 5:43 PM, Pádraig Brady <p...@draigbrady.com> wrote: > > On 24/02/2023 14:33, George Valkov wrote: >>> On 2023-02-24, at 12:23 AM, Paul Eggert <egg...@cs.ucla.edu> wrote: >>> >>> On 2/20/23 13:14, Pádraig Brady wrote: >>>> Since https://github.com/coreutils/gnulib/commit/4db8db34 >>>> gnulib has been unconditionally replacing lseek() on macos. >>>> Now with SEEK_DATA undefined that replaced lseek() >>>> will run the code intended for BeOS. >>>> So either the lseek.m4 or lseek.c needs adjusting accordingly. >>> >>> Good catch, thanks. I updated the Gnulib patch accordingly; see attached. >> Nice: I just downloaded a fresh copy of Savannah, and it already includes >> the attached patch, so no action needed on my side. >> The copy created by cp is good. I noticed that you have added a —debug >> switch, so I gave it a test: >> 1. If the target exists I get this output. I would assume zeroes means that >> all data is read from the source, but pages containing only zeroes are >> skipped, while pages containing data are written to the target, which is >> fine. I would guess 4 KB page granularity or some form of detection takes >> place. > > Exactly. > >> ./coreutils-2023-02-24/src/cp --debug cc1-mmap cc1-ori >> 'cc1-mmap' -> 'cc1-ori' >> copy offload: avoided, reflink: unsupported, sparse detection: zeros >> 2. If the target does not exist, the file is cloned. You might want to >> report something about that in the debug output. Otherwise the clone is good. >> ./coreutils-2023-02-24/src/cp --debug cc1-mmap cc1-ori >> 'cc1-mmap' -> 'cc1-ori’ > > Yes that was a mistake. > Should be fixed with > https://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=65bb27656
Looks good commit 65bb2765646df18488b266e6c1851593d3f9c966 ./coreutils-2023-02-24.b/src/cp --debug cc1-mmap cc1-ori 'cc1-mmap' -> 'cc1-ori' copy offload: unknown, reflink: yes, sparse detection: unknown >> My first attempt to run the tests stopped here, so I had to interrupt it 10 >> minutes later with Control+C. > >> ^Cmake[1]: *** Deleting file 'tests/tail-2/inotify-race.log' >> ^C^C^C^C^C^C >> killall gdb >> ps -A |grep gdb >> 29584 ?? 0:00.09 gdb -nx --batch-silent --eval-command=break 1475 >> --eval-command=run --pid=29583 -f file --eval-command=quit tail >> 23269 ttys010 0:00.09 gdb -nx --batch-silent --eval-command=break 1475 >> --eval-command=run --pid=23268 -f file --eval-command=quit tail >> killall -9 gdb >> ps -A |grep gdb >> Killing gdb allowed the tests to continue, I had to do it twice: > > That's awkward. > That test documents the issue with protecting the gdb invocation with > timeout(1). > I suppose we could restrict this test to inotify capable systems, > which would have the side effect of avoiding its use on non linux systems. > The attached patch does that. Still hanging out there after PASS: tests/rm/isatty.sh There were no gdb instances to kill, but if I press enter, it continues empty-inacc.sh: set-up failure: ERROR: tests/rm/empty-inacc.sh PASS: tests/rm/empty-name.pl … https://httpstorm.com/share/.openwrt/test/2023-02-06_coreutils-9.1/test-07-65bb2765646df18488b266e6c1851593d3f9c966-patch.txt coreutils: git checkout cf80f988eeb97cc3f8c65ae58e735d36f865277b gnulib: git checkout 32c16c45d7378b014d9aac6130104c4d02a9acdb ./bootstrap && ./configure && make clean && make -j 16 make check-TESTS # still hangs: gdb git checkout -b cf80-macos-gdb-hang git am < macos-gdb-hang.patch make clean && make -j 16 make check-TESTS # completes successfully Clone and configure another fresh copy; gnulib at master; test various coreutils commits, applying macos-gdb-hang.patch on top of them; make clean && make -j 16 cf80f988eeb97cc3f8c65ae58e735d36f865277b hangs: gdb I would suspect either some change in gnulib or some of the other repositories is causing these. I cannot checkout random gnulib commits, since the build breaks completely. Check various commits of gnulib gnulib 7352d9fec59398c76c3bb8a2ef86ba58818f0342 master hangs: ENTER gnulib bb3fd10e6309f017618a12b2c10d3bfb813bfc08 hangs: ENTER gnulib f77a31de60963c994cd9b42c8088be0e734962d7 aclocal-1.16: error: aclocal: file 'm4/build-to-host.m4' does not exist Trying to revert some commits and go back in time: git revert f77a31de60963c994cd9b42c8088be0e734962d7 fails git revert 1e29238e40d118d4f769f7516700dd4fc494bfcd fails > thanks for all the testing. Look Pádraig, I’m glad to help, but this is really taking a lot of energy, these tests took another full day, and I’d be thankful if we can make everything work sooner. I’ve been spending many hours each day for a few weeks now. I need to finish my own tasks and find a job. In the old build directory if I ./bootstrap && ./configure and make -j 16, the tests complete. It is using these checkpoints: coreutils: git checkout cf80f988eeb97cc3f8c65ae58e735d36f865277b gnulib: git checkout 32c16c45d7378b014d9aac6130104c4d02a9acdb However if I clone a fresh copy ./bootstrap && ./configure, then check the same commits, ./configure again and make -j 16, I need to also apply your gdb patch, otherwise it hangs. And on master I need your patch and I need to press enter after PASS: tests/rm/isatty.sh. Georgi Valkov httpstorm.com nano RTOS