1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-16 00:01:05 -08:00
Commit graph

1097 commits

Author SHA1 Message Date
Philipp Stephani
17d20bb3cb Generate Seccomp filters only if we have the necessary constants.
If we're missing SECCOMP_SET_MODE_FILTER, the seccomp-filter build
fails.  Reuse the existing HAVE_SECCOMP configuration variable, which
checks for these macros.

* configure.ac (HAVE_SECCOMP): Substitute in Makefile.in.
* lib-src/Makefile.in (HAVE_SECCOMP): New variable.
(SECCOMP_FILTER): Define only if HAVE_SECCOMP.
2021-04-12 09:15:59 +02:00
Andreas Schwab
751e801f90 Fix check for timer_getoverrun
* configure.ac (timer_getoverrun): Move check after gnulib checks
and use $LIB_TIMER_TIME during check.
2021-04-11 17:33:33 +02:00
Philipp Stephani
725fc96b70 Use pkg-config to check for libseccomp.
We need at list version 2.4.0 of libseccomp for seccomp-filter.c to
build cleanly.

* configure.ac: Use pkg-config to check for libseccomp.
* lib-src/Makefile.in (HAVE_LIBSECCOMP, LIBSECCOMP_LIBS)
(LIBSECCOMP_CFLAGS): New variables.
(SECCOMP_FILTER, seccomp-filter$(EXEEXT)): Use them.
2021-04-11 16:50:29 +02:00
Philipp Stephani
0334fa0532 Add another check for the required header <linux/filter.h>.
* configure.ac: Also check for <linux/filter.h>.
* src/emacs.c (SECCOMP_USABLE): Also check for <linux/filter.h>.
2021-04-11 12:26:13 +02:00
Philipp Stephani
25937821bc Also check for needed seccomp macros.
It looks like these are not available on some versions of GNU/Linux,
breaking the build.

* configure.ac: Also check for needed seccomp macros.
* src/emacs.c (SECCOMP_USABLE): New macro.
(usage_message, main, standard_args): Use it.
2021-04-11 12:01:53 +02:00
Philipp Stephani
1060289f51 Add a helper binary to create a basic Secure Computing filter.
The binary uses the 'seccomp' helper library.  The library isn't
needed to load the generated Secure Computing filter.

* configure.ac: Check for 'seccomp' header and library.

* lib-src/seccomp-filter.c: New helper binary to generate a generic
Secure Computing filter for GNU/Linux.

* lib-src/Makefile.in (DONT_INSTALL): Add 'seccomp-filter' helper
binary if possible.
(all): Add Secure Computing filter file if possible.
(seccomp-filter$(EXEEXT)): Compile helper binary.
(seccomp-filter.bpf seccomp-filter.pfc): Generate filter files.

* test/src/emacs-tests.el (emacs-tests/seccomp/allows-stdout)
(emacs-tests/seccomp/forbids-subprocess): New unit tests.

* test/Makefile.in (src/emacs-tests.log): Add dependency on the helper
binary.
2021-04-10 21:10:16 +02:00
Philipp Stephani
be8328acf9 Add support for --seccomp command-line option.
When passing this option on GNU/Linux, Emacs installs a Secure
Computing kernel system call filter.  See Bug#45198.

* configure.ac: Check for seccomp header.

* src/emacs.c (usage_message): Document --seccomp option.
(emacs_seccomp): New wrapper for 'seccomp' syscall.
(load_seccomp, maybe_load_seccomp): New helper functions.
(main): Potentially load seccomp filters during startup.
(standard_args): Add --seccomp option.

* lisp/startup.el (command-line): Detect and ignore --seccomp option.

* test/src/emacs-tests.el (emacs-tests/seccomp/absent-file)
(emacs-tests/seccomp/empty-file)
(emacs-tests/seccomp/file-too-large)
(emacs-tests/seccomp/invalid-file-size): New unit tests.
(emacs-tests--with-temp-file): New helper macro.

