1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-31 20:02:42 +00:00
Commit Graph

511 Commits

Author SHA1 Message Date
Paul Eggert
0adc75af18 Give up on -Wsuggest-attribute=const
The attribute doesn't help performance significantly, and the
warning seems to be more trouble than it's worth.  See the thread at:
http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00361.html
* configure.ac (WERROR_CFLAGS): Don't use -Wsuggest-attribute=const.
* lib-src/make-docfile.c (write_globals):
Remove special hack for Fnext_read_file_uses_dialog_p.
* src/decompress.c (Fzlib_available_p):
* src/gnutls.c (Fgnutls_available_p):
* src/gtkutil.h (xg_uses_old_file_dialog):
* src/xdisp.c (Ftool_bar_height):
* src/xmenu.c (popup_activated):
No longer const, since it's not const on at lest some
configurations, and we shouldn't lie to the compiler.
2015-01-15 20:37:44 -08:00
Paul Eggert
b995b4ae8f Default to 'configure --enable-silent-rules'
This greatly shortens the 'make' output, making it more readable
and useful.  For example, on my platform it shortens a
4125-character line "gcc -std=gnu99 -c -Demacs -I. -I. -I../lib
... emacs.c" -- a line so long that it's hard to see what's going
on or where the diagnostics are -- to just "CC emacs.o".
* INSTALL: Document this.
* configure.ac: Add AM_SILENT_RULES([yes]).
(AM_DEFAULT_VERBOSITY): Remove now-unnecessary initialization.
* etc/NEWS: Document this.
Fixes: bug#19501
2015-01-11 01:18:48 -08:00
Paul Eggert
52a4e87c63 Fix copyright years by hand
These are dates that admin/update-copyright did not update, or
updated incorrectly.  Also, back out the copyright-date change to
doc/misc/texinfo.tex, as upstream hasn't updated that date yet.
2015-01-01 14:27:34 -08:00
Paul Eggert
7e09ef09a4 Update copyright year to 2015
Run admin/update-copyright.
2015-01-01 14:26:41 -08:00
Glenn Morris
9875d23d86 * configure.ac: Simplify gnutls tests.
Ref: http://debbugs.gnu.org/19168#21
2014-11-28 19:00:15 -08:00
Dani Moncayo
c9cb3d535b configure.ac [MINGW]: Fix the way of getting the right host platform.
* configure.ac [MINGW]: Fix the way of getting the right host
platform.
2014-11-26 20:59:07 +01:00
Glenn Morris
7dbd10d530 * configure.ac: Fix yesterday's use of uninitialised $version. 2014-11-25 08:43:52 -08:00
Oscar Fuentes
70d7aa8a28 configure.ac [mingw]: Set $canonical default value
... as per the compiler's target.

