On 2018-4-14 07:30 , Enrico Maria Crisostomo wrote: > I think I found the culprit: > > % strings /opt/macports-2.4.3-dirty/libexec/macports/lib/libtcl8.5.dylib > | grep 2\\.4\\. > /opt/macports-2.4.2/libexec/macports/lib > /opt/macports-2.4.2/libexec/macports/bin > /opt/macports-2.4.2/libexec/macports/lib/tcl8.5 > /opt/macports-2.4.2/libexec/macports/include > /opt/macports-2.4.2/libexec/macports/man > /opt/macports-2.4.3-dirty/libexec/macports/lib/tcl8.5 > /opt/macports-2.4.3-dirty/libexec/macports/lib > > while the library built from the clean repo is right: > > % strings /opt/macports-2.4.3-clean/libexec/macports/lib/libtcl8.5.dylib > | grep 2\\.4\\. > /opt/macports-2.4.3-clean/libexec/macports/lib > /opt/macports-2.4.3-clean/libexec/macports/bin > /opt/macports-2.4.3-clean/libexec/macports/lib/tcl8.5 > /opt/macports-2.4.3-clean/libexec/macports/include > /opt/macports-2.4.3-clean/libexec/macports/man > /opt/macports-2.4.3-clean/libexec/macports/lib/tcl8.5 > /opt/macports-2.4.3-clean/libexec/macports/lib > > Hence, the macports installation that was built from the dirty tree is > referring to the installation directory of the previous build. That also > explains why removing that directory makes port crash, as I said in a > previous mail.
OK, so the issue is not with switching tags without cleaning at all, but configuring for a different prefix without cleaning. The bug is in one of Tcl's Makefiles, which compiles tclPkgConfig.c with several -D flags using values that are directly substituted into the Makefile by autoconf. There should probably be a dependency declared on the Makefile itself. - Josh