Messages in this thread Patch in this message | | | Date | Sun, 04 Mar 2001 16:24:57 +1100 | From | Andrew Morton <> | Subject | 2.4.2-pre1 mkdep and symlinked $TOPDIR |
| |
Keith,
I do builds in /usr/src/linux, which is a symlink to /usr/src/linux-akpm. The recent `mkdep' changes have broken this practice most horridly. When searching .hdepend, `make' doesn't recognise that nested headers have changed. This is because .hdepend has things like
/usr/src/linux/include/asm/byteorder.h: \ /usr/src/linux-akpm/include/asm/types.h \
So when it looks for dependencies for /usr/src/linux-akpm/include/asm/byteorder.h
it doesn't find anything. In earlier kernels, the whole toolchain honoured the symlink form of the name.
The net effect of all this is that changes to included headers are *not* causing recompiles, and use of a symlinked $TOPDIR is not feasible.
The workaround at this time is to do a `cd' to the real $TOPDIR directory before starting development, rather than a `cd' to the symlink.
If it is your intention that everything in the build system use the "real" pathname then I suggest we need to make it happen consistently. Or can we restore the old behaviour?
--- linux-2.4.3-pre1/scripts/mkdep.c Sat Mar 3 20:52:24 2001 +++ linux-akpm/scripts/mkdep.c Sun Mar 4 16:16:00 2001 @@ -218,19 +218,12 @@ void add_path(const char * name) { struct path_struct *path; - char resolved_path[PATH_MAX+1]; const char *name2; - if (strcmp(name, ".")) { - name2 = realpath(name, resolved_path); - if (!name2) { - fprintf(stderr, "realpath(%s) failed, %m\n", name); - exit(1); - } - } - else { + if (strcmp(name, ".")) + name2 = name; + else name2 = ""; - } path_array = realloc(path_array, (++paths)*sizeof(*path_array)); if (!path_array) { - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |