From 1748e6641419e8a48f830caad072ed5b298577af Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Sun, 7 May 2023 16:51:12 -0400 Subject: [SV 63219] Support an "unload" function for loaded objects If a loaded object defines a symbol _gmk_unload, assume it's a function and invoke it whenever the loaded object is unloaded. Original implementation by Dmitry Goncharov * NEWS: Announce the change. * doc/make.texi: Describe the behavior. * src/gnumake.h: Add information to the comments. * src/makeint.h (unload_all): Declare a new function. * src/main.c (die): Invoke unload_all(). * src/load.c (unload_func_t): Declare a new type for unload. (struct load_list): Remember the unload symbol if it exists. (load_object): Move the parsing of the object name from load_file. Check for the _gmk_unload symbol and if found, remember it. (load_file): Allow load_object to do object filename parsing. (unload_file): Remove the load_list entry when unloading the object. (unload_all): Unload all the loaded objects. * tests/scripts/features/loadapi: Test the unload function. --- NEWS | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'NEWS') diff --git a/NEWS b/NEWS index 159d228e..295a2a4e 100644 --- a/NEWS +++ b/NEWS @@ -29,6 +29,12 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=111&se your initialization function can check the provided ABI version to verify it's being loaded correctly. +* New feature: Unload function for loaded objects + When a loaded object needs to be unloaded by GNU Make, it will invoke an + unload function (if one is defined) beforehand that allows the object to + perform cleanup operations. + Original idea and implementation: Dmitry Goncharov + * New feature: Makefile warning reporting control A new option "--warn" controls reporting of warnings for makefiles. Actions can be set to "ignore", "warn", or "error". Two new warnings are reported: @@ -38,7 +44,7 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=111&se deprecated, and is translated to "--warn=undefined-vars" internally. * New feature: Control warnings with the .WARNINGS variable - In addition to --warn from the command line, which take effect for make + In addition to --warn from the command line, which takes effect for make invoked recursively, warnings can be controlled only for the current instance of make using the .WARNINGS variable. -- cgit v1.2.1