![]() |
I ran into a problem when porting hylafax-v4.0pl2 to Solaris 8 sparc, using /opt/sfw/bin/gcc (the version of GCC 2.95.2 that is distributed with Sun's Bonus CD). The same problem occurs in hylafax-4.1beta2. The problem is that mkdepend computes the following bogus dependency: Array.o: Array.c++ Array.h Obj.h Types.h ${INCLDIR}/string.h \ ... \ /opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.../../../sparc-sun-solaris2.8/include/assert.h \ ... The ".../.." is incorrect. This bogus dependency causes "make" to fail. The culprit is the following command in port/mkdepend.in: -e :loop -e 's:[^\./][^\./]*/\.\./::g' -e tloop \ This command transforms the line: /opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/../../../../sparc-sun-solaris2.8/include/assert.h \ to: /opt/sfw/lib/gcc-lib/sparc-sun-solaris2.8/2.95.../../../sparc-sun-solaris2.8/include/assert.h \ Trying to remove "FOO/../" is a mistake, even if this particular sed botch could be patched up, because it doesn't work if FOO is a symbolic link. Here's a patch. 2000-06-23 Paul Eggert <eggert@twinsun.com> * port/mkdepend.in: Don't try to optimize "a/b/../d" into "a/d". This is incorrect if b is a symbolic link. Also, the code was broken anyway: it transformed "/2.95.2/../" into "/2.95.../". =================================================================== RCS file: port/mkdepend.in,v retrieving revision 1.1 retrieving revision 1.2 diff -pu -r1.1 -r1.2 --- port/mkdepend.in 1998/10/12 20:47:50 1.1 +++ port/mkdepend.in 2000/06/24 00:57:32 1.2 @@ -249,7 +249,6 @@ fi depgenxx=`echo $depgen|sed -e s/\'//g -e 's/(/\\(/g' -e 's/)/\\)/g'` $depgenxx $* | eval "sed \ - -e :loop -e 's:[^\./][^\./]*/\.\./::g' -e tloop \ -e 's:\([/ ]\)\./:\1:g' \ $sedprog" | $AWK "$awkprog" >> $newdepfile ____________________ HylaFAX(tm) Users Mailing List _______________________ To unsub: mail -s unsubscribe hylafax-users-request@hylafax.org < /dev/null