]> git.ipfire.org Git - thirdparty/make.git/commit
Fix interfacing with and remaking dynamic objects on MS-Windows.
authorEli Zaretskii <eliz@gnu.org>
Fri, 3 May 2013 13:09:12 +0000 (16:09 +0300)
committerEli Zaretskii <eliz@gnu.org>
Fri, 3 May 2013 13:09:12 +0000 (16:09 +0300)
commita66469e003526679b793f2d4623219aab2230b2f
treea8f532fab0ab0dcc11221c06896dbaf99fba5cc5
parentb5ea49bae7e5074e472605e5d0c2413e62461718
Fix interfacing with and remaking dynamic objects on MS-Windows.

 load.c (load_object, load_file): Accept an additional argument
 DLP and return in it a pointer that can be used to unload the
 dynamic object.
 read.c (eval): Call load_file with an additional argument, and
 record the pointer returned there in the 'struct file' object of
 dynamic objects in that object's 'struct file'.
 commands.c (execute_file_commands): Unload dynamic objects
 before remaking them, to avoid failure to remake if the OS doesn't
 allow overwriting objects that are in use.
 filedef.h (struct file): New member dlopen_ptr.
 gnumake.h (GMK_EXPORT): Define to dllexport/dllimport
 decorations for Windows and to nothing on other platforms.
 (gmk_eval, gmk_expand, gmk_add_function): Add GMK_EXPORT qualifier
 to prototypes.
 makeint.h (MAIN): Define before including gnumake.h, to give
 correct dllexport decorations to exported functions.
 (load_file): Adjust prototype.
 loadapi.c: Don't include gnumake.h, since makeint.h already
 includes it, and takes care of defining MAIN before doing so.
 build_w32.bat (LinkGCC): Produce an import library for functions
 exported by Make for loadable dynamic objects.

 w32/compat/posixfcn.c (dlclose): New function.
 w32/include/dlfcn.h (dlclose): Add prototype.

 scripts/features/load: Fix signatures of testload_gmk_setup and
 explicit_setup, to bring them in line with the documentation.
13 files changed:
ChangeLog
build_w32.bat
commands.c
filedef.h
gnumake.h
load.c
loadapi.c
makeint.h
read.c
tests/ChangeLog
tests/scripts/features/load
w32/compat/posixfcn.c
w32/include/dlfcn.h