build: fix module symbol collection if build_dir is a symlink
authorJonas Gorski <jonas.gorski@gmail.com>
Fri, 3 Nov 2017 09:59:00 +0000 (10:59 +0100)
committerJonas Gorski <jonas.gorski@gmail.com>
Tue, 7 Nov 2017 21:58:46 +0000 (22:58 +0100)
If PKG_BUILD_DIR contains symlinks, the generated Module.symvers will
contain the resolved paths, not the virtual path with the symlink name.

This breaks the filter for the module's own symbols, so to fix this
ensure we also grep for the resolved path.

Reported-by: Roman Yeryomin <roman@advem.lv>
Tested-by: Roman Yeryomin <roman@advem.lv>
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
include/kernel.mk

index 92136f407abe50f96fb5a1cebc20f50874cdbb1f..8cb0defcb5948be0883bfdf69d61aad85d10d689 100644 (file)
@@ -135,7 +135,7 @@ endef
 
 define collect_module_symvers
        for subdir in $(PKG_EXTMOD_SUBDIRS); do \
-               grep -F $(PKG_BUILD_DIR) $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers >> $(PKG_BUILD_DIR)/Module.symvers.tmp; \
+               grep -F $$$$(readlink -f $(PKG_BUILD_DIR)) $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers >> $(PKG_BUILD_DIR)/Module.symvers.tmp; \
        done; \
        sort -u $(PKG_BUILD_DIR)/Module.symvers.tmp > $(PKG_BUILD_DIR)/Module.symvers; \
        mv $(PKG_BUILD_DIR)/Module.symvers $(PKG_INFO_DIR)/$(PKG_NAME).symvers