Having finally managed to codesign Gdb!
On macOS Sonoma 14.7.4 (intel) mv starts as on PPC Tiger. It reaches lines #457
and #459, but "target_dirfd_valid (fd)" delivers here FALSE, deduced from the
fact that line #478 gets executed with errno presumingly 20 (on line #480 I can
print err, which gives this value). x.rename_errno from line #454 is 17, as on
PPC Tiger.
457 if (x.rename_errno != 0)
458 {
459 int fd = target_directory_operand (lastfile, &sb);
460 if (target_dirfd_valid (fd))
461 {
462 x.rename_errno = -1;
463 target_dirfd = fd;
464 target_directory = lastfile;
465 n_files--;
466 }
467 else
468 {
469 /* The last operand LASTFILE cannot be opened as a
directory.
470 If there are more than two operands, report an error.
471
472 Also, report an error if LASTFILE is known to be a
directory
473 even though it could not be opened, which can happen if
474 opening failed with EACCES on a platform lacking O_PATH.
475 In this case use stat to test whether LASTFILE is a
476 directory, in case opening a non-directory with
(O_SEARCH
477 | O_DIRECTORY) failed with EACCES not ENOTDIR. */
478 int err = errno;
479 if (2 < n_files
480 || (O_PATHSEARCH == O_SEARCH && err == EACCES
481 && (sb.st_mode != 0 || stat (lastfile, &sb) == 0)
482 && S_ISDIR (sb.st_mode)))
483 error (EXIT_FAILURE, err, _("target %s"), quoteaf
(lastfile));
484 }
485 }
n_files is 2, EACCES is presumingly 13
(/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/errno.h:101,
/* Permission denied */) – the others I cannot tell (O_PATHSEARCH does not
seem to exist, O_SEARCH is (O_EXEC | O_DIRECTORY)). The error() function is
not executed and line #485 (no visible text output, cursor jumps over line
#483) reached.
On line #519 target_directory is still 0x0, so
537 ok &= do_move (source, dest, target_dirfd, dest_relname, &x);
is reached and job done correctly:
pete 289 /\ ./ls -l k out
ls: Zugriff auf 'k' nicht möglich: No such file or directory
-rw-r--r-- 1 pete admin 0 23. Mai 15:38 out
Exit 2
Interestingly the output is so polyglot…
So presumingly it's not renameatu() but rather
lib/targetdir.c:61:target_directory_operand (char const *file, struct stat *st)
that is faulty…
OK, I'll try to continue a bit today!
--
Greetings
Pete
If the majority of cooking accidents happen in the kitchen, then why don't we
just cook in other rooms?