I decided to make pike7.6-dev Arch: any to get rid of a special case (dynamic_module_makefile).
Now for a review of the pre-build patches and post-build fixups.
01_master.in.dpatch put the extra add_include_path() and add_module_path() calls in normalize_path(). WTF?? Moved to a sensible place.
02_smartlink_rpath.dpatch rather aggresively comments out code in smartlink.c, but things seem to work. But again, why are there both a shell script and a C program?
03_language.yacc_bison_fix.dpatch disables the following #define in language.c:
/* Bison is stupid, and tries to optimize for space... */ #ifdef YYBISON #define short int #endif /* YYBISON */
The above is immediately followed by:
#ifdef short # undef short #endif
Foo?
04_make_variables_fpic.dpatch adds -fPIC to OTHERFLAGS and NOOPTFLAGS in src/make_variables.in. Isn't Pike's build system competent enough to use -fPIC as needed?
05_install.pike.dpatch was merged with 06_src_makefile.in.dpatch. It should have been the other way around, since patching install.pike is no longer necessary with --traditional. However, patching src/Makefile.in is still necessary to allow INSTALLARGS and include_prefix to be passed from the top Makefile. (debian/rules now calls the top Makefile only, since I suppose that's what you're supposed to do.)
07_dynamic_module_makefile.in-libgcc.dpatch sets LIBGCC=$(shell gcc -print-libgcc-file-name) in dynamic_module_makefile.in. I suppose it's practical if modules can be built with some other version of gcc that the one Pike was built with.
debian/rules creates a file /usr/include/pike/7.6.112/specs containing various build parameters, such as CPPFLAGS and configure_args. I don't know if any other package uses it.
Finally, the location of dynamic_module_makefile is adjusted, in dynamic_module_makefile, from $(MODULE_BASE) to $(PIKE_SRC_DIR), which probably makes sense if PIKE_SRC_DIR is set to the include directory and MODULE_BASE is set to the modules directory when building modules. How does it work? Is there an example of how to build a binary module somewhere? http://pike.ida.liu.se/generated/manual/ref/chapter_18.html#2 is not very complete. And shouldn't "sinclude(../module_configuration.in)" be "sinclude(../module_configure.in)"?