[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
hard link bug in libtool
From: |
Mark Nejedlo |
Subject: |
hard link bug in libtool |
Date: |
Wed, 18 Dec 2002 10:14:06 -0600 (CST) |
There is a problem in libtool regarding using hard links for locking. If
there is a mount point in between the lock file location and the location
of the libtool script (unlikely, but possible), the attempt to create a
hard link will fail, causing an infinite loop waiting for the link to be
created. The problem is more severe when libtool is being used in AFS
because every subdirectory in AFS is treated as a mount point with respect
to hard links. Since libtool apparently already checks if it should use
symlinks by setting the variable LN_S, the patch to fix should be a
trivial change in ltmain.in, included below as a diff -u5 against 1.4.2,
which is what I have handy. According to address@hidden the problem
still exists in the libtool CVS tree. Also below is the text of my bug
report to lyx, which is where I first noticed the bug. It may have
additional useful information. Thanks
Mark
diff -u5 ltmain.in ~/ltmain.in
--- ltmain.in Wed Oct 24 15:34:16 2001
+++ /home/nejedlo/ltmain.in Wed Dec 18 10:06:50 2002
@@ -485,11 +485,11 @@
fi
# Lock this critical section if it is needed
# We use this script file to make the link, it avoids creating a new
file
if test "$need_locks" = yes; then
- until $run ln "$0" "$lockfile" 2>/dev/null; do
+ until $run $LN_S "$0" "$lockfile" 2>/dev/null; do
$show "Waiting for $lockfile to be removed"
sleep 2
done
elif test "$need_locks" = warn; then
if test -f "$lockfile"; then
http://bugzilla.lyx.org/show_bug.cgi?id=775
Summary: libtool locks will never work in AFS
Product: LyX
Version: 1.2.1
Platform: PC
OS/Version: Linux
Status: UNCONFIRMED
Severity: minor
Priority: P2
Component: build
AssignedTo: address@hidden
ReportedBy: address@hidden
QAContact: address@hidden
I am attempting to compile lyx 1.2.1 in AFS, and the make process enters
an infinite loop when trying to compile src/mathed/textpainter.C with the
error message "Waiting for textpainter.o.lock to be removed". I deleted
the error redirection of the ln line (approx. line 773, "until $run ln
\"$0\" \"$lockfile\" 2>/dev/null; do") in the libtool at the root of the
source tree and got the error message "ln: creating hard link
`textpainter.o.lock' to `../../libtool': Invalid cross-device link".
Because of how AFS works, it is not possible to create hard links between
files in separate directories, this is the error that occurs when you try.
I changed the "ln" to "ln -s" and it seems to work fine. Interestingly,
when looking through libtool, I found the lines:
# Whether we need hard or soft links.
LN_S="ln -s"
at about line 75. This was on a host running RedHat 7.3 and OpenAFS
1.2.4.
--
Mark Nejedlo address@hidden
2328 Sterling Hall (608) 262-7578
1150 University Avenue
Madison, WI 53706-1390
- hard link bug in libtool,
Mark Nejedlo <=