As reported some weeks ago ufsdump fails to link on the upcoming Fedora
13 release due to linking issues, and as reported by Amos the same
linking issues is now also seen on Debian since somewhere between March
2 - 5.

While investigating this I found the following conclusions

- We are not actually installing ufsdump
- The dependencies between the Squid libraries are very non-obvious,
with libraries depending on plain object files and other strange things.
- The ufsdump linkage issues is somehow triggered by the libraries
including objects needing symbols from objects not included in that link
- Those failing library objects are not actually needed by ufsdump.
Linking succeeds if repeatedly removing each reported failing object
from the squid libraries.
- If the libraries were shared libraries then linking would fail on all
systems

As we are not installing ufsdump I propose we take ufsdump out from the
default compilation until these issues can be better understood. The
attached patch does just that.

Regards
Henrik
diff -up squid-3.1.0.16/src/Makefile.am.noufsdump squid-3.1.0.16/src/Makefile.am
--- squid-3.1.0.16/src/Makefile.am.noufsdump	2010-02-18 23:14:16.000000000 +0100
+++ squid-3.1.0.16/src/Makefile.am	2010-02-18 23:15:51.000000000 +0100
@@ -172,14 +172,14 @@ EXTRA_PROGRAMS = \
 	recv-announce \
 	tests/testUfs \
 	tests/testCoss \
-	tests/testNull
+	tests/testNull \
+	ufsdump
 
 ## cfgen is used when building squid
 ## ufsdump is a debug utility, it is possibly useful for end users with cache
 ## corruption, but at this point we do not install it.
 noinst_PROGRAMS = \
-	cf_gen \
-	ufsdump
+	cf_gen
 
 sbin_PROGRAMS = \
 	squid
diff -up squid-3.1.0.16/src/Makefile.in.noufsdump squid-3.1.0.16/src/Makefile.in
--- squid-3.1.0.16/src/Makefile.in.noufsdump	2010-02-18 23:12:26.000000000 +0100
+++ squid-3.1.0.16/src/Makefile.in	2010-02-18 23:13:16.000000000 +0100
@@ -57,8 +57,8 @@ check_PROGRAMS = tests/testAuth$(EXEEXT)
 EXTRA_PROGRAMS = DiskIO/DiskDaemon/diskd$(EXEEXT) unlinkd$(EXEEXT) \
 	dnsserver$(EXEEXT) recv-announce$(EXEEXT) \
 	tests/testUfs$(EXEEXT) tests/testCoss$(EXEEXT) \
-	tests/testNull$(EXEEXT)
-noinst_PROGRAMS = cf_gen$(EXEEXT) ufsdump$(EXEEXT)
+	tests/testNull$(EXEEXT) ufsdump$(EXEEXT)
+noinst_PROGRAMS = cf_gen$(EXEEXT)
 sbin_PROGRAMS = squid$(EXEEXT)
 bin_PROGRAMS =
 libexec_PROGRAMS = $(am__EXEEXT_1) $(DISK_PROGRAMS) $(am__EXEEXT_2)

Reply via email to