summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorNicolás Bértolo <nicolasbertolo@gmail.com>2020-05-11 20:43:06 -0300
committerAndrea Corallo <akrl@sdf.org>2020-05-23 08:02:14 +0100
commit483cdf7a7942c91f6691953c9fe4618194dd175b (patch)
tree6c635f4d4a6a091dd7c7a0177a2173ca240929ed /configure.ac
parent0a2ac47909c497d299e5d5cc111cf77206dcda9b (diff)
downloademacs-483cdf7a7942c91f6691953c9fe4618194dd175b.tar.gz
Load libgccjit dynamically in Windows.
* configure.ac: don't add linker flags if compiling on Windows. Compile dynlib.c if modules or native compilation are enabled. Always compile comp.c * lisp/term/w32-win.el: Map 'gccjit to "libgccjit.dll" in `dynamic-library-alist`. * src/Makefile.in: Update comments. Update to handle changes in configure.ac. * src/comp.c: Add declarations of used libgccjit functions using DEF_DLL_FN. Add calls to load_gccjit_if_necessary() where necessary. Add `native-comp-available-p` * src/comp.h: Remove Fnative_elisp_load. Add syms_of_comp(). * src/emacs.c (main): Always call syms_of_comp() * src/w32.c (globals_of_w32): Clear Vlibrary_cache when starting because the libraries loaded when dumping will not be loaded when starting. * src/w32fns.c: Add Qgccjit symbol.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac19
1 files changed, 14 insertions, 5 deletions
diff --git a/configure.ac b/configure.ac
index 23b94cf6ca1..ea0144f4048 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3666,6 +3666,7 @@ AC_SUBST(LIBZ)
LIBMODULES=
HAVE_MODULES=no
MODULES_OBJ=
+NEED_DYNLIB=no
case $opsys in
cygwin|mingw32) MODULES_SUFFIX=".dll" ;;
darwin) MODULES_SUFFIX=".dylib" ;;
@@ -3701,7 +3702,8 @@ if test "${with_modules}" != "no"; then
fi
if test "${HAVE_MODULES}" = yes; then
- MODULES_OBJ="dynlib.o emacs-module.o"
+ MODULES_OBJ="emacs-module.o"
+ NEED_DYNLIB=yes
AC_DEFINE(HAVE_MODULES, 1, [Define to 1 if dynamic modules are enabled])
AC_DEFINE_UNQUOTED(MODULES_SUFFIX, "$MODULES_SUFFIX",
[System extension for dynamic libraries])
@@ -3785,7 +3787,6 @@ Here instructions on how to compile and install libgccjit from source:
HAVE_NATIVE_COMP=no
LIBGCCJIT_LIB=
-COMP_OBJ=
if test "${with_nativecomp}" != "no"; then
emacs_save_LIBS=$LIBS
LIBS="-lgccjit"
@@ -3793,8 +3794,11 @@ if test "${with_nativecomp}" != "no"; then
[AC_LINK_IFELSE([libgccjit_smoke_test], [], [libgccjit_not_found])])
LIBS=$emacs_save_LIBS
HAVE_NATIVE_COMP=yes
- LIBGCCJIT_LIB="-lgccjit -ldl"
- COMP_OBJ="comp.o"
+ # mingw32 loads the library dynamically.
+ if test "${opsys}" != "mingw32"; then
+ LIBGCCJIT_LIB="-lgccjit -ldl"
+ fi
+ NEED_DYNLIB=yes
AC_DEFINE(HAVE_NATIVE_COMP, 1, [Define to 1 if you have the libgccjit library (-lgccjit).])
fi
if test "${HAVE_NATIVE_COMP}" = yes && test "${HAVE_PDUMPER}" = no; then
@@ -3804,7 +3808,12 @@ AC_DEFINE_UNQUOTED(NATIVE_ELISP_SUFFIX, ".eln",
[System extension for native compiled elisp])
AC_SUBST(HAVE_NATIVE_COMP)
AC_SUBST(LIBGCCJIT_LIB)
-AC_SUBST(COMP_OBJ)
+
+DYNLIB_OBJ=
+if test "${NEED_DYNLIB}" = yes; then
+ DYNLIB_OBJ="dynlib.o"
+fi
+AC_SUBST(DYNLIB_OBJ)
### Use -lpng if available, unless '--with-png=no'.
HAVE_PNG=no