libroken provides roken/rename.c for platforms where the native rename()
implementation does not replace the target if it already exists. As designed,
rk_rename() should be used instead of rename() everywhere and rk_rename()
is #defined to be rename() on platforms where this fix is not necessary.
Do not include the rk_rename() implementation on platforms which do not need
the rk_rename since it is not used on those platforms.
Note: This fix also avoids a recursive rename(). As currently implemented, the
rk_rename() function is redefined to rename() within the roken/rename.c module
when RENAME_DOES_NOT_UNLINK is not defined. This can mask the standard library
rename() and leads to a recursive call to rename().
Change-Id: I47a1fcd21939b161aaa7df7ffab26dc84e7b75ed
Reviewed-on: https://gerrit.openafs.org/12091
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
# need to replace/provide. The values contained therein include a prefix
# ${LIBOBJDIR}, which is not set, so they will be sought in this directory.
LT_objs = $(ROKEN_LTLIBOBJS) base64.lo cloexec.lo ct.lo hex.lo issuid.lo \
- mkdir.lo net_read.lo net_write.lo rename.lo socket.lo snprintf.lo \
+ mkdir.lo net_read.lo net_write.lo socket.lo snprintf.lo \
warnerr.lo
HEADERS = ${TOP_INCDIR}/base64.h \
net_write.lo: ${UPSTREAM}/net_write.c ${HEADERS}
$(LT_CCRULE) $(UPSTREAM)/net_write.c
-rename.lo: ${UPSTREAM}/rename.c ${HEADERS}
- $(LT_CCRULE) $(UPSTREAM)/rename.c
-
setenv.lo: ${UPSTREAM}/setenv.c ${HEADERS}
$(LT_CCRULE) $(UPSTREAM)/setenv.c