diff --git a/CMakeLists.txt b/CMakeLists.txt index a31b6172fdf..b2c5b7ab05b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -735,6 +735,7 @@ add_custom_command(OUTPUT include/generated/syscall_dispatch.c ${syscall_list_h} --base-output include/generated/syscalls # Write to this dir --syscall-dispatch include/generated/syscall_dispatch.c # Write this file --syscall-list ${syscall_list_h} + $<$:--gen-mrsh-files> ${SYSCALL_LONG_REGISTERS_ARG} ${SYSCALL_SPLIT_TIMEOUT_ARG} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} diff --git a/scripts/build/gen_syscalls.py b/scripts/build/gen_syscalls.py index 57413150e4f..301b963e870 100755 --- a/scripts/build/gen_syscalls.py +++ b/scripts/build/gen_syscalls.py @@ -401,6 +401,8 @@ def parse_args(): help="A long type that must be split/marshalled on 32-bit systems") parser.add_argument("-x", "--long-registers", action="store_true", help="Indicates we are on system with 64-bit registers") + parser.add_argument("--gen-mrsh-files", action="store_true", + help="Generate marshalling files (*_mrsh.c)") args = parser.parse_args() @@ -477,14 +479,15 @@ def main(): fp.write(header) # Likewise emit _mrsh.c files for syscall inclusion - for fn in mrsh_defs: - mrsh_fn = os.path.join(args.base_output, fn + "_mrsh.c") + if args.gen_mrsh_files: + for fn in mrsh_defs: + mrsh_fn = os.path.join(args.base_output, fn + "_mrsh.c") - with open(mrsh_fn, "w") as fp: - fp.write("/* auto-generated by gen_syscalls.py, don't edit */\n\n") - fp.write(mrsh_includes[fn] + "\n") - fp.write("\n") - fp.write(mrsh_defs[fn] + "\n") + with open(mrsh_fn, "w") as fp: + fp.write("/* auto-generated by gen_syscalls.py, don't edit */\n\n") + fp.write(mrsh_includes[fn] + "\n") + fp.write("\n") + fp.write(mrsh_defs[fn] + "\n") if __name__ == "__main__": main()