summaryrefslogtreecommitdiff
path: root/include/kernel.mk
diff options
context:
space:
mode:
authorRoman Yeryomin <roman@advem.lv>2019-04-12 18:26:03 +0300
committerJonas Gorski <jonas.gorski@gmail.com>2019-06-06 12:05:51 +0200
commit94464cfca297241870678e176274bbca878aa174 (patch)
tree5ca23e5c9c97a1734c44b694f940d7a32a072e5a /include/kernel.mk
parent24e09bac48b6ce90c11407676dbfa42d069cff24 (diff)
downloadopenwrt-94464cfca297241870678e176274bbca878aa174.tar.gz
build: fix external module symbol collection if build_dir is a symlink
e26ffb31dfa30d498b963a86d231835e3af7d3df fixed only embedded modules symbol collection. If we are building external modules, like broadcom-wl or lantiq dsl stuff then modules which do EXPORT_SYMBOL have unresolved paths in Module.symvers and external module which depend on other external modules will have empty dependencies, leading to broken module loading. This was discussed on IRC with Jonas some time ago. Fix this by handling both resolved and unresolved paths. Fixes: e26ffb31dfa3 ("build: fix module symbol collection if build_dir is a symlink") Signed-off-by: Roman Yeryomin <roman@advem.lv> [jonas.gorski@gmail.com: add appropriate fixes tag] Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Diffstat (limited to 'include/kernel.mk')
-rw-r--r--include/kernel.mk5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/kernel.mk b/include/kernel.mk
index 3195090a0a..8dfe903bcc 100644
--- a/include/kernel.mk
+++ b/include/kernel.mk
@@ -141,7 +141,10 @@ endef
define collect_module_symvers
for subdir in $(PKG_EXTMOD_SUBDIRS); do \
- grep -F $$$$(readlink -f $(PKG_BUILD_DIR)) $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers >> $(PKG_BUILD_DIR)/Module.symvers.tmp; \
+ realdir=$$$$(readlink -f $(PKG_BUILD_DIR)); \
+ grep -F $(PKG_BUILD_DIR) $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers >> $(PKG_BUILD_DIR)/Module.symvers.tmp; \
+ [ "$(PKG_BUILD_DIR)" = "$$$$realdir" ] || \
+ grep -F $$$$realdir $(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