* etc/NEWS: Document new --seccomp option.
2021-04-10 18:47:26 +02:00
Lars Ingebrigtsen
2c3340909a Warn the user if we can't find pkg-config
* configure.ac (WITH_IFAVAILABLE): Warn the user if we can't find
a usable pkg-config (bug#47159).
2021-03-19 08:58:32 +01:00
Glenn Morris
d632622b5a Simplify silent-rules build machinery
* src/verbose.mk.in: New file.
* configure.ac (AM_V, AM_DEFAULT_V): Remove output variables.
(src/verbose.mk): New output file.
* Makefile.in, admin/charsets/Makefile.in:
* admin/grammars/Makefile.in, admin/unidata/Makefile.in:
* doc/emacs/Makefile.in, doc/lispintro/Makefile.in:
* doc/lispref/Makefile.in, doc/misc/Makefile.in, leim/Makefile.in:
* lib-src/Makefile.in, lib/Makefile.in, lisp/Makefile.in:
* lwlib/Makefile.in, nt/Makefile.in, oldXMenu/Makefile.in:
* src/Makefile.in, src/verbose.mk.in, test/Makefile.in:
Include src/verbose.mk rather than repeatedly defining AM_V_at etc.
2021-03-06 16:28:46 -08:00
Glenn Morris
c3cf99f537 Remove the --without-makeinfo configure option (bug#46837)
* configure.ac (--without-makeinfo): Remove option.
(HAVE_MAKEINFO): Remove output variable.

* Makefile.in (HAVE_MAKEINFO): Remove.
(info_misc): Remove HAVE_MAKEINFO check.
(info-real): Remove target.
(info): Simplify.

; * etc/NEWS: Mention this.
2021-03-06 10:38:07 -08:00
Glenn Morris
26fcd82890 * configure.ac: Replace obsolete AC_CHECK_HEADER usage. (Bug#46578) 2021-02-16 21:25:18 -08:00
Glenn Morris
5f078928bb * configure.ac: Replace obsolete AC_TRY_LINK with AC_LINK_IFELSE. 2021-02-16 20:55:13 -08:00
Glenn Morris
45e964755b Remove TIME_WITH_SYS_TIME, unused for a long time
* configure.ac (AC_HEADER_TIME): Remove.  (Bug#46578)
2021-02-16 20:55:13 -08:00
Robert Pluim
db237850ab Remove Motif support
* configure.ac: Remove support for configuring --with-x-toolkit=motif

* etc/NEWS: Mention removal of Motif support.
2021-02-12 14:47:13 +01:00
Paul Eggert
9143eba0c6 Prepare for update from Gnulib
* configure.ac: Also create lib/malloc and lib/deps/malloc
if the dynarray module is in use, as Gnulib regex will
start needing it due to recent glibc changes.
2021-01-22 12:02:54 -08:00
Robert Pluim
ef55cc07ba * configure.ac: Alphabetize emacs_config_features 2021-01-11 13:20:04 +01:00
Robert Pluim
62e3750af3 Ensure HAVE_GMP is reflected in emacs_config_features
* configure.ac: Move HAVE_GMP setting before emacs_config_features
setting (Bug#45771).
2021-01-11 13:11:51 +01:00
Paul Eggert
fa574e68de Fix broken build on AIX 7.2
Without this fix, the build on AIX 7.2 with xlc fails in the ‘CCLD
temacs’ step with the diagnostic ‘ld: 0711-317 ERROR: Undefined
symbol: BC’.  This is because -lcurses does not define BC etc.
* configure.ac: When building terminfo.o, define
TERMINFO_DEFINES_BC if the library defines BC etc.
* src/terminfo.c (UP, BC, PC): Define depending on
TERMINFO_DEFINES_BC, not on TERMINFO.

(cherry picked from commit 632917461a)
2021-01-04 09:02:40 -08:00
Glenn Morris
1395fb8ff7 Merge from origin/emacs-27
2e09efdb68 Revert previous patch which was installed into wrong branch.
2021-01-04 07:50:25 -08:00
Paul Eggert
632917461a Fix broken build on AIX 7.2
Without this fix, the build on AIX 7.2 with xlc fails in the ‘CCLD
temacs’ step with the diagnostic ‘ld: 0711-317 ERROR: Undefined
symbol: BC’.  This is because -lcurses does not define BC etc.
* configure.ac: When building terminfo.o, define
TERMINFO_DEFINES_BC if the library defines BC etc.
* src/terminfo.c (UP, BC, PC): Define depending on
TERMINFO_DEFINES_BC, not on TERMINFO.
2021-01-03 11:59:50 -08:00
Paul Eggert
2e09efdb68 Revert previous patch which was installed into wrong branch. 2021-01-03 11:58:34 -08:00
Paul Eggert
585997d05a Fix broken build on AIX 7.2
Without this fix, the build on AIX 7.2 with xlc fails in the ‘CCLD
temacs’ step with the diagnostic ‘ld: 0711-317 ERROR: Undefined
symbol: BC’.  This is because -lcurses does not define BC etc.
* configure.ac: When building terminfo.o, define
TERMINFO_DEFINES_BC if the library defines BC etc.
* src/terminfo.c (UP, BC, PC): Define depending on
TERMINFO_DEFINES_BC, not on TERMINFO.
2021-01-03 11:51:57 -08:00
Alan Third
107978365e Improve drawing performance on macOS
* configure.ac: Require IOSurface framework.
* src/nsterm.h: New EmacsSurface class and update EmacsView
definitions.
* src/nsterm.m (ns_update_end):
(ns_unfocus): Use new unfocusDrawingBuffer method.
(ns_draw_window_cursor): Move ns_focus to before we set colors.
([EmacsView dealloc]):
([EmacsView viewDidResize:]): Handle new EmacsSurface class.
([EmacsView initFrameFromEmacs:]): Remove reference to old method.
([EmacsView createDrawingBuffer]): Remove method.
([EmacsView focusOnDrawingBuffer]):
([EmacsView windowDidChangeBackingProperties:]): Use new EmacsSurface
class.
([EmacsView unfocusDrawingBuffer]): New method.
([EmacsView copyRect:to:]): Get information from the context instead
of direct from the IOSurface.
([EmacsView updateLayer]): Use new EmacsSurface class.
([EmacsView copyRect:to:]): Use memcpy to copy bits around instead of
using NS image functions.
([EmacsSurface initWithSize:ColorSpace:]):
([EmacsSurface dealloc]):
([EmacsSurface getSize]):
([EmacsSurface getContext]):
([EmacsSurface releaseContext]):
([EmacsSurface getSurface]):
([EmacsSurface copyContentsTo:]): New class and methods.
2021-01-01 22:41:26 +00:00
Paul Eggert
9076a631fe Port to Solaris 10
* configure.ac: Instead of AC_CHECK_HEADER, use AC_COMPILE_IFELSE
with X11/Intrinsic.h when checking for X11/extensions/Xrender.h.
This suppresses a bogus "report a bug to bug-gnu-emacs" diagnostic
from 'configure' in Solaris 10.
(SETUP_SLAVE_PTY): Adjust to recent renaming of forkin to
std_in in callproc.c.  Needed on Solaris and Unixware.
* lib-src/Makefile.in (LIB_GETRANDOM, LIBS_ETAGS): New vars,
needed because on Solaris 10 the Gnulib tempname module now needs
the -lrt library for clock_gettime.  Throw in the LIB_GETRANDOM
stuff too while we’re at it; from getrandom.m4 it seems to be
needed for MingW.
(LIBS_MOVE, etags_libs): Use them.
* src/callproc.c [SETUP_SLAVE_PTY]: Include sys/stream.h
and sys/stropts.h, for SETUP_SLAVE_PTY’s definiens.
* src/process.c [NEED_BSDTTY]: Don’t include bsdtty.h; hasn’t been
needed in years.
[USG5_4]: Don’t include sys/stream.h or sys/stropts.h; these
directives havbe been moved to callproc.c because the only use of
SETUP_SLAVE_PTY is there now.
2021-01-01 12:58:17 -08:00
Paul Eggert
50f3949119 Merge from origin/emacs-27
33d159c36f Fix copyright years by hand
2021-01-01 01:28:16 -08:00
Paul Eggert
ba05d005e5 Update copyright year to 2021
Run "TZ=UTC0 admin/update-copyright".
2021-01-01 01:13:56 -08:00
Paul Eggert
33d159c36f Fix copyright years by hand
These are dates that admin/update-copyright did not update.
2021-01-01 00:33:28 -08:00
Paul Eggert
8c1fe1e5ef Update copyright year to 2021
Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
2021-01-01 00:32:32 -08:00
Paul Eggert
60bfa84e41 Fix issues with lib/malloc out-of-dir builds
Problem reported by Mattias Engdegård in:
https://lists.gnu.org/r/emacs-devel/2020-12/msg01626.html
* configure.ac: If the scratch_buffer module is enabled, create
lib/malloc and (if doing dependencies) lib/deps/malloc.
* lib/Makefile.in (DEPFLAGS) [AUTO_DEPEND]: No longer any need to
squash lib dependencies into a single directory.
(clean): Also remove */*.o and $(DEPDIR)/*/*.d, to clean out
malloc/*.o and deps/malloc/*.d.  Just remove *.d files in
dependencies so that rm does not complain about not being able to
remove deps/malloc.
(extraclean): Also remove malloc, if it is empty.
2020-12-25 19:17:04 -08:00
Lars Ingebrigtsen
5d46593568 Support build of Emacs on ARM Macos machines
* configure.ac: Add support for aarch64-* on Macos (i.e., 64-bit
ARM) (bug#43369).
2020-12-23 17:32:11 +01:00
Eli Zaretskii
37eba74d60 Update files for the 27.1.90 pretest
* README:
* configure.ac:
* nt/README.W32:
* msdos/sed2v2.inp: Bump Emacs version to 27.1.90.
* lisp/ldefs-boot.el: Update from loaddefs.el
2020-12-18 10:13:53 -05:00
Robert Pluim
56a7c73f9c Emit required version when Harfbuzz is not found but Cairo is
* configure.ac: Define harfbuzz_required_ver with required
harfbuzz version, and put it in the warning message emitted when
Cairo is found but not HarfBuzz.
2020-11-12 16:52:23 +01:00
Shohei YOSHIDA
fef7704feb Fix --with-json message
* configure.ac (WIDE_EMACS_INT): Fix --with-json help message
(bug#43754).
2020-10-02 03:14:31 +02:00
Lars Ingebrigtsen
b40a7056e5 Support build of Emacs on ARM Macos machines
* configure.ac: Add support for aarch64-* on Macos (i.e., 64-bit
ARM) (bug#43369).
2020-09-14 12:34:56 +02:00
Elad Lahav
37c095a23f Fix QNX build
* configure.ac: The __NO_EXT_QNX flag is no longer needed, and is
masking the declaration of memset_s() (bug#43234).
Copyright-paperwork-exempt: yes
2020-09-11 00:01:06 +02:00
Alan Third
4ea928e14f * configure.ac (GNU_OBJC_CFLAGS): Check ObjC defaults to C99. (bug#43167) 2020-09-03 21:56:03 +01:00
Alan Third
72f66f70ee Fix Objective-C C99 build problem
* configure.ac (NS_IMPL_GNUSTEP): GCC appears to need to be told to
use C99 when compiling Objective-C.
2020-08-28 19:47:14 +01:00
leo
3345dc8e15 Allow disabling double buffering at build time
* configure.ac: Allow disabling double buffering (bug#32032).

Copyright-paperwork-exempt: yes
2020-08-26 15:03:08 +02:00
Paul Eggert
df589d3681 Simplify by using Gnulib sigdescr_np module
Inspired by a straightforward patch by Bruno Haible.
* admin/merge-gnulib (GNULIB_MODULES): Add sigdescr_np.
* configure.ac: Do not check for sys_siglist or __sys_siglist.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* lib/sigdescr_np.c, m4/sigdescr_np.m4: New files, copied from Gnulib.
* src/sysdep.c (sys_siglist, sys_siglist_entries): Remove.
(init_signals): Do not initialize sys_siglist.
(safe_strsignal): Use sigdescr_np instead of sys_siglist.
2020-08-23 15:01:51 -07:00
Eli Zaretskii
a1fe15a6ce Don't use -Wsuggest-attribute=malloc by default
* configure.ac: Move -Wsuggest-attribute=malloc to the set used
only under --enable-gcc-warnings.
2020-08-17 19:43:29 +03:00
Roland Kaufmann
4cba236749 Allow build configuration on Apple ARM devices (bug#41994)
* configure.ac: Add arm as a port target for Darwin.

Copyright-paperwork-exempt: yes
2020-08-15 17:06:31 +01:00
Noam Postavsky
43091e6c50 Make configure say so if we have "--with-json" but no jansson support
* configure.ac (OPTION_DEFAULT_IFAVAILABLE): New macro.  Use it to
define the --with-json option.  Add with_json and HAVE_JSON to the
'MISSING' checks (bug#39953).
2020-08-14 19:31:16 +02:00
Sungbin Jo
d089c4fbfc Add xwidget support for macOS
Co-authored-by: Jaesup Kwak <veshboo@gmail.com>

* configure.ac: Allow '--with-xwidgets' for "${NS_IMPL_COCOA}".
* etc/NEWS: Mention new feature.
* etc/TODO: Remove done TODO to implement xwidget in NeXTstep port.
* lisp/xwidget.el (xwidget-webkit-clone-and-split-below)
(xwidget-webkit-clone-and-split-right): New procedures.
(xwidget-webkit-callback): Remove call to
'xwidget-webkit-adjust-size-to-window' as adjusting xwidget size is
handled in 'x_draw_xwidget_glyph_string'.
(xwidget-webkit-enable-plugins): New variable.
* nextstep/templates/Info.plist.in: Add 'NSAppTransportSecurity'.
* src/Makefile.in: Add nsxwidget.o for compilation.
* src/emacs.c (main): Move conditional call to 'syms_of_xwidget'.
* src/nsterm.m (ns_draw_glyph_string): Add case for 'XWIDGET_GLYPH'.
(note_mouse_movement mouseMoved): Make it easy to resize window by
dragging mode-line or vertical separator adjacent to large glyph.
* src/nsxwidget.h src/nsxwidget.m: Newly added files, xwidget webkit
backend for macOS Cocoa.
* src/xwidget.c (Fmake_xwidget, xwidget_init_view)
(x_draw_xwidget_glyph_string, xwidget_is_web_view)
(Fxwidget_webkit_goto_uri, Fxwidget_webkit_zoom, Fxwidget_resize)
(Fxwidget_size_request, Fdelete_xwidget_view, xwidget_end_redisplay)
(kill_buffer_xwidgets): Add macOS Cocoa specific functions and code
with 'NS_IMPL_COCOA' and guard GTK specific functions and code with
'USE_GTK'.
(x_draw_xwidget_glyph_string): Handle adjusting xwidget size.
* src/xwidget.h (xwidget, xwidget_view): Add macOS Cocoa specific
fields with 'NS_IMPL_COCOA' and guard GTK specific fields with
USE_GTK.
2020-08-12 12:12:34 +02:00
Eli Zaretskii
6dada01015 ; Bump Emacs version to 27.1.50
* configure.ac:
* README:
* nt/README.W32:
* msdos/sed2v2.inp:
* etc/NEWS: Bump Emacs version to 27.1.50.
2020-08-11 21:24:16 +03:00
Paul Eggert
155b2c8a8d Simplify Solaris port
This should avoid some configuration confusion as exemplified
by Jeffrey Walton’s recent bug report (Bug#42675).
* configure.ac (opsys): Simplify Solaris configuration by
not worrying about Solaris 9 and earlier, as they are no
longer supported by the Solaris developers.  This should
support Walton’s ‘./configure --build=x86_64-sun-solaris’.
Instead of bothering with ‘opsys=sol2-6’ and ‘opsys=sol2-10’,
just use ‘opsys=solaris’.  All uses changed.
(emacs_check_sunpro_c): Remove unused var.
* doc/misc/tramp.texi (Remote programs):
* etc/MACHINES, etc/PROBLEMS:
Modernize PATH for Oracle Developer Studio.
* etc/PROBLEMS: Move Solaris-related problems to legacy area,
except those that are still relevant.
2020-08-05 17:38:41 -07:00
Paul Eggert
a1436544ff Simplify use of __lsan_ignore_object
* configure.ac: Use AC_CHECK_FUNCS_ONCE for __lsan_ignore_object.
* src/buffer.c, src/data.c, src/emacs-module.c, src/regex-emacs.c:
* src/search.c: Use __lsan_ignore_object unconditionally, and don’t
include sanitizer/lsan_interface.h.
* src/lisp.h (__lsan_ignore_object): Provide a dummy in the
typical case where leak sanitization is not available.
2020-08-03 19:08:58 -07:00
Philipp Stephani
06310cf912 Use a more precise check for '__lsan_ignore_object'
* configure.ac: Add check for __lsan_ignore_object.

* src/buffer.c (enlarge_buffer_text):
* src/data.c (make_blv):
* src/emacs-module.c (Fmodule_load, initialize_environment):
* src/regex-emacs.c (regex_compile):
* src/search.c (newline_cache_on_off): Use new configuration macro.
2020-08-01 17:12:30 +02:00
Philipp Stephani
c3b5355996 Suppress leak detector in some cases
We intentionally leak some objects.  Prevent the ASan leak detector
from raising false alarms in these cases.

* configure.ac: Search for lsan_interface.h header.

* src/data.c (make_blv): Allow leaking of buffer-local values.

* src/buffer.c (enlarge_buffer_text): Allow leaking of buffer text.

* src/emacs-module.c (Fmodule_load, initialize_environment): Allow
intentional leak of runtime and environment objects if module
assertions are enabled.
2020-08-01 14:16:22 +02:00
Nicolas Petton
44888c95b0
Bump Emacs version to 27.1
* README:
* configure.ac:
* msdos/sed2v2.inp:
* nt/README.W32: Bump Emacs version.
2020-07-28 22:27:07 +02:00
Paul Eggert
c8b6006d82 Use Gnulib libgmp module
Instead of doing GMP by hand, use the Gnulib libgmp module.
* .gitignore: Add lib/gmp.h.
* admin/merge-gnulib (GNULIB_MODULES): Add libgmp.
* configure.ac (GMP_LIB, GMP_OBJ): Remove.  Gnulib uses the name
LIB_GMP, so all uses changed.  All uses of GMP_OBJ removed.
(HAVE_GMP): Set this from Gnulib’s variables.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* lib/mini-gmp-gnulib.c, lib/mini-gmp.c, lib/mini-gmp.h, m4/libgmp.m4:
New files, copied from Gnulib.
* src/bignum.h, test/data/emacs-module/mod-test.c:
Include gmp.h unconditionally.
* src/mini-gmp-emacs.c, src/mini-gmp.c, src/mini-gmp.h:
Remove.  This moves these files from src to lib, and
updates them to the current GMP version.
* test/Makefile.in (GMP_H): New macro.
($(test_module)): Use it to decide whether to compile
mini-gmp-gnulib.c too.
2020-07-09 16:38:45 -07:00