1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-24 10:38:38 +00:00
Commit Graph

1739 Commits

Author SHA1 Message Date
Paul Eggert
65788e2e93 Merge from gnulib. 2012-09-29 21:19:32 -07:00
Paul Eggert
89d17fd0f2 Link with LIB_TIMER_TIME as needed. 2012-09-27 16:02:23 -07:00
Paul Eggert
a615a3aeef Check more robustly for timer_settime.
This should fix an OS X build problem reported by Ivan Andrus in
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00671.html>.
* admin/merge-gnulib (GNULIB_MODULES): Add timer-time.
* configure.ac (gl_THREADLIB): Define to empty, since Emacs
does threads its own way.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* m4/timer_time.m4: New file, from gnulib.
* src/atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
call timer_settime.
2012-09-26 18:06:23 -07:00
Paul Eggert
c462dda8c8 * Makefile.in (bootstrap): Set MAKEFILE_NAME when building Makefile,
to avoid problems with recursion when using GNU make.
2012-09-23 02:18:24 -07:00
Paul Eggert
bbe099e709 * Makefile.in (bootstrap): Simplify build procedure.
Suggested by Wolfgang Jenker in
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00456.html>.
2012-09-22 03:59:13 -07:00
Paul Eggert
e41c05e55d Merge from gnulib. 2012-09-22 02:46:20 -07:00
Tassilo Horn
db8a5a189e New feature: set optimal slice from BoundingBox information.
* doc-view.el (doc-view-mode-map): Add keybinding.
(doc-view-menu): Add menu entry.
(doc-view-set-slice): Adapt docstring.
(doc-view-get-bounding-box, doc-view-guess-paper-size)
(doc-view-scale-bounding-box)
(doc-view-set-slice-from-bounding-box): New functions.
(doc-view-paper-sizes): New defvar.

* doc/emacs/misc.texi (DocView Slicing): Document new slice from
BoundingBox feature.
2012-09-19 19:35:18 +02:00
Jan Djärv
5fb91e7197 * configure.ac (HAVE_GTK): Mention if we use GTK2 or GTK3. 2012-09-18 20:13:01 +02:00
Andreas Schwab
d3612ac370 * Makefile.in (bootstrap): Revert last change. Run config.status
after config.status --recheck, run configure from $(srcdir).
(config.status): Run configure from $(srcdir).
2012-09-18 00:43:12 +02:00
Paul Eggert
dee26dfa11 * Makefile.in: Run autogen/copy_autogen if autogen.sh fails,
to create 'configure'; problem reported by Andreas Schwab in
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00438.html>.
* autogen.sh: Exit with status 1 when failing due to missing tools,
reverting the 2012-09-10 change to this file.
* autogen/copy_autogen: Fail if one of the subsidiary actions fail.
Use 'cp -f' for the build-aux files, since the destinations are
typically read-only.
2012-09-17 15:35:28 -07:00
Paul Eggert
50bfc8243c * Makefile.in: Fix build error on FreeBSD.
($(MAKEFILE_NAME)): Pass MAKE='$(MAKE)' to config.status's env.
Suggested by Wolfgang Jenker in
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00430.html>.
(MAKE_CONFIG_STATUS): Remove.  Remaining use expanded.
This undoes part of the 2012-09-10 patch.
(bootstrap): Run ./configure, rather than trying to run config.status
if it exists.  That builds src/epaths.h more reliably.
2012-09-17 14:33:14 -07:00
Paul Eggert
eeceac9312 Remove no-longer-needed Solaris 2.4 vfork bug workaround.
The workaround was for improving performance on Solaris 2.4, but
is getting in the way now.  Emacs will still work if someone is
still running Solaris 2.4 in a museum somewhere; Sun dropped
support for Solaris 2.4 in 2003.
* configure.ac (ac_cv_func_vfork_works): Default to 'no' on
Solaris 2.4, so that AC_FUNC_VFORK doesn't think vfork works.
* src/callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
* src/process.c (create_process) [HAVE_WORKING_VFORK]:
Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
since Emacs no longer uses vfork on that platform.
2012-09-16 18:02:11 -07:00
Glenn Morris
78f83752f5 Reduce the number of versioned files storing the short copyright string
* configure.ac (copyright): New output variable.
(COPYRIGHT): New AC_DEFINE.

