xiaoxiang781216 commented on a change in pull request #1271:
URL: https://github.com/apache/incubator-nuttx/pull/1271#discussion_r442410205
##########
File path: syscall/Makefile
##########
@@ -76,27 +88,43 @@ $(BIN1): $(PROXY_OBJS)
$(BIN2): $(STUB_OBJS)
$(call ARCHIVE, $@, $(STUB_OBJS))
+$(BIN3): $(WRAP_OBJS)
+ $(call ARCHIVE, $@, $(WRAP_OBJS))
+
+$(SYSCALLIST): .context
+
.depend: Makefile $(SRCS)
- $(Q) $(MKDEP) $(PROXYDEPPATH) $(STUBDEPPATH) \
+ $(Q) $(MKDEP) $(PROXYDEPPATH) $(STUBDEPPATH) $(WRAPDEPPATH) \
"$(CC)" -- $(CFLAGS) -- $(SRCS) >Make.dep
$(Q) touch $@
depend: .depend
.context: syscall.csv
$(Q) $(MAKE) -C $(TOPDIR)$(DELIM)tools -f Makefile.host mksyscall
+ifeq ($(CONFIG_LIB_SYSCALL),y)
$(Q) (cd proxies; $(MKSYSCALL) -p $(CSVFILE);)
$(Q) (cd stubs; $(MKSYSCALL) -s $(CSVFILE);)
+else
+ifeq ($(CONFIG_SCHED_INSTRUMENTATION_SYSCALL),y)
+ $(Q) (cd wraps; $(MKSYSCALL) -w $(CSVFILE);)
+ $(Q) $(MKSYSCALL) -l $(CSVFILE) > $(SYSCALLLIST:.txt=.h)
+ $(Q) $(call PREPROCESS, $(SYSCALLLIST:.txt=.h), $(SYSCALLLIST))
+ $(Q) sed -i -n -e '/^[^#]/p' $(SYSCALLLIST)
Review comment:
Why we need four steps to generate the link command file?
```
$(Q) $(MKSYSCALL) -l $(CSVFILE) > $(SYSCALLLIST:.txt=.h)
$(Q) $(call PREPROCESS, $(SYSCALLLIST:.txt=.h), $(SYSCALLLIST))
$(Q) sed -i -n -e '/^[^#]/p' $(SYSCALLLIST)
cat $< | sed -e 's/^/--wrap=/' > $@
```
We can define a clever SYSCALL_LOOKUP macro to generate them in one step:
```
--wrap=xxx
--wrap=yyy
```
then we don't need add -l for mksyscall and postprocess again in arch's
Makefile.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]