The value provided by MSYS2 `uname' is not correct when MSYS2 runs on
one architecture (x86_64) and the user is building for another (i686).

	* configure.ac [mingw]: Set $canonical default value as per the
	compiler's target.
2014-11-25 03:29:43 +01:00
Glenn Morris
8df5745cf5 * configure.ac: Relocate some recent changes to a more logical location. 2014-11-24 13:40:02 -05:00
Glenn Morris
409e4c82dc * configure.ac [HAVE_W32]: Generate nt/*.rc files when HAVE_W32. 2014-11-24 09:07:45 -08:00
Glenn Morris
84e2f13cd5 Further reduce number of versioned files storing Emacs version number.
* configure.ac (comma_version, comma_space_version) [mingw32]:
New output variables.
(nt/emacs.rc, nt/emacsclient.rc) [mingw32]: New output files.

* make-dist: Update nt/ for *.rc -> *.rc.in changes.

* nt/emacs.rc.in, nt/emacsclient.rc.in: Rename from nt/emacs.rc, emacsclient.rc.
Let configure generate the real files, and set the version numbers.

* lib-src/Makefile.in (emacsclient.res): Update deps for nt/emacsclient.rc
now being in the build directory, not the source directory.

* nt/Makefile.in (distclean): Delete *.rc.
(emacs.res): Update deps for nt/emacsclient.rc now being in the
build directory, not the source directory.

* admin/admin.el (set-version): No more need to update nt/*.rc.

* admin/authors.el (authors-renamed-files-alist): Add .rc.in files.
2014-11-22 14:07:48 -08:00
Paul Eggert
5caf6c9358 build: port to GCC 4.6.4 + glibc 2.5
On platforms this old, building with _FORTIFY_SOURCE equal to 2
results in duplicate definitions of standard library functions.
Problem reported by Nelson H. F. Beebe.
* configure.ac (_FORTIFY_SOURCE): Sort after GNULIB_PORTCHECK.
By default, do not enable this unless GNULIB_PORTCHECK is defined.
This better matches the original intent, which as I recall was to
enable these extra checks only with --enable-gcc-warnings.
2014-11-14 12:25:11 -08:00
Glenn Morris
be1f31616a Further reduce the number of versioned files storing the version number
* configure.ac (doc/man/emacs.1): Generate it.

* Makefile.in (top_bootclean): Remove doc/man/emacs.1.

* make-dist: Do not distribute doc/man/emacs.1.

* admin/admin.el (set-version): No need to update doc/man/emacs.1.

* doc/man/emacs.1.in: Rename from emacs.1.

* .bzrignore: Add doc/man/emacs.1.
2014-11-09 18:01:56 -08:00
Glenn Morris
4e65e7e2b9 Stop keeping etc/refcards/emacsver.tex in the repository
* configure.ac (etc/refcards/emacsver.tex): Generate it.

* Makefile.in (etc-emacsver): New PHONY rule.
(bootstrap-clean): Delete etc/refcards/emacsver.tex.

* admin/admin.el (set-version): No need to update etc/refcards/emacsver.tex.
(set-copyright): Update etc/refcards/emacsver.tex.in.

* etc/refcards/emacsver.tex.in: Rename from emacsver.tex.

* .bzrignore: Add etc/refcards/emacsver.tex.
2014-11-09 16:57:01 -08:00
Glenn Morris
a16d6f90ee Stop keeping doc/emacs/emacsver.texi in the repository
* configure.ac (doc/emacs/emacsver.texi): Generate it.

* make-dist (doc/emacs/emacsver.texi) [update]: No longer check it.

* doc/emacs/Makefile.in (top_srcdir, version): New, set by configure.
(doc-emacsver): New rule.
(bootstrap-clean, maintainer-clean): Delete emacsver.texi.
(emacsver.texi.in): Rename from emacsver.texi.

* admin/admin.el (set-version): No need to update doc/emacs/emacsver.texi.
(make-manuals-dist-output-variables): Add top_srcdir.
(make-manuals-dist--1): Handle @version@ specially.

* .bzrignore: Add doc/emacs/emacsver.texi.
2014-11-09 16:17:17 -08:00
Glenn Morris
67ac6d6051 * configure.ac: Simplify OS X $canonical tests.
* etc/NEWS: Clarify OS X entries.
2014-10-17 14:05:48 -04:00
Jan Djärv
290569dcce * configure.ac: Move the OSX 10.6 test. 2014-10-15 19:42:05 +02:00
Jan Djärv
980d78b358 * configure.ac: Require OSX >= 10.6 even if --with-ns is not given. 2014-10-14 17:31:44 +02:00
Jan Djärv
3f8c645caa * configure.ac: apple-darwin powerpc is unported. 2014-10-14 07:07:21 +02:00
Glenn Morris
b1d5ab0352 Merge from emacs-24; up to 2014-07-26T11:58:24Z!schwab@linux-m68k.org 2014-10-12 15:56:45 -07:00
Jan Djärv
9a265587d2 Require OSX >= 10.6. Remove PowerPC unexec code.
* configure.ac: Require OSX 10.6.  Remove NSInteger test,
use nsfont for Gnustep, macfont for OSX.

* etc/NEWS: OSX required is 10.6 or newer.

* src/Makefile.in: Replace nsfont.o macfont.o with ns_fontfile in
comment.

* src/macfont.h (MAC_FONT_FORMAT_ATTRIBUTE, MAC_FONT_FORMAT_BITMAP)
(mac_font_copy_non_synthetic_table): Remove versions for OSX < 10.6

* src/nsfns.m: Always include src/macfont.h on COCOA.
(ns_filename_from_panel, ns_directory_from_panel)
(Fx_create_frame, Fns_popup_font_panel, ns_run_file_dialog)
(Fns_read_file_name, Fns_list_services): Remove code for OSX < 10.6

* src/nsterm.m: Always include src/macfont.h on COCOA.
(ns_update_auto_hide_menu_bar, ns_draw_fringe_bitmap)
(ns_dumpglyphs_image, ns_check_menu_open)
(applicationDidFinishLaunching)
(antialiasThresholdDidChange:)
(keyDown:, toggleFullScreen:, setPosition:portion:whole:): Remove
checks for OSX <= 10.5/10.6.
(changeFont:): Use macfont on COCOA, nsfont on GNUSTEP.
(syms_of_nsterm): Call syms_of_macfont on COCOA, syms_of_nsfont on
GNUSTEP.

* src/macfont.m: Remove >= 1050 check.
(macfont_create_family_with_symbol)
(macfont_get_glyph_for_character)
(mac_font_get_glyphs_for_variants)
(mac_ctfont_create_available_families, syms_of_macfont): Remove
code for OSX < 10.6.
(mac_font_family_group, mac_font_family_compare): Remove, only used
for OSX < 10.6.

* src/nsimage.m (allocInitFromFile:): Remove code for OSX < 10.6.

* src/nsmenu.m (NSMenuDidBeginTrackingNotification): Remove.
(x_activate_menubar, trackingNotification:): Remove check for
OSX >= 10.5.
(menuNeedsUpdate:): Remove check for OSX < 10.5.

* src/nsterm.h (MAC_OS_X_VERSION_10_4, MAC_OS_X_VERSION_10_5): Remove.
(NS_HAVE_NSINTEGER): Remove block.
Remove >= OSX 10.6 tests.

* src/unexmacosx.c: Remove include ppc/reloc.h.
(unrelocate, copy_dysymtab): Remove PPC code.
(rebase_reloc_address): Remove, only used for PPC:
2014-10-12 10:35:50 +02:00
Paul Eggert
4c4c5b9121 Fix putenv race conditions with undefined behavior.
Do all putenv calls before Emacs creates any threads.
Use a safer way to modify the TZ environment variable in the
presence of multiple threads.  For further thread-safety,
prefer localtime_r and gmtime_r to localtime and gmtime,
and prefer struct tm's tm_gmtoff (if available) to calling
both localtime_r and gmtime_r.
* configure.ac (LOCALTIME_CACHE): Remove.
We needn't worry about SunOS 4 any more; Sun dropped support in 2003.
All uses of LOCALTIME_CACHE removed.  This simplifies the fix.
(tzalloc): Add check for this function.
* admin/merge-gnulib (GNULIB_MODULES): Add time_r, since Emacs now
calls localtime_r and gmtime_r directly.
* src/dbusbind.c (Fdbus__init_bus): Move xputenv call from here ...
(init_dbusbind): ... to this new function.
* src/emacs.c (main) [HAVE_DBUS]: Call it before creating threads.
* src/xterm.c (x_term_init): Move xputenv call from here ...
(init_xterm): ... to this new function.
* src/emacs.c (main) [USE_GTK]: Call it before creating threads.
* src/editfns.c (HAVE_TM_GMTOFF): Default to false.
(dump_tz_string): New constant.
(init_editfns): Use it.  This centralizes the dump_tz stuff.
Call set_time_zone_rule here, so that its xputenv is done
before Emacs goes multithreaded.
(mktime_z) [!HAVE_TZALLOC]: New function, which is typically
thread-safe enough for Emacs.
(format_time_string, Fdecode_time, Fcurrent_time_string)
(Fcurrent_time_zone):
Prefer localtime_r and gmtime_r, which are more thread-safe, to
localtime and gmtime.  Remove now-unnecessary calls to block_input.
(tm_gmtoff): New static function.
(Fdecode_time, Fcurrent_time_zone): Use it.
(Fencode_time): Use mktime_z, for better thread-safety.
(set_time_zone_rule): Now static.  Rewrite to be mostly thread-safe,
i.e., not quite thread-safe but good enough for Emacs typical usage.
Do not reclaim storage that is in the environment; let it leak.
Always call tzset, since localtime_r does not.
* src/emacs.c (dump_tz, Fdump_emacs) [HAVE_TZSET]: Remove dump_tz stuff.
This is now done in init_editfns.
* src/systime.h (mktime_z, timezone_t, tzalloc, tzfree) [!HAVE_TZALLOC]:
New macros and declarations, for platforms lacking tzalloc & friends.

Fixes: debbugs:8705
2014-10-11 23:09:50 -07:00
Ken Brown
20f02f2768 * configure.ac (LD_SWITCH_SYSTEM_TEMACS) [CYGWIN]: Set stack size to 8 MB. (Bug#18438) 2014-10-11 13:16:12 -04:00
Jan Djärv
971113a869 * configure.ac: Add -Wno-string-plus-int for clang. 2014-10-06 08:21:13 +02:00
Glenn Morris
d311e8d04b * configure.ac: Silence warning with some old Xrandr.h.
Fixes: debbugs:18465
2014-10-04 00:22:51 -07:00
Glenn Morris
79a90058ec Merge from emacs-24; up to 2014-07-16T17:06:12Z!rgm@gnu.org 2014-10-03 08:44:46 -07:00
Paul Eggert
6d5bb00fd1 * configure.ac: Port to strict POSIX shells on non-MinGW.
Fixes: debbugs:18612
2014-10-02 15:29:39 -07:00
Glenn Morris
ef9bcf3b40 Bump version to 24.3.94; regenerate ldefs-boot and AUTHORS 2014-10-01 17:49:14 -07:00
Eli Zaretskii
2b3d968a02 Follow-up to renaming v24.5 to 25.1.
README: Bump version to 25.0.50.
 configure.ac (AC_INIT): Bump version to 25.0.50.

 nt/makefile.w32-in (VERSION): Bump version to 25.0.50.
 nt/emacsclient.rc: Bump version to 25.0.50.
 nt/emacs.rc: Bump version to 25.0.50.
 nt/config.nt (VERSION): Bump version to 25.0.50.

 msdos/sed2v2.inp: Bump version to 25.0.50.

 etc/refcards/ru-refcard.tex: Bump version to 25.0.50.
 etc/refcards/emacsver.tex: Bump version to 25.0.50.

 src/msdos.c (internal_terminal_init): Bump version to 25.

 doc/man/emacs.1: Bump version to 25.0.50.

 doc/emacs/emacsver.texi (EMACSVER): Bump to 20.0.50.
2014-09-29 22:49:44 +03:00
Dmitry Antipov
71a72686e3 Keep stack-allocated Lisp objects fast rather than versatile.
* configure.ac (HAVE_STATEMENT_EXPRESSIONS): Remove.
For USE_STACK_LISP_OBJECTS, we always assume __GNUC__.
* lisp.h (union Aligned_Cons) [!GCALIGNED]: Define as such.
(SCOPED_CONS_INITIALIZER): New macro.
(scoped_cons) [USE_STACK_LISP_OBJECTS]: Use it.
(USE_LOCAL_ALLOCA): Remove.
(local_cons, local_list1, local_list2, local_list3, local_list4):
Remove.  Stack overflow checking makes them too slow.
(make_local_vector): Likewise.  Also we just don't have enough
users for it.
(enum LISP_STRING_OVERHEAD): Remove.
(local_string_init, local_vector_init): Remove prototypes.
(make_local_string, build_local_string): Redesign to target short
compile-time string constants, fall back to regular string allocation
where appropriate.
(lisp_string_size): New function.
(verify_ascii) [ENABLE_CHECKING]: Add prototype.
* alloc.c (local_string_init, local_vector_init): Remove.
(verify_ascii) [ENABLE_CHECKING]: New function.
* buffer.c, charset.c, chartab.c, data.c, editfns.c, emacs.c, fileio.c:
* fns.c, font.c, fontset.c, frame.c, keyboard.c, keymap.c, lread.c:
* menu.c, minibuf.c, process.c, textprop.c, xdisp.c, xfns.c, xfont.c:
* xselect.c, xterm.c: All related users changed.
2014-09-29 10:44:31 +04:00
Ken Brown
bbf5e14b38 * configure.ac [CYGWIN]: Enable sound support. 2014-09-27 19:35:50 -04:00
Paul Eggert
2494447b71 * configure.ac (MAKEINFO): Allow 'makeinfo' to be called 'texi2any'. 2014-09-24 19:59:45 -07:00
Stefan Monnier
9949231fb0 Merge from emacs-24 2014-09-22 15:20:45 -04:00
David Caldwell
63126683db * configure.ac: Increase headerpad_extra to 1000, update the comment
about load commands.

* src/unexmacosx.c (dump_it): Improve error message.

Fixes: debbugs:18505
2014-09-21 22:35:22 +02:00
Glenn Morris
11af46027d Merge from emacs-24; up to 2014-07-09T02:04:12Z!rgm@gnu.org 2014-09-14 17:20:21 -07:00
Eli Zaretskii
e868e853a8 Resurrect sound support on MS-Windows that was lost in transition.
configure.ac (HAVE_SOUND): Check for mmsystem.h header that
 defines the sound stuff on MS-Windows.  (Bug#18463)
2014-09-13 10:10:40 +03:00
Paul Eggert
11e28ab08d Improve the experimental local and scoped allocation.
* configure.ac (HAVE_STRUCT_ATTRIBUTE_ALIGNED)
(HAVE_STATEMENT_EXPRESSIONS): New configure-time checks.
* src/alloc.c (local_string_init, local_vector_init):
New functions, defined if USE_LOCAL_ALLOCATORS.
Mostly, these are moved here from lisp.h, as it's not
clear it's worth making them inline.
* src/lisp.h (USE_STACK_LISP_OBJECTS): Default to false.
(GCALIGNED): Depend on HAVE_STRUCT_ATTRIBUTE_ALIGNED and
USE_STACK_LISP_OBJECTS, not on a laundry list.
(local_string_init, local_vector_init): New decls.
(union Aligned_Cons): New type.
(scoped_cons): Use it.  Give up on the char trick, as it's a too
much of a maintenance hassle; if someone wants this speedup
they'll just need to convince their compiler to align properly.
Conversely, use the speedup if struct Lisp_Cons happens to
be aligned even without a directive.  Better yet, help it along
by using union Aligned_Cons rather than struct Lisp_Cons.
(pointer_valid_for_lisp_object): Remove.  This check is not
necessary, since make_lisp_ptr is already doing it.  All uses removed.
(local_vector_init, local_string_init): Move to alloc.c.
(build_local_vector): Remove this awkward macro, replacing with ...
(make_local_vector): New macro, which acts more like a function.
Use statement expressions and use __COUNTER__ to avoid macro
capture.  Fall back on functions if these features are not supported.
(build_local_string, make_local_string): Likewise.
2014-09-09 23:38:38 -07:00
Paul Eggert
6726de5263 Expand @AM_DEFAULT_VERBOSITY@ even if Automake is old.
* configure.ac: Assume verbose output for older Automake.

Fixes: debbugs:18415
2014-09-07 01:46:42 -07:00
Paul Eggert
315d21d20f * configure.ac (MAKEINFO): Clean up some configuration bitrot.
MAKEINFO is already set before we get here, so no need to call AC_PATH_PROG.
Bypass $am_missing_run.  Simplify version-number checking.
2014-09-03 19:02:46 -07:00
Paul Eggert
1564080f0b Clean up extern decls a bit.
* configure.ac (WERROR_CFLAGS): Don't disable -Wnested-externs.
While we're at it, don't disable -Wlogical-op either.
* src/bytecode.c: Include blockinput.h and keyboard.h rather
than rolling their APIs by hand.
* src/emacs.c: Include regex.h and rely on its and lisp.h's API
rather than rolling them by hand.
* src/lastfile.c: Include lisp.h, to check this file's API.
* src/lisp.h (lisp_eval_depth, my_edata, my_endbss, my_endbss_static):
New decls.
* src/regex.h (re_max_failures): New decl.
* src/unexcw.c, src/unexmacosx.c, src/unexw32.c:
Rely on lisp.h's API rather than rolling it by hand.
* src/vm-limit.c (__after_morecore_hook, __morecore, real_morecore):
Declare at top level, to pacify GCC -Wnested-externs.
2014-08-31 19:37:22 -07:00
Paul Eggert
53d815b09f * configure.ac (__restrict_arr): Remove; no longer used. 2014-08-30 19:50:10 -07:00
Paul Eggert
ced5a8f219 * configure.ac (MAKE): Export it, for config.status.
Needed on AIX when 'configure' infers MAKE=gmake.
2014-08-30 19:34:31 -07:00
Paul Eggert
f9caea8233 Vector-sorting fixes.
It's not safe to call qsort or qsort_r, since they have undefined
behavior if the user-specified predicate is not a total order.
Also, watch out for garbage-collection while sorting vectors.
* admin/merge-gnulib (GNULIB_MODULES): Add vla.
* configure.ac (qsort_r): Remove, as we no longer use qsort-like
functions.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/vla.h, m4/vararrays.m4: New files, copied from gnulib.
* lib/stdlib.in.h, m4/stdlib_h.m4: Sync from gnulib, incorporating:
2014-08-29 qsort_r: new module, for GNU-style qsort_r
The previous two files' changes are boilerplate generated by
admin/merge-gnulib, and should not affect Emacs.
* src/fns.c: Include <vla.h>.
(sort_vector_predicate) [!HAVE_QSORT_R]: Remove.
(sort_vector_compare): Remove, replacing with ....
(inorder, merge_vectors, sort_vector_inplace, sort_vector_copy):
... these new functions.
(sort_vector): Rewrite to use the new functions.
GCPRO locals, since the predicate can invoke the GC.
Since it's in-place return void; caller changed.
(merge): Use 'inorder', for clarity.

Fixes: debbugs:18361
2014-08-30 15:59:39 -07:00
Dmitry Antipov
1764ec4414 Add vectors support to Fsort.
* configure.ac (AC_CHECK_FUNCS): Check for qsort_r.
* src/fns.c (sort_vector, sort_vector_compare): New functions.
(sort_list): Likewise, refactored out of ...
(Fsort): ... adjusted user.  Mention vectors in docstring.
(sort_vector_predicate) [!HAVE_QSORT_R]: New variable.
* src/alloc.c (make_save_int_obj): New function.
* src/lisp.h (enum Lisp_Save_Type): New member SAVE_TYPE_INT_OBJ.
(make_save_int_obj): Add prototype.
* test/automated/fns-tests.el (fns-tests-sort): New test.
2014-08-29 11:29:47 +04:00
Ken Brown
ea65250077 Add support for HYBRID_MALLOC, allowing the use of gmalloc before
dumping and the system malloc after dumping.  (Bug#18222)

* configure.ac (HYBRID_MALLOC): New macro; define to use gmalloc
before dumping and the system malloc after dumping.  Define on Cygwin.
* src/conf_post.h (malloc, realloc, calloc, free) [HYBRID_MALLOC]:
Define as macros, expanding to hybrid_malloc, etc.
(HYBRID_GET_CURRENT_DIR_NAME): New macro.
(get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Define as
macro.
* src/gmalloc.c: Set up the infrastructure for HYBRID_MALLOC, with a
full implementation on Cygwin.  Remove Cygwin-specific code that
is no longer needed.
(malloc, realloc, calloc, free, aligned_alloc) [HYBRID_MALLOC]:
Redefine as macros expanding to gmalloc, grealloc, etc.
(DUMPED, ALLOCATED_BEFORE_DUMPING) [CYGWIN]: New macros.
(get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Undefine.
(USE_PTHREAD, posix_memalign) [HYBRID_MALLOC]: Don't define.
(hybrid_malloc, hybrid_calloc, hybrid_free, hybrid_realloc)
[HYBRID_MALLOC]:
(hybrid_get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]:
(hybrid_aligned_alloc) [HYBRID_MALLOC && (HAVE_ALIGNED_ALLOC ||
HAVE_POSIX_MEMALIGN)]: New functions.
* src/alloc.c (aligned_alloc) [HYBRID_MALLOC && (ALIGNED_ALLOC ||
HAVE_POSIX_MEMALIGN)]: Define as macro expanding to
hybrid_aligned_alloc; declare.
(USE_ALIGNED_ALLOC) [HYBRID_MALLOC && (ALIGNED_ALLOC ||
HAVE_POSIX_MEMALIGN)]: Define.
(refill_memory_reserve) [HYBRID_MALLOC]: Do nothing.
* src/sysdep.c (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]:
Define as macro, expanding to gget_current_dir_name, and define
the latter.
* src/emacs.c (main) [HYBRID_MALLOC]: Don't call memory_warnings() or
malloc_enable_thread().  Don't initialize malloc.
* src/lisp.h (NONPOINTER_BITS) [CYGWIN]: Define (because GNU_MALLOC is
no longer defined on Cygwin).
(refill_memory_reserve) [HYBRID_MALLOC]: Don't declare.
* src/sheap.c (bss_sbrk_buffer_end): New variable.
* src/unexcw.c (__malloc_initialized): Remove variable.
* src/ralloc.c: Throughout, treat HYBRID_MALLOC the same as
SYSTEM_MALLOC.
* src/xdisp.c (decode_mode_spec) [HYBRID_MALLOC]: Don't check
	Vmemory_full.
2014-08-28 10:48:02 -04:00
Paul Eggert
110d87a1cc Improve robustness of new string-collation code.
* configure.ac (newlocale): Check for this, not for uselocale.
* src/sysdep.c (LC_COLLATE, LC_COLLATE_MASK, freelocale, locale_t)
(newlocale, wcscoll_l): Define substitutes for platforms that
lack them, so as to simplify the mainline code.
(str_collate): Simplify the code by assuming the above definitions.
Use wcscoll_l, not uselocale, as uselocale is too fragile.  For
example, the old version left the Emacs in the wrong locale if
wcscoll reported an error.  Use 'int', not ptrdiff_t, for the int
result.  Report an error if newlocale fails.

Fixes: debbugs:18051
2014-08-27 11:56:47 -07:00
Dmitry Antipov
75c76162ab * configure.ac (HAVE_LINUX_SYSINFO): Avoid false positive on Solaris. 2014-08-26 18:42:06 +04:00
Dmitry Antipov
ebd31792b2 Handle C stack overflow caused by too nested Lisp evaluation.
* configure.ac: Check for sigaltstack and related sigaction
support.  Unconditionally check for sigsetjmp and siglongjmp.
(HAVE_STACK_OVERFLOW_HANDLING): Define if we can support it.
* src/lisp.h (toplevel) [HAVE_STACK_OVERFLOW_HANDLING]: Declare
siglongjmp point to transfer control from SIGSEGV handler.
* src/keyboard.c (return_to_command_loop, recover_top_level_message)
[HAVE_STACK_OVERFLOW_HANDLING]: New variables.
(regular_top_level_message): New variable.
(command_loop) [HAVE_STACK_OVERFLOW_HANDLING]: Handle non-local
exit from SIGSEGV handler and adjust message displayed by Vtop_level
if appropriate.
(syms_of_keyboard): DEFVAR Vtop_level_message and initialize
new variables described above.
* src/sysdep.c [HAVE_SYS_RESOURCE_H]: Include sys/resource.h as such.
(stack_grows_down, sigsegv_stack, handle_sigsegv)
[HAVE_STACK_OVERFLOW_HANDLING]: New variables and function.
(init_sigsegv): New function.
(init_signals): Use it.
* lisp/startup.el (normal-top-level): Use top-level-message.
2014-08-26 10:25:59 +04:00
Ken Brown
940ac42ae3 Fix accidental deletion of a line in last change. 2014-08-25 16:55:37 -04:00
Ken Brown
79404e16fb * configure.ac (G_SLICE_ALWAYS_MALLOC): Remove obsolete macro.
* src/emacs.c (main): Remove use of obsolete macro
G_SLICE_ALWAYS_MALLOC.
2014-08-25 16:49:52 -04:00