* m4/linkat.m4 (gl_FUNC_LINKAT): linkat() is available on Yosemite
but not usable because it doesn't support creating hardlinks
to symlinks. Therefore add a generic test for this capability
and fallback to our emulation if linkat() fails with ENOTSUP.
at-func2 still needs xalloc_die because of openat-die, but this
change is still good to make.
* modules/linkat (Depends-on): Use filenamecat-lgpl, not
filenamecat.
* modules/renameat (Depends-on): Likewise.
Signed-off-by: Eric Blake <ebb9@byu.net>
Some of these modules still use xalloc_die from other paths, but
mkdir and rename are definitely reduced in complexity.
* modules/backupfile (Depends-on): Use dirname-lgpl, not dirname.
* modules/filenamecat (Depends-on): Likewise.
* modules/linkat (Depends-on): Likewise.
* modules/mkancesdirs (Depends-on): Likewise.
* modules/mkdir (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
* modules/rename (Depends-on): Likewise.
(License): Relax license.
* modules/mkdir-tests (Depends-on): Drop progname.
(Makefile.am): Delete unneeded LDADD.
* modules/rename-tests (Depends-on, Makefile.am): Likewise.
Signed-off-by: Eric Blake <ebb9@byu.net>
* lib/at-func.c (FUNC_FAIL): New define.
(AT_FUNC_NAME, VALIDATE_FLAG): Use it rather than raw -1.
* modules/areadlinkat: New module.
* lib/linkat.c (areadlinkat): Move...
* lib/areadlinkat.c (areadlinkat): ...to new file.
* lib/areadlink.h (areadlinkat): Declare it.
* modules/linkat (Depends-on): Add areadlinkat.
* MODULES.html.sh (File system functions): Mention it.
* modules/areadlinkat-tests: New test.
* tests/test-areadlinkat.c: New file.
Signed-off-by: Eric Blake <ebb9@byu.net>