* admin/admin.el (set-copyright): No more need to set copyrights for
nextstep, or .c files.  Add configure.ac and config.nt.

* lib-src/ebrowse.c (version):
* lib-src/etags.c (print_version): Use COPYRIGHT.

* nextstep/templates/Info-gnustep.plist.in:
* nextstep/templates/InfoPlist.strings.in:
* nextstep/templates/Info.plist.in: Let configure set copyright.

* nt/config.nt (COPYRIGHT): New.

* src/emacs.c: Use COPYRIGHT.
2012-09-16 17:56:08 -07:00
Paul Eggert
0caaedb1c3 Remove configure's --without-sync-input option.
When auditing signal-handling in preparation for cleaning it up,
I found that SYNC_INPUT has race conditions and would be a real
pain to fix.  Since it's an undocumented and deprecated
configure-time option, now seems like a good time to remove it.
Also see <http://bugs.gnu.org/11080#16>.
* configure.ac (SYNC_INPUT, BROKEN_SA_RESTART): Remove.
* admin/CPP-DEFINES (BROKEN_SA_RESTART, SA_RESTART): Remove.
* etc/TODO (Make SYNC_INPUT the default): Remove, as the code now
behaves as if SYNC_INPUT is always true.
* src/alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
(_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
(alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
(malloc_hysteresis):
(check_depth) [XMALLOC_OVERRUN_CHECK]:
(MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
(__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
(dont_register_blocks, bytes_used_when_reconsidered)
(bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
(emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
[!SYSTEM_MALLOC && !SYNC_INPUT]:
Remove. All uses removed.
(MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
implementation, one that depends on whether the new macro
XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
is defined.
* src/atimer.c (run_timers, handle_alarm_signal):
* src/keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
(handle_async_input, process_pending_signals)
(handle_input_available_signal, init_keyboard):
* src/nsterm.m (ns_read_socket):
* src/process.c (wait_reading_process_output):
* src/regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
* src/sysdep.c (emacs_sigaction_init) [SA_RESTART]:
(emacs_write):
* src/xterm.c (XTread_socket):
Assume SYNC_INPUT.
* src/conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
* src/eval.c (handling_signal): Remove.  All uses removed.
* src/lisp.h (ELSE_PENDING_SIGNALS): Remove.
All uses replaced with the SYNC_INPUT version.
(reset_malloc_hooks, uninterrupt_malloc, handling_signal):
Remove decls.
* src/sysdep.c, src/syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
Now static.

Fixes: debbugs:12450
2012-09-16 14:43:55 -07:00
Glenn Morris
92f7c6f1a3 Add missing nextstep file from previous change. 2012-09-16 11:51:39 -07:00
Glenn Morris
83da1b5565 Increase compartmentalization of Nextstep builds rules,
and store Emacs version number in fewer versioned files.

* configure.ac (ns_appsrc): Use relative names.
(ns_frag): Remove.
(Info-gnustep.plist, Emacs.desktop, Info.plist, InfoPlist.strings)
(nextstep/Makefile): Generate these nextstep files.
(SUBDIR_MAKEFILES): Add nextstep.

* Makefile.in (clean, distclean, bootstrap-clean): Add nextstep.

* make-dist (nextstep/templates): Add directory.
(nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj): Remove.
(nextstep/Cocoa/Emacs.base/Contents)
(nextstep/GNUstep/Emacs.base/Resources): Update contents.

* .bzrignore: Add some nextstep files.

* admin/admin.el (set-version): No more need to set nextstep versions.
(set-copyright): Update for moved nextstep files.

* nextstep/Makefile.in: New file.
* nextstep/templates: New directory.
* nextstep/templates/Emacs.desktop.in, nextstep/templates/Info-gnustep.plist.in:
* nextstep/templates/Info.plist.in, nextstep/templates/InfoPlist.strings.in:
Move here from various Cocoa/, GNUstep/ locations.
Let configure set the version number.
* nextstep/Cocoa/Emacs.base/Contents/Info.plist:
* nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings:
* nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist:
* nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop: Move to templates/.
* nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj: Remove directory.

* src/Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
(ns_frag): Remove.
(ns-app): Move here from ns.mk, and simplify.
(clean): Simplify nextstep entry.
* src/ns.mk: Remove file.
2012-09-16 11:49:00 -07:00
Paul Eggert
0328b6de4a Port better to POSIX hosts lacking _setjmp.
* configure.ac (HAVE__SETJMP, HAVE_SIGSETJMP): New symbols.
(_setjmp, _longjmp): Remove.
* src/lisp.h: Include <setjmp.h> here, since we use its symbols here.
All instances of '#include <setjmp.h>' removed, if the
only reason for the instance was because "lisp.h" was included.
(sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
and _longjmp with the new symbols.  Emacs already uses _setjmp if
available, so this change affects only POSIXish hosts that have
sigsetjmp but not _setjmp, such as some versions of Solaris and
Unixware.  (Also, POSIX-2008 marks _setjmp as obsolescent.)
* src/image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
(png_load_body) [HAVE_PNG]:
(PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
(PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
since PNG requires jmp_buf.  This is the only exception to the
general rule that we now use sys_setjmp and sys_longjmp.
This exception is OK since this code does not change the signal
mask or longjmp out of a signal handler.

Fixes: debbugs:12446
2012-09-15 00:06:56 -07:00
Paul Eggert
2af0342954 Fix glitches with 'configure --without-sync-input'.
* configure.ac (--without-sync-input): Fix typo in usage message.
* alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
Include "syssignal.h", for 'main_thread'.
2012-09-14 15:01:19 -07:00
Paul Eggert
e3141fcf84 * configure.ac: Port to hosts lacking gtk.
(PKG_CHECK_MODULES): Capture pkg-config diagnostics
better, in particular, problems in invoking pkg-config itself.
This is useful on hosts that don't have pkg-config.
(GTK_MODULES): Do not exit 'configure' simply because gtk3
and gtk2 are both missing.  Problem found on Solaris 8.
2012-09-14 11:56:19 -07:00
Jan Djärv
4d0b77fc57 * configure.ac: Report Gtk+ 3 as GTK. 2012-09-13 14:02:00 +02:00
Jan Djärv
2c484e7585 * configure.ac: Reorder Xaw3d messages. 2012-09-13 08:27:21 +02:00
Paul Eggert
4a4bbad214 Simplify SIGIO usage.
The code that dealt with SIGIO was crufty and confusing, e.g., it
played tricks like "#undef SIGIO" but these tricks were not used
consistently.  Simplify mostly by not #undeffing standard symbols,
e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
or not as we please) rather than "defined SIGIO" (standard symbol
that we probably shouldn't #undef).
* configure.ac (NO_TERMIO, BROKEN_FIONREAD, BROKEN_SIGAIO)
(BROKEN_SIGPOLL, BROKEN_SIGPTY): Remove.
(USABLE_FIONREAD, USABLE_SIGIO): New symbols.  All uses of
'defined SIGIO' replaced with 'defined USABLE_SIGIO', with no need
to #undef SIGIO now (which was error-prone).  Likewise, all uses
of 'defined FIONREAD' replaced with 'defined USABLE_FIONREAD'.
* src/admin/CPP_DEFINES (BROKEN_SIGAIO, BROKEN_SIGIO, BROKEN_SIGPOLL)
(BROKEN_SIGPTY, NO_TERMIO): Remove.
* src/conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
Modules that need it can include it.
[USG5_4 && emacs]: Likewise, do not include the streams stuff here.
* src/dispextern.h (ignore_sigio): New decl.
* src/emacs.c (shut_down_emacs): Invoke unrequest_sigio
unconditionally, since it's now a no-op if !USABLE_SIGIO.
* src/emacs.c (shut_down_emacs):
* src/keyboard.c (kbd_buffer_store_event_hold):
Use ignore_sigio rather than invoking 'signal' directly.
* src/keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
for FIONREAD.
(FIONREAD, SIGIO): Do not #undef.
(tty_read_avail_input): Use #error rather than a syntax error.
* src/process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
for I_PIPE, used by SETUP_SLAVE_PTY.
(DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
* src/sysdep.c (croak): Remove; no longer needed.  This bit of
temporary code, with Fred N. Fish's comment that it's temporary,
has been in Emacs since at least 1992!
(init_sigio, reset_sigio, request_sigio, unrequest_sigio):
Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
* src/syssignal.h (croak): Remove decl.
(SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
* src/systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
now that we're termios-only.
(FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
* src/term.c (dissociate_if_controlling_tty): Use #error rather than
a run-time error.

Fixes: debbugs:12408
2012-09-12 19:21:28 -07:00
Jan Djärv
d673aedc2f * configure.ac: No --with-x-toolkit given: Try gtk3 toolkit first
and then gtk2 if not found.
--with-x-toolkit=gtk|yes: As above, but fail if gtk2 or gt3 not found.
--with-x-toolkit=gtk2: Only try gtk2, fail if not found.
--with-x-toolkit=gtk3: Only try gtk3, fail if not found.
2012-09-12 22:21:39 +02:00
Glenn Morris
9d9edd4bae Be more explicit about some Makefile dependencies
* Makefile.in (install-arch-dep, install-arch-indep, install-doc):
Be more explicit about dependencies, for parallel `make install'.

It is not so unreasonable to run `make -j# install' from a clean state
for a self-contained NS build, where the "installation" happens within
the build tree.
2012-09-11 00:45:38 -07:00
Paul Eggert
c990426a98 Simplify, document, and port floating-point.
The porting part of this patch fixes bugs on non-IEEE platforms
with frexp, ldexp, logb.
* admin/CPP-DEFINES (HAVE_CBRT, HAVE_LOGB, logb): Remove.
* configure.ac (logb, cbrt): Do not check for these functions,
as they are not being used.
* doc/lispref/numbers.texi (Float Basics, Arithmetic Operations, Math Functions):
Document that / and mod (with floating point arguments), along
with asin, acos, log, log10, expt and sqrt, return special values
instead of signaling exceptions.
(Float Basics): Document that logb operates on the absolute value
of its argument.
(Math Functions): Document that (log ARG BASE) also returns NaN if
BASE is negative.  Document that (expt X Y) returns NaN if X is a
finite negative number and Y a finite non-integer.
* etc/NEWS: Document NaNs versus signaling-error change.
* src/data.c, src/lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
Now static.
* src/floatfns.c: Simplify discussion of functions that Emacs doesn't
support, by removing commented-out code and briefly listing the
C89 functions excluded.  The commented-out stuff was confusing
maintenance, e.g., we thought we needed cbrt but it was commented out.
(logb): Remove decl; no longer needed.
(isfinite): New macro, if not already supplied.
(isnan): Don't replace any existing macro.
(Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
are present on all C89 platforms.
(Ffrexp): Do not special-case zero, as frexp does the right thing
for that case.
(Flogb): Do not use logb, as it doesn't have the desired meaning
on hosts that use non-base-2 floating point.  Instead, stick with
frexp, which is C89 anyway.  Do not pass an infinity or a NaN to
frexp, to avoid getting an unspecified result.
2012-09-10 19:28:27 -07:00
Paul Eggert
b8b0239fd0 Improve robustness of 'make bootstrap'.
Run autogen.sh after bootstrap-clean, to avoid bzr pull issues.
* INSTALL, README: Document autogen.sh.
* Makefile.in (Makefile): Mark it as precious, since it's updated
atomically.
(MAKE_CONFIG_STATUS): New macro.
(config.status, bootstrap): Use it.  This causes 'make bootstrap'
to run config.status with the --recheck option, which is more
appropriate for a bootstrap.
(bootstrap): Run autogen.sh right after cleaning.  Don't worry
about failures due to missing tools.
* autogen.sh: Exit with status 101 when failing due to missing tools.
* make-dist: Distribute autogen.sh.

Fixes: debbugs:12376
2012-09-09 18:03:27 -07:00
Paul Eggert
f6196b87e1 Assume C89 or later for math functions.
This simplifies the code, and makes it a bit smaller and faster,
and (most important) makes it easier to clean up signal handling
since we can stop worring about floating-point exceptions in
library code.  That was a problem before C89, but the problem
went away many years ago on all practical Emacs targets.
* configure.ac (frexp, fmod): Remove checks for these functions,
as we now assume them.
(FLOAT_CHECK_DOMAIN, HAVE_INVERSE_HYPERBOLIC, NO_MATHERR)
(HAVE_EXCEPTION):
Remove; no longer needed.
* admin/CPP-DEFINES (HAVE_FMOD, HAVE_FREXP, FLOAT_CHECK_DOMAIN)
(HAVE_INVERSE_HYPERBOLIC, NO_MATHERR): Remove.
* src/data.c, src/image.c, src/lread.c, src/print.c:
Don't include <math.h>; no longer needed.
* src/data.c, src/floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
might be autoconfigured, as that never happens.
* src/data.c (fmod):
* src/doprnt.c (DBL_MAX_10_EXP):
* src/print.c (DBL_DIG):
Remove.  C89 or later always defines these.
* src/floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
(in_float, float_error_arg, float_error_arg2, float_error_fn_name)
(arith_error, domain_error, domain_error2):
Remove all this pre-C89 cruft.  Do not include <errno.h> as that's
no longer needed -- we simply return what C returns.  All uses removed.
(IN_FLOAT, IN_FLOAT2): Remove.  All uses replaced with
the wrapped code.
(FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
Remove.  All uses expanded, as these macros are no longer used
more than once and are now more trouble than they're worth.
(Ftan): Use tan, not sin / cos.
(Flogb): Assume C89 frexp.
(fmod_float): Assume C89 fmod.
(matherr) [HAVE_MATHERR]: Remove; no longer needed.
(init_floatfns): Remove.  All uses removed.
2012-09-09 09:06:33 -07:00
Paul Eggert
1a4f1e9b48 More signal-handler cleanup.
* configure.ac (FLOAT_CHECK_DOMAIN): Comment fix (Bug#12327).
* src/floatfns.c: Comment fix.
* src/lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
and anyway the declaration is harmless even if SIGDANGER is not defined.
* src/syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
defined BROKEN_FIONREAD).  systty.h formerly did this, but other
source files not surprisingly expected syssignal.h to define, or
not define, SIGIO, and it's cleaner to do it that way, for consistency.
Include <sys/ioctl.h>, for FIONREAD.
* src/systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
This eliminates a problem whereby other files mysteriously had
to include "syssignal.h" before including "systty.h" if they
wanted to use "#ifdef SIGIO".
2012-09-07 01:46:44 -07:00
Paul Eggert
2fe282993c Signal-handler cleanup.
Emacs's signal handlers were written in the old 4.2BSD style with
sigblock and sigmask and so forth, and this led to some
inefficiencies and confusion.  Rewrite these to use
pthread_sigmask etc. without copying signal sets around.  Also,
get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
'signal', and instead use functions that do not attempt to take
over the system name space.  This patch causes Emacs's text
segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
* configure.ac (PTY_OPEN, PTY_TTY_NAME_SPRINTF):
Adjust to syssignal.h changes.
(SIGNAL_H_AB): Remove; no longer needed.
* src/alloc.c, src/emacsgtkfixed.c, src/nsfns.m, src/widget.c, src/xmenu.c:
Do not include <signal.h> or "syssignal.h", as these
modules do not use signals.
* src/atimer.c, src/callproc.c, src/data.c, src/dispnew.c, src/emacs.c:
* src/floatfns.c, src/gtkutil.c, src/keyboard.c, src/process.c, src/sound.c:
* src/sysdep.c, src/term.c, src/xterm.c:
Do not include <signal.h>, as "syssignal.h" does that for us now.
* src/atimer.c (sigmask_atimers): New function.
(block_atimers, unblock_atimers): New functions,
replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
All uses replaced.
* src/conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
no longer needed here.
* src/emacs.c (main): Inspect existing signal handler with sigaction,
so that there's	no need to block and unblock SIGHUP.
* src/sysdep.c (struct save_signal): New member 'action', replacing
old member 'handler'.
(save_signal_handlers, restore_signal_handlers):
Use sigaction instead of 'signal' to save and restore.
(get_set_sighandler, set_sighandler) [!WINDOWSNT]:
New function.  All users of 'signal' modified to use set_sighandler
if they're writeonly, and to use sys_signal if they're read+write.
(emacs_sigaction_init, forwarded_signal): New functions.
(sys_signal): Remove.  All uses replaced by calls to sigaction
and emacs_sigaction_init, or by direct calls to 'signal'.
(sys_sigmask) [!__GNUC__]: Remove; no longer needed.
(sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
all uses replaced by pthread_sigmask etc. calls.
* src/syssignal.h: Include <signal.h>.
(emacs_sigaction_init, forwarded_signal): New decls.
(SIGMASKTYPE): Remove.  All uses replaced by its definiens, sigset_t.
(SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
(sigmask, sys_sigmask): Remove; no longer needed.
(sigpause): Remove.  All uses replaced by its definiens, sigsuspend.
(sigblock, sigunblock, sigfree):
(sigsetmask) [!defined sigsetmask]:
Remove.  All uses replaced by pthread_sigmask.
(signal): Remove.  Its remaining uses (with SIG_DFL and SIG_IGN)
no longer need to be replaced, and its typical old uses
are now done via emacs_sigaction_init and sigaction.
(sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
(sys_sigdel): Remove; unused.
(NSIG): Remove a FIXME; the code's fine.  Remove an unnecessary ifdef.

Fixes: debbugs:12327
2012-09-06 18:27:44 -07:00
Paul Eggert
1088b9226e Simplify redefinition of 'abort' (Bug#12316).
Do not try to redefine the 'abort' function.  Instead, redo
the code so that it calls 'emacs_abort' rather than 'abort'.
This removes the need for the NO_ABORT configure-time macro
and makes it easier to change the abort code to do a backtrace.
* configure.ac (NO_ABRT): Remove.
* admin/CPP-DEFINES (NO_ABORT): Remove.
* nt/inc/ms-w32.h (w32_abort) [HAVE_NTGUI]: Remove.
* src/.gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
* src/emacs.c (abort) [!DOS_NT && !NO_ABORT]:
Remove; sysdep.c's emacs_abort now takes its place.
* src/lisp.h (emacs_abort): New decl.  All calls from Emacs code to
'abort' changed to use 'emacs_abort'.
* src/msdos.c (dos_abort) [defined abort]: Remove; not used.
(abort) [!defined abort]: Rename to ...
(emacs_abort): ... new name.
* src/sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
the place of the old 'abort' in emacs.c.
* src/w32.c, src/w32fns.c (abort): Do not #undef.
* src/w32.c (emacs_abort): Rename from w32_abort.
2012-09-04 10:34:54 -07:00
Paul Eggert
7b6c362efe * configure.ac (_setjmp, _longjmp): Check by compiling
instead of by guessing.  The guesses were wrong for
recent versions of Solaris, such as Solaris 11.
2012-09-03 23:25:44 -07:00
Paul Eggert
79a7bafe62 * configure.ac (WARN_CFLAGS): Omit -Wjump-misses-init.
It generates false alarms in doc.c, regex.c, xdisp.c.  See
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00040.html>.
2012-09-03 12:34:49 -07:00
Paul Eggert
7f50777729 Merge from gnulib.
This incorporates:
2012-08-29 stdbool: be more compatible with mixed C/C++ compiles
2011-11-30 manywarnings: update the list of "all" warnings
2012-09-03 02:26:56 -07:00
Jan Djärv
f278d339c9 * configure.ac (HAVE_GOBJECT): Check for gobject-2.0.
Fixes: debbugs:12332
2012-09-02 13:13:24 +02:00
Paul Eggert
2d3800d2cf * configure.ac (_FORTIFY_SOURCE): Define only when optimizing.
This ports to glibc 2.15 or later, when configured with
--enable-gcc-warnings.  See Eric Blake in
<http://lists.gnu.org/archive/html/bug-grep/2012-09/msg00000.html>.
2012-09-01 11:54:38 -07:00
Daniel Colascione
17a2cbbd76 Refactor window-system configuration
This change streamlines the window system selection code in
configure.in and moves many common function declarations from
window-specific headers to frame.h.  It introduces a new TERM_HEADER
macro in config.h: we set this macro to the right header to use for
the window system for which we're compiling Emacs and have source
files include it indirectly.  This way, we don't have to teach every
file about every window system.
2012-08-31 22:38:52 -08:00
Paul Eggert
6e8aca60a8 * configure.ac (CFLAGS): Prefer -g3 to -g if -g3 works
and if the user has not specified CFLAGS.  -g3 simplifies
debugging, since it makes macros visible to the debugger.
2012-08-25 21:37:40 -07:00
Juanma Barranquero
f06029796a lib/makefile.w32-in ($(BLD)/execinfo.$(O)): Update dependencies. 2012-08-25 12:04:17 +02:00
Eli Zaretskii
391ceac53a MS-Windows adaptations for 2012-08-25T04:04:08Z!eggert@cs.ucla.edu and 2012-08-25T04:27:32Z!eggert@cs.ucla.edu.
lib/makefile.w32-in ($(BLD)/execinfo.$(O), execinfo.h): New targets.
 (GNULIBOBJS): Add $(BLD)/execinfo.$(O).
 src/makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
2012-08-25 08:55:32 +03:00
Paul Eggert
f4a681b077 On assertion failure, print backtrace if available.
Merge from gnulib, incorporating:
2012-08-24 execinfo: port to FreeBSD
2012-08-22 execinfo: new module
* admin/merge-gnulib (GNULIB_MODULES): Add execinfo.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/execinfo.c, lib/execinfo.in.h, m4/execinfo.m4: New files.
* src/alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
(die) [ENABLE_CHECKING]: Print a backtrace if available.
* src/Makefile.in (LIB_EXECINFO): New macro.
(LIBES): Use it.
2012-08-24 21:04:08 -07:00
Glenn Morris
5af9cb6be0 Add option to not create bin/emacs link to bin/emacs-VERSION
* Makefile.in (install-arch-dep): If NO_BIN_LINK is non-null,
do not create the bin/emacs link. 

* etc/NEWS: Mention this.

Fixes: debbugs:12011
2012-08-21 23:55:44 -07:00
Paul Eggert
01b13eb7fa Merge from gnulib. 2012-08-21 07:37:56 -07:00
Glenn Morris
9aa0092cdd Use symlink in installed bin/ directory, where supported
* configure.ac (AC_PROG_LN_S): Test for ln.

* Makefile.in (LN_S): New, set by configure.
(install-arch-dep): Use $LN_S.
2012-08-20 18:12:35 -04:00
Paul Eggert
562d4436bc Merge from gnulib.
2012-08-19 ignore-value, stat-time, timespec: omit AC_C_INLINE
2012-08-19 mktime, sys_select: avoid 'static inline'
2012-08-19 gnulib-tool: Fix indentation.
2012-08-19 16:31:24 -07:00
Paul Eggert
51e6d6b2f5 * lib/sigprocmask.c, m4/signalblocking.m4: Remove.
These files have been unused since the 2012-06-22 patch that
introduced high-resolution time stamps.
2012-08-18 14:36:13 -07:00
Jan Beich
1598ef28c1 Fix pty handling on FreeBSD 8.0 (tiny change)
* configure.ac (PTY_OPEN): Try posix_openpt on gnu-linux,
gnu-kfreebsd, freebsd, and netbsd.

Fixes: debbugs:12040
2012-08-17 00:20:10 -07:00
Paul Eggert
76d0e68f8d Merge from gnulib.
This incorporates:
2012-08-05 extern-inline: also ignore -Wmissing-declarations
2012-08-13 20:15:52 -07:00
Juanma Barranquero
5723992258 * lib/makefile.w32-in (STAT_TIME_H): New macro.
(FTOASTR_C, $(BLD)/stat-time.$(O), $(BLD)/timespec.$(O))
($(BLD)/u64.$(O)): Update dependencies.
2012-08-10 23:29:38 +02:00
Glenn Morris
9374581a24 Move DIRECTORY_SEP from lisp.h to config.h
* configure.ac (DIRECTORY_SEP): Move here from src/lisp.h.

* src/lisp.h (DIRECTORY_SEP): Let configure set it.

* nt/config.nt (DIRECTORY_SEP): Move here from src/lisp.h.

* lib-src/movemail.c (DIRECTORY_SEP, IS_DIRECTORY_SEP):
* lib-src/make-docfile.c (DIRECTORY_SEP, IS_DIRECTORY_SEP):
* lib-src/emacsclient.c (DIRECTORY_SEP, IS_DIRECTORY_SEP, IS_DEVICE_SEP):
Remove (they are in config.h now).
2012-08-09 20:02:10 -04:00
Dmitry Antipov
da3d210583 Fix and document recently introduced configuration options.
* configure.ac (--disable-features): Rename to --without-all.
(OPTION_DEFAULT_ON): Change to use with_features.
* INSTALL: Fix description.
* etc/NEWS: Mention --without-all and --enable-link-time-optimization.
2012-08-08 20:17:15 +04:00