summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2013-05-17 01:20:39 -0400
committerPaul Smith <psmith@gnu.org>2013-05-17 01:20:39 -0400
commitb730fbc6b86d777e80856e997ddc56fc4a851769 (patch)
tree9ca4f2aae6b0f5d8669c7990f3b2f50f22cd1780 /ChangeLog
parentc21c1455fdfc6e87d75941f48841c72903e1e0f4 (diff)
downloadgunmake-b730fbc6b86d777e80856e997ddc56fc4a851769.tar.gz
Remove the dlopen() pointer from struct filedef.
This pointer is almost never needed, and it increases the size of the filedef struct for all files (of which there are a huge number for large builds). Instead keep a bit field marking whether the file is a loaded object and if so call a new function to unload it. In load.c we keep a simple linked list of loaded objects (of which there will be very few typically) and their dlopen() pointers.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog18
1 files changed, 18 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c317594..d9c3167 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2013-05-17 Paul Smith <psmith@gnu.org>
+
+ * makeint.h: Prototype new unload_file() function.
+ * load.c (unload_file): Create a function to unload a file.
+ (struct load_list): Type to remember loaded objects.
+ (loaded_syms): Global variable of remembered loaded objects so we
+ can unload them later. We don't have to remove from the list
+ because the only time we unload is if we're about to re-exec.
+ (load_object): Remove unneeded extra DLP argument.
+ (load_file): Remove unneeded extra DLP argument.
+ * filedef.h (struct file): Remove the DLP pointer and add the
+ LOADED bit flag. Saves 32/64 bytes per file, as this pointer is
+ almost never needed.
+ * read.c (eval): Set the new LOADED bit flag on the file.
+ * file.c (rehash_file): Merge the loaded bitfield.
+ * commands.c (execute_file_commands): Call unload_file() instead
+ of dlclose() directly.
+
2013-05-14 Paul Smith <psmith@gnu.org>
* doc/make.texi (Loaded Object API): Document the requirement for