2017-06-24  Bruno Haible  <bruno@clisp.org>

	build: Use decimal notation for the version number.
	* VERSION: Set to 1.13.
	* configure.ac: Simplify AC_CONFIG_HEADERS invocations. Define
	LIBFFCALL_VERSION as C macro, based on PACKAGE_VERSION.
	* avcall/avcall.h.in (LIBFFCALL_VERSION): Use a plain #define, for
	substitution by config.status.
	* vacall/vacall.h.in: Likewise.
	* trampoline/trampoline.h.in: Likewise.
	* callback/callback.h.in: Likewise.
	* callback/vacall_r/vacall_r.h.in: Likewise.
	* callback/trampoline_r/trampoline_r.h.in: Likewise.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	trampoline, callback: Make multithread-safe.
	* Makefile.maint (AUTOMAKE): New variable.
	(all): Depend on Makefile-ins.
	(GNULIB_MODULES): Add 'lock'.
	(gnulib-m4/gnulib-cache.m4): Don't remove generated gnulib-lib files.
	(ALL_MAKEFILE_IN_FROM_AM): New variable.
	(Makefile-ins, gnulib-lib/Makefile.in): New targets.
	* configure.ac: Invoke AM_INIT_AUTOMAKE. Arrange to generate
	gnulib-lib/Makefile. Invoke gl_EARLY earlier. Recurse into gnulib-lib
	directory.
	* Makefile.in (DISTCLEANFILES): Add the various stamp-h* files created
	by config.status at the end of the 'configure' run.
	(AUTOMAKE_IMPORTED_FILES): New variable.
	(IMPORTED_FILES): Use it.
	* trampoline/Makefile.in (INCLUDES): Reference the gnulib build dir and
	source dir.
	(LTLIBTHREAD): New variable.
	(libtrampoline.la): Link against libgnu.la, with options $(LTLIBTHREAD).
	(test1, test2): Link against libtrampoline.la.
	* trampoline/trampoline.c: Include glthread/lock.h.
	(zero_fd, file_fd, file_length): Move to file scope.
	(for_mmap_init): New function, extracted from alloc_trampoline.
	(for_mmap_once): New variable.
	(freelist_lock): New variable.
	(alloc_trampoline): Use once-only execution and locking.
	* callback/trampoline_r/Makefile.in (INCLUDES): Reference the gnulib
	build dir and source dir.
	(LTLIBTHREAD): New variable.
	(libtrampoline.la): Link against libgnu.la, with options $(LTLIBTHREAD).
	(test1, test2): Link against libtrampoline.la.
	* callback/trampoline_r/trampoline.c: Include glthread/lock.h.
	(zero_fd, file_fd, file_length): Move to file scope.
	(for_mmap_init): New function, extracted from alloc_trampoline.
	(for_mmap_once): New variable.
	(freelist_lock): New variable.
	(alloc_trampoline_r): Use once-only execution and locking.
	* callback/Makefile.in (LTLIBTHREAD): New variable.
	(libcallback.la): Link against libgnu.la, with options $(LTLIBTHREAD).

2017-06-24  Bruno Haible  <bruno@clisp.org>

	build: Rename glm4 to gnulib-m4.
	* autogen.sh: Write gnulib-m4 instead of glm4.
	* Makefile.maint: Likewise.
	* Makefile.in (GNULIB_IMPORTED_FILES): Likewise.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	build: Assume a single configure.ac file.
	* Makefile.maint (ALL_CONFIGURE_AC, aclocal.m4): Simplify.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	Merge all autoconf configurations into a single one.
	* configure.ac: Include the body of all other configure.ac files.
	Use a single config.h file. Inline FFCALL_COMMON_LIBTOOL and
	FFCALL_COMMON_TRAMPOLINE.
	* avcall/configure.ac: Remove file.
	* vacall/configure.ac: Remove file.
	* trampoline/configure.ac: Remove file.
	* callback/configure.ac: Remove file.
	* callback/vacall_r/configure.ac: Remove file.
	* callback/trampoline_r/configure.ac: Remove file.
	* m4/general.m4 (FFCALL_COMMON_LIBTOOL, FFCALL_COMMON_TRAMPOLINE):
	Remove macros.
	* build-aux/ac-help.sed: Remove file.
	* Makefile.maint (CONFIGURED_SUBDIRS, SUBDIRS_CONFIGURE): Remove
	variables.
	(ALL_CONFIGURE): Keep only the top-level configure.
	(%/configure): Remove rule.
	(ALL_CONFIG_H_IN): Set to only the top-level config.h.in.
	(config.h.in): Replace the %/config.h.in rule.
	* vacall/Makefile.maint (config.h.msvc, config.h.mingw32): Use top-level
	config.h.in.
	* trampoline/Makefile.maint (config.h.msvc, config.h.mingw32): Use
	top-level config.h.in.
	* callback/Makefile.maint (vacall_r/config.h.msvc,
	vacall_r/config.h.mingw32, trampoline_r/config.h.msvc,
	trampoline_r/config.h.mingw32): Update dependencies.
	* callback/vacall_r/Makefile.maint (config.h.msvc, config.h.mingw32):
	Use top-level config.h.in.
	* callback/trampoline_r/Makefile.maint (config.h.msvc,
	config.h.mingw32): Use top-level config.h.in.
	* Makefile.in (DISTCLEANFILES): Add config.h, libtool.
	(SOURCE_FILES): Remove build-aux/ac-help.sed.
	(GENERATED_FILES): Add config.h.in. Remove */config* and
	callback/*/config*.
	* avcall/Makefile.in (INCLUDES): Look also in '..'.
	(top_builddir): Set to '..'.
	(distclean): Don't remove config* and libtool.
	(SOURCE_FILES): Remove configure.ac.
	* vacall/Makefile.in (INCLUDES): Look also in '..'.
	(misc.o): Update dependency.
	(distclean): Don't remove config* and libtool.
	(SOURCE_FILES): Remove configure.ac.
	* trampoline/Makefile.in (INCLUDES): Look also in '..'.
	(top_builddir): Set to '..'.
	(distclean): Don't remove config* and libtool.
	(SOURCE_FILES): Remove configure.ac.
	* callback/Makefile.in (INCLUDES): Look also in '..'.
	(top_builddir): Set to '..'.
	(DISTCLEANFILES): Remove config* and libtool.
	(SOURCE_FILES): Remove configure.ac.
	* callback/vacall_r/Makefile.in (INCLUDES): Look also in '../..'.
	(top_builddir): Set to '../..'.
	(misc.lo): Update dependency.
	(distclean): Don't remove config* and libtool.
	(SOURCE_FILES): Remove configure.ac.
	* callback/trampoline_r/Makefile.in (INCLUDES): Look also in '../..'.
	(top_builddir): Set to '../..'.
	(distclean): Don't remove config* and libtool.
	(SOURCE_FILES): Remove configure.ac.
	* README, */README: Update.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	trampoline: Build library using libtool.
	* trampoline/configure.ac: Invoke FFCALL_COMMON_LIBTOOL.
	(CPU_OBJECTS): Now contains .lo file names instead of .o file names.
	* trampoline/Makefile.in (LIBTOOL*, top_builddir): New variables.
	(*.lo): Targets renamed from *.o.
	(libtrampoline.la): Replaces target libtrampoline.a.
	Use LIBTOOL* variables as appropriate.
	(clean): Remove also *.lo, libtrampoline.*, .libs, _libs.
	(distclean): Remove also 'libtool'.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	trampoline: Generate position-independent code.
	* trampoline/Makefile.devel (GCCFLAGS): Add -fPIC.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	vacall: Explain why not using libtool.
	* vacall/README: Add comment about libtool.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	Fix result of an autoconf test on AIX.
	* m4/codeexec.m4 (FFCALL_CODEEXEC): Don't actually run the test on
	powerpc64 (AIX and Linux) and ia64 (Linux).

2017-06-24  Bruno Haible  <bruno@clisp.org>

	build: Avoid testing an undefined variable.
	* m4/codeexec.m4 (FFCALL_CODEEXEC_PAX): Before testing
	cl_cv_func_mprotect_works, test ac_cv_func_mprotect.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	build: Add necessary AC_REQUIREs.
	* m4/codeexec.m4 (FFCALL_CODEEXEC): Require AC_CANONICAL_HOST and
	gl_HOST_CPU_C_ABI.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	Fix build error on Solaris 11 with Oracle Developer Studio 12.5.
	* common/asm-x86_64.sh: Clarify the necessary postprocessing.
	* common/asm-i386.sh: Document the necessary postprocessing.
	* avcall/Makefile.in (avcall-i386.s): Do more postprocessing.
	* vacall/Makefile.in (vacall-i386.s): Likewise.
	* callback/vacall_r/Makefile.in (vacall-i386.s): Likewise.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	Fix compilation error on CentOS 5.
	* trampoline/trampoline.c (open_noinherit): New function.
	(alloc_trampoline): Use it.
	* callback/trampoline_r/trampoline.c: Likewise.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	Prefer https over http URLs.
	* autogen.sh: Access ftp.gnu.org through https.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	Remove obsolete mention of nonexistent file.
	* avcall/README: Don't mention underscore.h.
	* vacall/README: Likewise.

2017-06-24  Bruno Haible  <bruno@clisp.org>

	Remove obsolete protexec.c file.
	* trampoline/protexec.c: Remove file.
	* trampoline/README: Update.
	* callback/trampoline_r/Makefile.maint (COPIED_FILES): Remove
	protexec.c.

2017-06-21  Bruno Haible  <bruno@clisp.org>

	Fix list of distributed files.
	* Makefile.in (SOURCE_FILES): Add m4/endianness.m4, common/asm-s390.sh.

2017-06-19  Bruno Haible  <bruno@clisp.org>

	Fix a misnomer.
	* vacall/vacall.h.in: Rename 'regarg' to 'iarg'.
	* callback/vacall_r/vacall_r.h.in: Likewise.
	* vacall/vacall-powerpc.c: Update accordingly.
	* vacall/vacall-s390.c: Likewise.

2017-06-18  Bruno Haible  <bruno@clisp.org>

	s390x: Add support for s390x CPU (64-bit S/390).
	* cross-tools/cross.conf: Add configuration for s390x cross tools.
	* common/reg-struct-return.txt: Add info about s390x.
	* callback/call-used-registers.txt: Likewise.
	* common/asm-s390.sh: New file.
	* avcall/avcall.h.in: Optionally define __s390x__. Add code for
	__s390x__, especially __av_start_struct4, av_float, av_double,
	__av_struct.
	* avcall/avcall-s390x.c: New file.
	* avcall/Makefile.devel (avcall-s390-macro.S): Use asm-s390.sh.
	(avcall-s390x-linux.s, avcall-s390x-macro.S): New targets.
	* avcall/Makefile.in (avcall-s390x.lo, avcall-s390x.s): New targets.
	(clean): Remove avcall-s390x.s.
	(SOURCE_FILES): Add avcall-s390x.c, avcall-s390x-linux.s,
	avcall-s390x-macro.S.
	* vacall/vacall.h.in: Optionally define __s390x__. Add code for
	__s390x__, especially __va_start_struct2, __va_arg_adjusted,
	va_arg_float, va_arg_double, __va_arg_struct.
	* vacall/vacall-s390x.c: New file.
	* vacall/Makefile.devel (vacall-s390-macro.S): Use asm-s390.sh.
	(vacall-s390x-linux.s, vacall-s390x-macro.S): New targets.
	* vacall/Makefile.in (vacall-s390x.o, vacall-s390x.s): New targets.
	(clean): Remove vacall-s390x.s.
	(SOURCE_FILES): Add vacall-s390x.c, vacall-s390x-linux.s,
	vacall-s390x-macro.S.
	* callback/vacall_r/Makefile.maint (COPIED_FILES): Add vacall-s390x.c.
	* Makefile.in (COPIED_FILES): Add callback/vacall_r/vacall-s390x.c.
	* callback/vacall_r/vacall_r.h.in: Optionally define __s390x__. Add code
	for __s390x__, especially __va_start_struct2, __va_arg_adjusted,
	va_arg_float, va_arg_double, __va_arg_struct.
	* callback/vacall_r/Makefile.devel (vacall-s390-macro.S): Use
	asm-s390.sh.
	(vacall-s390x-linux.s, vacall-s390x-macro.S): New targets.
	* callback/vacall_r/Makefile.in (vacall-s390x.lo, vacall-s390x.s): New
	targets.
	(clean): Remove vacall-s390x.s.
	(SOURCE_FILES): Add vacall-s390x.c, vacall-s390x-linux.s,
	vacall-s390x-macro.S.
	* trampoline/Makefile.devel (proto-s390x.s, tramp-s390x.o): New targets.
	* trampoline/proto-s390x.s: New generated file.
	* trampoline/tramp-s390x.s: New file.
	* trampoline/tramp-s390x.o: New generated file.
	* trampoline/trampoline.c: Implement for __s390x__.
	* callback/trampoline_r/Makefile.devel (proto-s390x.s, tramp-s390x.o):
	New targets.
	* callback/trampoline_r/proto64.c: Add support for __s390x__.
	* callback/trampoline_r/proto-s390x.s: New generated file.
	* callback/trampoline_r/tramp-s390x.s: New file.
	* callback/trampoline_r/tramp-s390x.o: New generated file.
	* callback/trampoline_r/trampoline.c: Implement for __s390x__.
	* callback/trampoline_r/test1.c: Add support for __s390x__.
	* PLATFORMS, */PLATFORMS: List the s390x machine.
	* NEWS: Mention the new port.

2017-06-18  Bruno Haible  <bruno@clisp.org>

	Small code style improvements.
	* avcall/avcall.h.in [__arm64__]: Define and use __AV_FARG_NUM.
	[__s390__, __arm64__] (__av_struct): Avoid a boolean negation.
	* vacall/vacall.h.in [__arm64__]: Define and use __VA_IARG_NUM,
	__VA_FARG_NUM.
	[__x86_64__]: Define and use __VA_IARG_NUM.
	* callback/vacall_r/vacall_r.h.in: Likewise.

2017-06-18  Bruno Haible  <bruno@clisp.org>

	s390: Reorder code.
	* avcall/avcall.h.in: Move s390 specific code to the end (after ia64 and
	x86_64 specific code).
	* vacall/vacall.h.in: Likewise.
	* callback/vacall_r/vacall_r.h.in: Likewise.

2017-06-18  Bruno Haible  <bruno@clisp.org>

	s390: Improve trampolines.
	* trampoline/Makefile.devel (proto-s390.s): New target.
	(tramp-s390.o): Use cross tools.
	* trampoline/proto-s390.s: Regenerated with gcc 3.1.
	* trampoline/tramp-s390.s: Rewritten from scratch, to not use %r13.
	* trampoline/tramp-s390.o: New generated file.
	* trampoline/trampoline.c (alloc_trampoline) [__s390__]: Change the
	trampoline to not use %r13.
	* callback/trampoline_r/Makefile.devel (proto-s390.s): New target.
	(tramp-s390.o): Use cross tools.
	* callback/trampoline_r/proto-s390.s: Regenerated with gcc 3.1.
	* callback/trampoline_r/tramp-s390.s: Rewritten from scratch. Use 'lm'
	instruction.
	* callback/trampoline_r/tramp-s390.o: Regenerated.
	* callback/trampoline_r/trampoline.c (alloc_trampoline_r) [__s390__]:
	Change the trampoline accordingly.

2017-06-17  Bruno Haible  <bruno@clisp.org>

	arm64: Add support for arm64 CPU (a.k.a. aarch64).
	* cross-tools/cross.conf: Add configuration for arm64 cross tools.
	* common/reg-struct-return.txt: Add info about arm64.
	* callback/call-used-registers.txt: Likewise.
	* avcall/avcall.h.in: Add code for __arm64__, especially __av_start1,
	av_long, av_ulong, av_ptr, av_float, av_double, __av_struct.
	* avcall/avcall-arm64.c: New file.
	* avcall/Makefile.devel (avcall-arm64-macro.S): New target.
	* avcall/Makefile.in (avcall-arm64.lo, avcall-arm64.s): New targets.
	(clean): Remove avcall-arm64.s.
	(SOURCE_FILES): Add avcall-arm64.c, avcall-arm64-macro.S.
	* vacall/vacall.h.in: Add code for __arm64__, especially
	__va_arg_adjusted, va_arg_float, va_arg_double, __va_arg_struct.
	* vacall/vacall-arm64.c: New file.
	* vacall/Makefile.devel (vacall-arm64-macro.S): New target.
	* vacall/Makefile.in (vacall-arm64.o, vacall-arm64.s): New targets.
	(clean): Remove vacall-arm64.s.
	(SOURCE_FILES): Add vacall-arm64.c, vacall-arm64-macro.S.
	* callback/vacall_r/Makefile.maint (COPIED_FILES): Add vacall-arm64.c.
	* Makefile.in (COPIED_FILES): Add callback/vacall_r/vacall-arm64.c.
	* callback/vacall_r/vacall_r.h.in: Add code for __arm64__, especially
	__va_arg_adjusted, va_arg_float, va_arg_double, __va_arg_struct.
	* callback/vacall_r/Makefile.devel (vacall-arm64-macro.S): New target.
	* callback/vacall_r/Makefile.in (vacall-arm64.lo, vacall-arm64.s): New
	targets.
	(clean): Remove vacall-arm64.s.
	(SOURCE_FILES): Add vacall-arm64.c, vacall-arm64-macro.S.
	* trampoline/Makefile.devel (proto-arm64.s, tramp-arm64.o): New targets.
	* trampoline/proto-arm64.s: New generated file.
	* trampoline/tramp-arm64.s: New file.
	* trampoline/tramp-arm64.o: New generated file.
	* trampoline/trampoline.c: Implement for __arm64__.
	* callback/trampoline_r/Makefile.devel (proto-arm64.s, tramp-arm64.o):
	New targets.
	* callback/trampoline_r/proto64.c: Add support for __arm64__.
	* callback/trampoline_r/proto-arm64.s: New generated file.
	* callback/trampoline_r/tramp-arm64.s: New file.
	* callback/trampoline_r/tramp-arm64.o: New generated file.
	* callback/trampoline_r/trampoline.c: Implement for __arm64__.
	* callback/trampoline_r/test1.c: Add support for __arm64__.
	* PLATFORMS, */PLATFORMS: List the arm64 machine.
	* NEWS: Mention the new port.

2017-06-16  Bruno Haible  <bruno@clisp.org>

	Remove unused fields from __va_alist.
	* vacall/vacall.h.in (__va_alist): Don't include _longlong and
	_ulonglong on platforms where they are unused.
	* callback/vacall_r/vacall_r.h.in: Likewise.

2017-06-15  Bruno Haible  <bruno@clisp.org>

	Reduce the amount of cache invalidation to the necessary minimum.
	* trampoline/trampoline.c (alloc_trampoline): New macro
	TRAMP_CODE_LENGTH. Use it instead of TRAMP_LENGTH for cache
	invalidation.
	* callback/trampoline_r/trampoline.c (alloc_trampoline_r): Likewise.

2017-06-10  Bruno Haible  <bruno@clisp.org>

	Make the top-level "./configure --help" output complete.
	Reported by Karl Berry <karl@freefriends.org> in
	<https://lists.gnu.org/archive/html/libffcall/2017-03/msg00000.html>.
	* build-aux/ac-help.sed: New file, from GNU gettext with modifications.
	* Makefile.in (SOURCE_FILES): Add it.
	* configure.ac: Collect the AC_ARG_* options from the subdirectories,
	like in GNU gettext.
	* callback/configure.ac: Likewise.
	* Makefile.maint (aclocal.m4): Disable esyscmd invocations while running
	aclocal.

2017-06-10  Bruno Haible  <bruno@clisp.org>

	In comments, write 'libffcall' instead of 'ffcall'.

2017-06-10  Bruno Haible  <bruno@clisp.org>

	Add cache invalidation for 64-bit powerpc.
	* trampoline/cache-powerpc64.c: New file.
	* trampoline/Makefile.devel (cache-powerpc64-elfv2-linux.s,
	cache-powerpc64-elfv2-macro.S): New rules.
	* trampoline/configure.ac (CPU_OBJECTS): Augment also for
	powerpc64-elfv2 ABI.
	* trampoline/Makefile.in (cache-powerpc64-elfv2.o,
	cache-powerpc64-elfv2.s): New rules.
	(clean): Remove also cache-powerpc64-elfv2.s.
	(SOURCE_FILES): Add cache-powerpc64.c, cache-powerpc64-elfv2-linux.s,
	cache-powerpc64-elfv2-macro.S.
	* trampoline/trampoline.c (__TR_clear_cache): Declare also for
	powerpc64-elfv2 ABI.
	(alloc_trampoline): Invoke __TR_clear_cache also on powerpc64-elfv2 ABI.
	* callback/trampoline_r/cache-powerpc64.c: New file.
	* callback/trampoline_r/Makefile.devel (cache-powerpc64-elfv2-linux.s,
	cache-powerpc64-elfv2-macro.S): New rules.
	* trampoline/configure.ac (CPU_OBJECTS): Augment also for
	powerpc64-elfv2 ABI.
	* callback/trampoline_r/Makefile.in (cache-powerpc64-elfv2.lo,
	cache-powerpc64-elfv2.s): New rules.
	(clean): Remove also cache-powerpc64-elfv2.s.
	(SOURCE_FILES): Add cache-powerpc64.c, cache-powerpc64-elfv2-linux.s,
	cache-powerpc64-elfv2-macro.S.
	* callback/trampoline_r/trampoline.c (__TR_clear_cache): Declare also
	for powerpc64-elfv2 ABI.
	(alloc_trampoline_r): Invoke __TR_clear_cache also on powerpc64-elfv2
	ABI.

2017-06-10  Bruno Haible  <bruno@clisp.org>

	Fix cache invalidation for 32-bit powerpc.
	* trampoline/cache-powerpc.c: Add comment.
	* callback/trampoline_r/cache-powerpc.c: New file, based on
	trampoline/cache-powerpc.c.
	* callback/trampoline_r/Makefile.maint (COPIED_FILES): Remove
	cache-powerpc.c.
	* Makefile.in (COPIED_FILES): Remove
	callback/trampoline_r/cache-powerpc.c.

2017-06-10  Bruno Haible  <bruno@clisp.org>

	Don't declare the need for an executable stack on Linux and FreeBSD.
	* porting-tools: New directory.
	* common/asm-alpha.sh: New file.
	* common/asm-powerpc.sh: New file.
	* common/asm-arm.sh: Remove the GNU-stack note line.
	* common/asm-sparc.sh: Likewise.
	* common/asm-x86_64.sh: Likewise.
	* common/noexecstack.h: New file.
	* common/noexecstack-arm.h: New file.
	* avcall/Makefile.devel (precompiled): Add avcall-alpha-macro.S,
	avcall-powerpc-linux-macro.S, avcall-powerpc-sysv4-macro.S,
	avcall-powerpc64-linux.S, avcall-powerpc64-elfv2-linux.S,
	avcall-ia64-macro.S, avcall-s390-macro.S. Remove avcall-alpha.s,
	avcall-powerpc-linux.s, avcall-powerpc-sysv4.s,
	avcall-powerpc64-linux.s, avcall-powerpc64-elfv2-linux.s, avcall-ia64.s,
	avcall-s390.s.
	(avcall-i386-macro.S, avcall-m68k.mit.S, avcall-m68k.motorola.S,
	avcall-sparc-macro.S, avcall-sparc64-macro.S, avcall-hppa-macro.S,
	avcall-x86_64-macro.S): Include noexecstack.h.
	(avcall-alpha-linux.s): Renamed from avcall-alpha.s.
	(avcall-alpha-macro.S): New rule.
	(avcall-arm-macro.S, avcall-armhf-macro.S): Include noexecstack-arm.h.
	(avcall-powerpc-linux-macro.S): New rule.
	(avcall-powerpc-sysv4-macro.S): Replaces rule for
	avcall-powerpc-sysv4.s.
	(avcall-powerpc64-linux.S): Replaces rule for avcall-powerpc64-linux.s.
	(avcall-powerpc64-elfv2-linux.S): Replaces rule for
	avcall-powerpc64-elfv2-linux.s.
	(avcall-ia64-linux.s): Renamed from avcall-ia64.s.
	(avcall-ia64-macro.S): New rule.
	(avcall-s390-linux.s): Renamed from avcall-s390.s.
	(avcall-s390-macro.S): New rule.
	* avcall/Makefile.in (avcall-alpha.s): New rule.
	(avcall-alpha.lo): Update.
	(avcall-powerpc.s): Use avcall-powerpc-linux-macro.S,
	avcall-powerpc-sysv4-macro.S instead of avcall-powerpc-linux.s,
	avcall-powerpc-sysv4.s.
	(avcall-powerpc64.s): Use avcall-powerpc64-linux.S instead of
	avcall-powerpc64-linux.s.
	(avcall-powerpc64-elfv2.s): Use avcall-powerpc64-elfv2-linux.S instead
	of avcall-powerpc64-elfv2-linux.s.
	(avcall-ia64.s): New rule.
	(avcall-ia64.lo): Update.
	(avcall-s390.s): New rule.
	(avcall-s390.lo): Update.
	(clean): Remove also avcall-alpha.s, avcall-ia64.s, avcall-s390.s.
	(SOURCE_FILES): Update.
	* vacall/Makefile.devel (precompiled): Add vacall-alpha-macro.S,
	vacall-powerpc-linux-macro.S, vacall-powerpc-sysv4-macro.S,
	vacall-powerpc64-linux.S, vacall-powerpc64-elfv2-linux.S,
	vacall-ia64-macro.S, vacall-s390-macro.S. Remove vacall-alpha.s,
	vacall-powerpc-linux.s, vacall-powerpc-sysv4.s,
	vacall-powerpc64-linux.s, vacall-powerpc64-elfv2-linux.s, vacall-ia64.s,
	vacall-s390.s.
	(vacall-i386-macro.S, vacall-m68k.mit.S, vacall-m68k.motorola.S,
	vacall-sparc-macro.S, vacall-sparc64-macro.S, vacall-hppa-macro.S,
	vacall-x86_64-macro.S): Include noexecstack.h.
	(vacall-alpha-linux.s): Renamed from vacall-alpha.s.
	(vacall-alpha-macro.S): New rule.
	(vacall-arm-macro.S, vacall-armhf-macro.S): Include noexecstack-arm.h.
	(vacall-powerpc-linux-macro.S): New rule.
	(vacall-powerpc-sysv4-macro.S): Replaces rule for
	vacall-powerpc-sysv4.s.
	(vacall-powerpc64-linux.S): Replaces rule for vacall-powerpc64-linux.s.
	(vacall-powerpc64-elfv2-linux.S): Replaces rule for
	vacall-powerpc64-elfv2-linux.s.
	(vacall-ia64-linux.s): Renamed from vacall-ia64.s.
	(vacall-ia64-macro.S): New rule.
	(vacall-s390-linux.s): Renamed from vacall-s390.s.
	(vacall-s390-macro.S): New rule.
	* vacall/Makefile.in (vacall-alpha.s): New rule.
	(vacall-alpha.o): Update.
	(vacall-powerpc.s): Use vacall-powerpc-linux-macro.S,
	vacall-powerpc-sysv4-macro.S instead of vacall-powerpc-linux.s,
	vacall-powerpc-sysv4.s.
	(vacall-powerpc64.s): Use vacall-powerpc64-linux.S instead of
	vacall-powerpc64-linux.s.
	(vacall-powerpc64-elfv2.s): Use vacall-powerpc64-elfv2-linux.S instead
	of vacall-powerpc64-elfv2-linux.s.
	(vacall-ia64.s): New rule.
	(vacall-ia64.o): Update.
	(vacall-s390.s): New rule.
	(vacall-s390.o): Update.
	(clean): Remove also vacall-alpha.s, vacall-ia64.s, vacall-s390.s.
	(SOURCE_FILES): Update.
	* callback/vacall_r/Makefile.devel (precompiled): Add
	vacall-powerpc64-linux.S, vacall-powerpc64-elfv2-linux.S,
	vacall-ia64-macro.S. Remove vacall-powerpc64-linux.s,
	vacall-powerpc64-elfv2-linux.s, vacall-ia64.s.
	(vacall-i386-macro.S, vacall-m68k.mit.S, vacall-m68k.motorola.S,
	vacall-sparc-macro.S, vacall-sparc64-macro.S, vacall-alpha-macro.S,
	vacall-hppa-macro.S, vacall-powerpc-linux-macro.S,
	vacall-powerpc-sysv4-macro.S, vacall-x86_64-macro.S,
	vacall-s390-macro.S): Include noexecstack.h.
	(vacall-arm-macro.S, vacall-armhf-macro.S): Include noexecstack-arm.h.
	(vacall-powerpc64-linux.S): Replaces rule for vacall-powerpc64-linux.s.
	(vacall-powerpc64-elfv2-linux.S): Replaces rule for
	vacall-powerpc64-elfv2-linux.s.
	(vacall-ia64-linux.s): Renamed from vacall-ia64.s.
	(vacall-ia64-macro.S): New rule.
	* callback/vacall_r/Makefile.in (vacall-powerpc64.s): Use
	vacall-powerpc64-linux.S instead of vacall-powerpc64-linux.s.
	(vacall-powerpc64-elfv2.s): Use vacall-powerpc64-elfv2-linux.S instead
	of vacall-powerpc64-elfv2-linux.s.
	(vacall-ia64.s): New rule.
	(vacall-ia64.lo): Update.
	(vacall-s390.s): New rule.
	(vacall-s390.lo): Update.
	(clean): Remove also vacall-ia64.s.
	(SOURCE_FILES): Update.
	* trampoline/cache-alpha.s: Remove file.
	* trampoline/cache-hppa.s: Remove file.
	* trampoline/cache-powerpc-macos.s, trampoline/cache-powerpc-sysv4.s:
	Remove files.
	* trampoline/cache-sparc-macro.S: Remove file.
	* trampoline/tramp-hppa-macro.S: Renamed from trampoline/tramp-hppa.s.
	Include "noexecstack.h".
	* trampoline/tramp-ia64-macro.S: Renamed from trampoline/tramp-ia64.s.
	Include "noexecstack.h".
	* trampoline/tramp-powerpc64-aix.S: Include "noexecstack.h".
	* trampoline/Makefile.devel: Rename GCCFLAGS to OLDGCCFLAGS in old
	rules.
	(cache-*): Remove old rules.
	(precompiled): New target.
	(cache-sparc-linux.s, cache-sparc-macro.S, cache-sparc64-linux.s,
	cache-sparc64-macro.S, cache-alpha-linux.s, cache-alpha-macro.S,
	cache-hppa-linux.s, cache-hppa-macro.S, cache-powerpc-linux.s,
	cache-powerpc-linux-macro.S, cache-powerpc-macos.s): New rules.
	* trampoline/Makefile.in (tramp-hppa.s): New rule.
	(tramp-hppa.o): Update.
	(tramp-powerpc64.s: Depend on noexecstack.h.
	(tramp-ia64.s): New rule.
	(tramp-ia64.o): Update.
	(cache-sparc64.s): Update.
	(cache-alpha.s): New rule.
	(cache-alpha.o): Update.
	(cache-hppa.s): New rule.
	(cache-hppa.o): Update.
	(cache-powerpc.s): New rule.
	(cache-powerpc.o): Update.
	(clean): Remove also tramp-hppa.s, tramp-ia64.s, cache-alpha.s,
	cache-hppa.s, cache-powerpc.s.
	(SOURCE_FILES): Update.
	* callback/trampoline_r/cache-sparc-macro.S: Remove file.
	* callback/trampoline_r/tramp-hppa-macro.S: Renamed from
	callback/trampoline_r/tramp-hppa.s. Include "noexecstack.h".
	* callback/trampoline_r/tramp-ia64-macro.S: Renamed from
	callback/trampoline_r/tramp-ia64.s. Include "noexecstack.h".
	* callback/trampoline_r/tramp-powerpc64-aix.S: Include "noexecstack.h".
	* callback/trampoline_r/Makefile.maint (COPIED_FILES): Remove
	cache-alpha.s, cache-hppa.s, cache-powerpc-macos.s,
	cache-powerpc-sysv4.s.
	* callback/trampoline_r/Makefile.devel: Rename GCCFLAGS to OLDGCCFLAGS
	in old rules.
	(cache-*): Remove old rules.
	(precompiled): New target.
	(cache-sparc-linux.s, cache-sparc-macro.S, cache-sparc64-linux.s,
	cache-sparc64-macro.S, cache-alpha-linux.s, cache-alpha-macro.S,
	cache-hppa-linux.s, cache-hppa-macro.S, cache-powerpc-linux.s,
	cache-powerpc-linux-macro.S, cache-powerpc-macos.s): New rules.
	* callback/trampoline_r/Makefile.in (tramp-hppa.s): New rule.
	(tramp-hppa.lo): Update.
	(tramp-powerpc64.s: Depend on noexecstack.h.
	(tramp-ia64.s): New rule.
	(tramp-ia64.lo): Update.
	(cache-sparc64.s): Update.
	(cache-alpha.s): New rule.
	(cache-alpha.lo): Update.
	(cache-hppa.s): New rule.
	(cache-hppa.lo): Update.
	(cache-powerpc.s): New rule.
	(cache-powerpc.lo): Update.
	(clean): Remove also tramp-hppa.s, tramp-ia64.s, cache-alpha.s,
	cache-hppa.s, cache-powerpc.s.
	(SOURCE_FILES): Update.
	* Makefile.devel (precompiled): Recurse also into trampoline and
	callback/trampoline_r directories.
	* Makefile.in (SOURCE_FILES): Update.
	(COPIED_FILES): Remove callback/trampoline_r/cache-alpha.s,
	callback/trampoline_r/cache-hppa.s,
	callback/trampoline_r/cache-powerpc-macos.s,
	callback/trampoline_r/cache-powerpc-sysv4.s.
	* NEWS: Mention the change.

2017-06-10  Bruno Haible  <bruno@clisp.org>

	Simplify Makefile.devel.
	* avcall/Makefile.devel (HOST, CPU): Remove unused variables.
	* vacall/Makefile.devel (HOST, CPU): Likewise.
	* trampoline/Makefile.devel (HOST, CPU): Likewise.
	* callback/vacall_r/Makefile.devel (HOST, CPU): Likewise.
	* callback/trampoline_r/Makefile.devel (HOST, CPU): Likewise.

2017-06-10  Bruno Haible  <bruno@clisp.org>

	Make the EXECUTABLE_VIA_MMAP_FILE_SHARED support work on i386.
	* trampoline/trampoline.c (alloc_trampoline): New local variable
	'function_x'. Use it instead of 'function' for the computation of the
	relative address in the i386 trampoline.
	* callback/trampoline_r/trampoline.c (alloc_trampoline_r): Likewise.

2017-06-04  Bruno Haible  <bruno@clisp.org>

	build: Get rid of autom4te.cache directories.
	* Makefile.maint (configure, $(SUBDIRS_CONFIGURE), $(ALL_CONFIG_H_IN)):
	Remove autom4te.cache subdirectory.

2017-06-04  Bruno Haible  <bruno@clisp.org>

	Change the license from GPLv2 to GPLv2+.
	* **/configure.ac, **/*.3, **/*.html, **/minitests.c,
	callback/MIGRATION, common/asm-*: Add copyright notice.
	* m4/*.m4: Use GPLv2+ with exception notice.
	* Everywhere else: Change GPLv2 copyright notice to GPLv2+ copyright
	notice. Update copyright years.

2017-06-03  Bruno Haible  <bruno@clisp.org>

	Make the cross-build.sh script work with argument 'all'.
	* cross-tools/cross-build.sh: Fix typo.

2017-06-03  Bruno Haible  <bruno@clisp.org>

	Improve support for SELinux.
	* m4/codeexec.m4 (FFCALL_CODEEXEC_PAX): On SELinux systems, define
	HAVE_MPROTECT_AFTER_MALLOC_CAN_EXEC to -1.
	* trampoline/trampoline.c: When HAVE_MPROTECT_AFTER_MALLOC_CAN_EXEC is
	-1, assume the worst and don't set EXECUTABLE_VIA_MALLOC_THEN_MPROTECT.
	* callback/trampoline_r/trampoline.c: Likewise.

2017-06-03  Bruno Haible  <bruno@clisp.org>

	Improve support for SELinux.
	* m4/codeexec.m4 (FFCALL_CODEEXEC_PAX): On SELinux systems, define
	HAVE_MPROTECT_AFTER_MMAP_CAN_EXEC to -1.
	* trampoline/trampoline.c: When HAVE_MPROTECT_AFTER_MMAP_CAN_EXEC is -1,
	assume the worst and don't set EXECUTABLE_VIA_MMAP_THEN_MPROTECT.
	* callback/trampoline_r/trampoline.c: Likewise.

2017-06-03  Bruno Haible  <bruno@clisp.org>

	Indent the *.m4 files.
	* m4/as-underscore.m4: Use reasonable indentation.
	* m4/cc-gcc.m4: Likewise.
	* m4/codeexec.m4: Likewise.
	* m4/endianness.m4: Likewise.
	* m4/general.m4: Likewise.
	* m4/getpagesize.m4: Likewise.
	* m4/ireg.m4: Likewise.
	* m4/ln.m4: Likewise.
	* m4/mach-vm.m4: Likewise.
	* m4/mmap.m4: Likewise.
	* m4/mprotect.m4: Likewise.
	* m4/pccstruct.m4: Likewise.
	* m4/shm.m4: Likewise.
	* m4/smallstruct.m4: Likewise.
	* m4/proto.m4: Likewise.
	(CL_PROTO_TRY, CL_PROTO_CONST, CL_PROTO_MISSING, CONST_VARIANTS,
	SIZE_VARIANTS): Remove macros.

2017-02-26  Bruno Haible  <bruno@clisp.org>

	Document more clearly the maintainer prerequisites.
	* Makefile.in (ACLOCAL, AUTOCONF, AUTOHEADER): Add comments.
	* README-hacking: Likewise.
	Reported by Don Cohen <don-ffcall@isis.cs3-inc.com> in
	<https://lists.gnu.org/archive/html/libffcall/2017-02/msg00001.html>
	and Sam Steingold <sds@gnu.org>.

2017-02-26  Bruno Haible  <bruno@clisp.org>

	Document the support for GNU Hurd.
	* PLATFORMS, */PLATFORMS: List i686-unknown-gnu0.9 (gcc).

2017-02-19  Bruno Haible  <bruno@clisp.org>

	configuration: Avoid running an unneeded test.
	* m4/codeexec.m4 (FFCALL_CODEEXEC_PAX): Require FFCALL_CODEEXEC. Do
	nothing if its result is that malloc()ed memory is already executable.

2017-02-19  Bruno Haible  <bruno@clisp.org>

	Remove useless double-inclusion guard on .c files.
	* avcall/tests.c: Remove double-inclusion guard.
	* avcall/avcall-*.c: Likewise. Fix comment.

2017-02-19  Bruno Haible  <bruno@clisp.org>

	powerpc: Fix build failure on MacOS X (regression from 2017-01-29).
	1.
	* cross-tools/cross.conf: For powerpc-darwin, go back to gcc 3.3.6.
	* cross-tools/patches/gcc-3.3.6.patch: New file.
	* avcall/Makefile.devel (avcall-powerpc-macos.s): Use gcc 3.3.6.
	* vacall/Makefile.devel (vacall-powerpc-macos.s): Use gcc 3.3.6.
	* callback/vacall_r/Makefile.devel (vacall-powerpc-macos.s): Use gcc
	3.3.6.
	2.
	* avcall/Makefile.in (avcall-powerpc.s): For MacOS, remove the .machine
	pseudo-op.
	* vacall/Makefile.in (vacall-powerpc.s): Likewise.
	* callback/vacall_r/Makefile.in (vacall-powerpc.s): Likewise.
	3.
	* PLATFORMS, */PLATFORMS: List powerpc-apple-darwin9.8.0 (gcc).
	* NEWS: Mention the status of MacOS X / powerpc.

2017-02-12  Bruno Haible  <bruno@clisp.org>

	Make the cross-build.sh script work on an x86_64-linux host.
	* cross-tools/cross-build.sh: Remove the binutils-*/gprof directory.
	* cross-tools/patches/binutils-*.patch: Backport a buffer overrun bug
	fix from binutils-2.17.

2017-02-12  Bruno Haible  <bruno@clisp.org>

	Make the cross-build.sh script more usable.
	* README-hacking: Add more text.
	* cross-tools/cross-build.sh: Don't assume the script is run from the
	current directory. Accept a relative HOST_CROSS_DIR.
	Reported by Don Cohen <don-ffcall@isis.cs3-inc.com>.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	Update documentation.
	* NEWS: List the progress since version 1.12.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	powerpc: Add support for OpenBSD.
	* avcall/Makefile.in (avcall-powerpc.s): Treat OpenBSD like NetBSD.
	* vacall/Makefile.in (vacall-powerpc.s): Likewise.
	* callback/vacall_r/Makefile.in (vacall-powerpc.s): Likewise.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	mips64: Add support for OpenBSD.
	On OpenBSD, cacheflush() is declared in <machine/sysarch.h>, see
	openbsd-src/blob/master/lib/libarch/mips64/cacheflush.3 .
	* trampoline/trampoline.c [__OpenBSD__]: Include <machine/sysarch.h>.
	* callback/trampoline_r/trampoline.c: Likewise.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	Support the LDFLAGS configure variable.
	* avcall/Makefile.in (LDFLAGS): New variable.
	Use it in all linking commands.
	* vacall/Makefile.in (LDFLAGS): New variable.
	Use it in all linking commands.
	* trampoline/Makefile.in (LDFLAGS): New variable.
	Use it in all linking commands.
	* callback/Makefile.in (LDFLAGS): New variable.
	Use it in all linking commands.
	* callback/vacall_r/Makefile.in (LDFLAGS): New variable.
	Use it in all linking commands.
	* callback/trampoline_r/Makefile.in (LDFLAGS): New variable.
	Use it in all linking commands.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	Fix build failure on Mac OS X 10.5 / x86_64. Regression from today.
	* common/asm-x86_64.sh: Recognize symbol in symbol(%rip) syntax.
	* vacall/Makefile.devel (vacall-x86_64-macro.S): Remove extra
	postprocessing, now done by common/asm-x86_64.sh.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	Fix build failure on Mac OS X 10.5 / i386. Regression from today.
	* common/asm-i386.sh: Simplify the function referencing code, originally
	for PIC on ELF platforms, so that it works also on non-ELF platforms.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	x86_64: Add support for the x32 ABI on Linux.
	* avcall/avcall.h.in: Optionally define __x86_64_x32__.
	(__avword, __av_longlong): Define differently for __x86_64_x32__.
	* avcall/Makefile.devel (avcall-x86_64-x32-linux.s): New target.
	* avcall/Makefile.in (avcall-x86_64-x32.lo, avcall-x86_64-x32.s): New
	targets.
	(clean): Remove also avcall-x86_64-x32.s.
	(SOURCE_FILES): Add avcall-x86_64-x32-linux.s.
	* vacall/vacall-x86_64.c: Don't declare a register variable in %rbp for
	GCC >= 4.9.
	For __x86_64_x32__, treat return of 'long long' and 'unsigned long long'
	differently.
	* vacall/vacall.h.in: Optionally define __x86_64_x32__.
	(__vaword, va_arg_longlong, va_return_longlong): Define differently for
	__x86_64_x32__.
	* callback/vacall_r/vacall_r.h.in: Likewise.
	* vacall/Makefile.devel (vacall-x86_64-x32-linux.s): New target.
	* vacall/Makefile.in (vacall-x86_64-x32.o, vacall-x86_64-x32.s): New
	targets.
	(clean): Remove also vacall-x86_64-x32.s.
	(SOURCE_FILES): Add vacall-x86_64-x32-linux.s.
	* trampoline/Makefile.devel (proto-x86_64-x32.s, tramp-x86_64-x32.o):
	New targets.
	* trampoline/proto-x86_64-x32.s: New generated file.
	* trampoline/tramp-x86_64-x32.s: New file.
	* trampoline/tramp-x86_64-x32.o: New generated file.
	* trampoline/trampoline.c: Add code for __x86_64_x32__.
	* callback/vacall_r/Makefile.devel (vacall-x86_64-x32-linux.s): New
	target.
	* callback/vacall_r/Makefile.in (vacall-x86_64-x32.lo,
	vacall-x86_64-x32.s): New targets.
	(clean): Remove also vacall-x86_64-x32.s.
	(SOURCE_FILES): Add vacall-x86_64-x32-linux.s.
	* callback/trampoline_r/Makefile.devel (proto-x86_64-x32.s,
	tramp-x86_64-x32.o): New targets.
	* callback/trampoline_r/proto.c: Specify env register for
	__x86_64_x32__.
	* callback/trampoline_r/proto-x86_64-x32.s: New generated file.
	* callback/trampoline_r/tramp-x86_64-x32.s: New file.
	* callback/trampoline_r/tramp-x86_64-x32.o: New generated file.
	* callback/trampoline_r/trampoline.c: Add code for __x86_64_x32__.
	* PLATFORMS, */PLATFORMS: List x86_64-unknown-linux (gcc -mx32).

2017-02-11  Bruno Haible  <bruno@clisp.org>

	Simplify platform defines. Reverts commit from 2010-07-20.
	* trampoline/trampoline.h.in: Remove CPU symbol definitions.
	* callback/trampoline_r/trampoline_r.h.in: Likewise.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	powerpc64: Add support for the ELFv2 ABI on Linux.
	* avcall/avcall-powerpc64.c: Handle small struct return in registers
	when __AV_REGISTER_STRUCT_RETURN is set.
	* avcall/avcall.h.in: Optionally define __powerpc64_elfv2__.
	(__AV_REGISTER_STRUCT_RETURN): Define also for __powerpc64__.
	(__av_reg_struct_return, __av_start_struct3): Define differently for
	__powerpc64_elfv2__.
	(av_float) [__powerpc64__]: Define in a simplified way if
	__AV_AIXCC_FLOAT_ARGS cannot be set.
	(__av_struct): Define differently for little-endian __powerpc64__.
	* avcall/Makefile.devel (avcall-powerpc64-elfv2-linux.s): New target.
	* avcall/Makefile.in (avcall-powerpc64-elfv2.lo,
	avcall-powerpc64-elfv2.s): New targets.
	(clean): Remove also avcall-powerpc64-elfv2.s.
	(SOURCE_FILES): Add avcall-powerpc64-elfv2-linux.s.
	* vacall/vacall-powerpc64.c: Handle small struct return in registers
	when __VA_REGISTER_STRUCT_RETURN is set.
	* vacall/vacall.h.in: Optionally define __powerpc64_elfv2__.
	(__VA_REGISTER_STRUCT_RETURN): Define also for __powerpc64__.
	(__va_reg_struct_return, __va_start_struct1): Define differently for
	__powerpc64_elfv2__.
	(__va_arg_adjusted): Define differently for little-endian __powerpc64__.
	(va_arg_float) [__powerpc64__]: Define in a simplified way if
	__VA_AIXCC_FLOAT_ARGS cannot be set.
	* callback/vacall_r/vacall_r.h.in: Likewise.
	* vacall/Makefile.devel (vacall-powerpc64-elfv2-linux.s): New target.
	* vacall/Makefile.in (vacall-powerpc64-elfv2.o,
	vacall-powerpc64-elfv2.s): New targets.
	(clean): Remove also vacall-powerpc64-elfv2.s.
	(SOURCE_FILES): Add vacall-powerpc64-elfv2-linux.s.
	* trampoline/Makefile.devel (proto-powerpc64-elfv2.s,
	tramp-powerpc64-elfv2.o): New targets.
	* trampoline/proto-powerpc64elfv2.s: New generated file.
	* trampoline/tramp-powerpc64elfv2.s: New file.
	* trampoline/tramp-powerpc64elfv2.o: New generated file.
	* trampoline/trampoline.c: Add code for __powerpc64_elfv2__.
	* callback/vacall_r/Makefile.devel (vacall-powerpc64-elfv2-linux.s):
	New target.
	* callback/vacall_r/Makefile.in (vacall-powerpc64-elfv2.lo,
	vacall-powerpc64-elfv2.s): New targets.
	(clean): Remove also vacall-powerpc64-elfv2.s.
	(SOURCE_FILES): Add vacall-powerpc64-elfv2-linux.s.
	* callback/trampoline_r/Makefile.devel (proto-powerpc64-elfv2.s,
	tramp-powerpc64-elfv2.o): New targets.
	* callback/trampoline_r/proto-powerpc64elfv2.s: New generated file.
	* callback/trampoline_r/tramp-powerpc64elfv2.s: New file.
	* callback/trampoline_r/tramp-powerpc64elfv2.o: New generated file.
	* callback/trampoline_r/trampoline.c: Add code for __powerpc64_elfv2__.
	* PLATFORMS, */PLATFORMS: List powerpc64le-unknown-linux (gcc).

2017-02-11  Bruno Haible  <bruno@clisp.org>

	powerpc64: Add support for AIX in a 64-bit build, with xlc.
	* avcall/avcall.h.in (__AV_AIXCC_FLOAT_ARGS, __AV_FLOAT_ARGS): New enum
	values.
	(__AV_START_FLAGS): Include __AV_FLOAT_ARGS.
	(av_float) [__powerpc64__]: Pick word according to whether
	__AV_AIXCC_FLOAT_ARGS is set.
	* vacall/vacall.h.in (__VA_AIXCC_FLOAT_ARGS, __VA_FLOAT_ARGS): New enum
	values.
	(__VA_START_FLAGS): Include __VA_FLOAT_ARGS.
	(va_arg_float) [__powerpc64__]: Pick word according to whether
	__VA_AIXCC_FLOAT_ARGS is set.
	* callback/vacall_r/vacall_r.h.in: Likewise.
	* PLATFORMS, */PLATFORMS: List powerpc-ibm-aix7.1.3.0 (xlc -q64).

2017-02-11  Bruno Haible  <bruno@clisp.org>

	powerpc64: Add support for AIX in a 64-bit build, with gcc.
	* avcall/avcall.h.in (__AV_AIXCC_STRUCT_ARGS): Define also on
	__powerpc64__.
	(__AV_STRUCT_ARGS): Set to __AV_AIXCC_STRUCT_ARGS on __powerpc64__ with
	AIX.
	(__av_struct): Define for __powerpc64__ like for __powerpc__.
	* vacall/vacall.h.in (__VA_AIXCC_STRUCT_ARGS): Define also on
	__powerpc64__.
	(__VA_STRUCT_ARGS): Set to __VA_AIXCC_STRUCT_ARGS on __powerpc64__ with
	AIX.
	(__va_arg_struct): Define for __powerpc64__ with AIX like for
	__powerpc__ with AIX.
	* callback/vacall_r/vacall_r.h.in: Likewise.
	* PLATFORMS, */PLATFORMS: List powerpc-ibm-aix7.1.3.0 (gcc -maix64).

2017-02-11  Bruno Haible  <bruno@clisp.org>

	powerpc64: Add support for AIX in a 64-bit build, part 1.
	* avcall/Makefile.devel (avcall-powerpc64-aix.s,
	avcall-powerpc64-linux.s): New targets.
	(avcall-powerpc64.s): Remove target.
	* avcall/Makefile.in (avcall-powerpc64.s): New target.
	(avcall-powerpc64.lo): Update.
	(clean): Remove also avcall-powerpc64.s.
	(SOURCE_FILES): Add avcall-powerpc64-aix.s, avcall-powerpc64-linux.s.
	Remove avcall-powerpc64.s.
	* vacall/Makefile.devel (vacall-powerpc64-aix.s,
	vacall-powerpc64-linux.s): New targets.
	(vacall-powerpc64.s): Remove target.
	* vacall/Makefile.in (vacall-powerpc64.s): New target.
	(vacall-powerpc64.o): Update.
	(clean): Remove also vacall-powerpc64.s.
	(SOURCE_FILES): Add vacall-powerpc64-aix.s, vacall-powerpc64-linux.s.
	Remove vacall-powerpc64.s.
	* callback/vacall_r/Makefile.devel (vacall-powerpc64-aix.s,
	vacall-powerpc64-linux.s): New targets.
	(vacall-powerpc64.s): Remove target.
	* callback/vacall_r/Makefile.in (vacall-powerpc64.s): New target.
	(vacall-powerpc64.lo): Update.
	(clean): Remove also vacall-powerpc64.s.
	(SOURCE_FILES): Add vacall-powerpc64-aix.s, vacall-powerpc64-linux.s.
	Remove vacall-powerpc64.s.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	powerpc64: Update Makefile.devel rules.
	* trampoline/Makefile.devel (CROSS_TOOL): New variable.
	(proto-powerpc64-aix.s): Update rule.
	* callback/trampoline_r/Makefile.devel (proto-powerpc64-aix.s): Update
	rule.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	hppa: Fix bug with structure return for sizes 5, 6, 7.
	* avcall/avcall-hppa.c: For structure return for sizes > 4, get 4 bytes
	from iret2.
	* vacall/vacall-hppa.c: For structure return for sizes > 4, put 4 bytes
	into iret2.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	x86_64: Fix bug with structure return for sizes < 16, != 1, 2, 4, 8.
	* avcall/avcall-x86_64.c: Treat structure returns for all sizes <= 16
	like those with sizes 1, 2, 4, 8, 16.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	Add some dedicated small structure return tests.
	* avcall/tests.c (Size1, Size2, Size3, Size4, Size7, Size8, Size12,
	Size15, Size16): New types.
	(S1_v, S2_v, S3_v, S4_v, S7_v, S8_v, S12_v, S15_v, S15_v): New tests.
	* vacall/tests.c: Likewise.
	* callback/tests.c: Likewise.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	Remove outdated no-op definition.
	* vacall/vacall.h.in (__VA_ANSI_FLOAT_ARGS): Remove enum value.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	powerpc: Don't special-case NetBSD.
	* vacall/vacall-powerpc.c: Remove special case of NetBSD.
	* callback/vacall_r/Makefile.devel (vacall-powerpc-netbsd-macro.S):
	Remove target.
	* callback/vacall_r/vacall-powerpc-netbsd.s: Remove file.
	* callback/vacall_r/vacall-powerpc-netbsd-macro.S: Remove file.
	* callback/vacall_r/Makefile.in (vacall-powerpc.s): Use
	vacall-powerpc-linux-macro.S instead of vacall-powerpc-netbsd-macro.S.
	(SOURCE_FILES): Remove vacall-powerpc-netbsd.s,
	vacall-powerpc-netbsd-macro.S.
	* callback/trampoline_r/proto.c: Remove special case of powerpc/NetBSD.
	* callback/trampoline_r/trampoline.c: Remove special case of
	powerpc/NetBSD.
	* callback/trampoline_r/test1.c: Likewise.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	m68k: Don't special-case NetBSD.
	* callback/call-used-registers.txt: Add comment about NetBSD.
	* vacall/vacall-m68k.c: Remove special case of NetBSD.
	* callback/vacall_r/Makefile.devel (vacall-m68k-netbsd-macro.S): Remove
	target.
	* callback/vacall_r/Makefile.in (vacall-m68k.s): Always use
	vacall-m68k.mit.S.
	(SOURCE_FILES): Remove vacall-m68k-netbsd-macro.S.
	* callback/trampoline_r/proto.c: Remove special case of m68k/NetBSD.
	* callback/trampoline_r/proto-m68k-netbsd.s: Remove file.
	* callback/trampoline_r/tramp-m68k-netbsd.s: Remove file.
	* callback/trampoline_r/tramp-m68k-netbsd.o: Remove file.
	* callback/trampoline_r/Makefile.devel (proto-m68k-netbsd.s,
	tramp-m68k-netbsd.o): Remove targets.
	* callback/trampoline_r/trampoline.c: Remove special case of
	m68k/NetBSD.
	* callback/trampoline_r/test1.c: Likewise.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	Revert BINFMT_ELF hack.
	* callback/elf-hack.txt: Explain the new workaround.
	* callback/vacall_r/Makefile.devel (vacall-i386-macro.S,
	vacall-m68k.mit.S, vacall-m68k.motorola.S, vacall-m68k-netbsd-macro.S,
	vacall-mipseb-macro.S, vacall-mipsel-macro.S, vacall-mipsn32eb-macro.S,
	vacall-mipsn32el-macro.S, vacall-mips64eb-macro.S,
	vacall-mips64el-macro.S, vacall-alpha-macro.S,
	vacall-powerpc-linux-macro.S, vacall-powerpc-netbsd-macro.S,
	vacall-powerpc-sysv4-macro.S, vacall-x86_64-macro.S,
	vacall-s390-macro.S): Don't postprocess through elfhack-*.sed.
	* callback/vacall_r/elfhack-alpha.S: Remove file.
	* callback/vacall_r/elfhack-alpha.sed: Remove file.
	* callback/vacall_r/elfhack-i386.S: Remove file.
	* callback/vacall_r/elfhack-i386.sed: Remove file.
	* callback/vacall_r/elfhack-m68k.S: Remove file.
	* callback/vacall_r/elfhack-m68k.sed: Remove file.
	* callback/vacall_r/elfhack-mips.S: Remove file.
	* callback/vacall_r/elfhack-mips.sed: Remove file.
	* callback/vacall_r/elfhack-mips64.S: Remove file.
	* callback/vacall_r/elfhack-mips64.sed: Remove file.
	* callback/vacall_r/elfhack-powerpc.S: Remove file.
	* callback/vacall_r/elfhack-powerpc.sed: Remove file.
	* callback/vacall_r/elfhack-s390.S: Remove file.
	* callback/vacall_r/elfhack-s390.sed: Remove file.
	* callback/vacall_r/elfhack-x86_64.S: Remove file.
	* callback/vacall_r/elfhack-x86_64.sed: Remove file.
	* callback/vacall_r/Makefile.in (ASPFLAGS): Don't set BINFMT_ELF.
	(SOURCE_FILES): Remove elhack-*.S and elfhack-*.sed.
	* callback/vacall_r/configure.ac: Don't invoke FFCALL_BINFMT_ELF.
	* callback/trampoline_r/trampoline.c: Remove code for BINFMT_ELF.
	* callback/trampoline_r/tramp-alpha.s: Remove trampelf.
	* callback/trampoline_r/tramp-alpha.o: Regenerated.
	* callback/trampoline_r/tramp-i386.s: Remove trampelf.
	* callback/trampoline_r/tramp-i386.o: Regenerated.
	* callback/trampoline_r/tramp-m68k-netbsd.s: Remove trampelf.
	* callback/trampoline_r/tramp-m68k-netbsd.o: Regenerated.
	* callback/trampoline_r/tramp-m68k.s: Remove trampelf.
	* callback/trampoline_r/tramp-m68k.o: Regenerated.
	* callback/trampoline_r/tramp-mips.s: Remove trampelf.
	* callback/trampoline_r/tramp-mips.o: Regenerated.
	* callback/trampoline_r/tramp-mips64.s: Remove trampelf.
	* callback/trampoline_r/tramp-mips64.o: Regenerated.
	* callback/trampoline_r/tramp-powerpc-sysv4.s: Remove trampelf.
	* callback/trampoline_r/tramp-powerpc-sysv4.o: Regenerated.
	* callback/trampoline_r/tramp-s390.s: Remove trampelf.
	* callback/trampoline_r/tramp-s390.o: Regenerated.
	* callback/trampoline_r/tramp-x86_64.s: Remove trampelf.
	* callback/trampoline_r/tramp-x86_64.o: Regenerated.
	* callback/trampoline_r/test1.c: Reenable on ELF platforms.
	* callback/trampoline_r/configure.ac: Don't invoke FFCALL_BINFMT_ELF.
	* callback/configure.ac: Don't invoke FFCALL_BINFMT_ELF_OPTION.
	* configure.ac: Don't invoke FFCALL_BINFMT_ELF_OPTION.
	* m4/binfmt-elf.m4: Remove file.
	* Makefile.in (SOURCE_FILES): Remove it.
	* README: Update regarding the ELF problem.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	Access __vacall_r through an indirection, except on SPARC.
	* callback/vacall_r/vacall_r.h.in (__vacall_r_t): New type.
	(get__vacall_r): New declaration.
	(__vacall_r): Remove declaration.
	* vacall/vacall-alpha.c [REENTRANT]: Make __vacall_r static.
	(get__vacall_r): New function.
	* vacall/vacall-arm.c: Likewise.
	* vacall/vacall-armhf.c: Likewise.
	* vacall/vacall-hppa.c: Likewise.
	* vacall/vacall-i386.c: Likewise.
	* vacall/vacall-ia64.c: Likewise.
	* vacall/vacall-m68k.c: Likewise.
	* vacall/vacall-mips.c: Likewise.
	* vacall/vacall-mipsn32.c: Likewise.
	* vacall/vacall-mips64.c: Likewise.
	* vacall/vacall-powerpc.c: Likewise.
	* vacall/vacall-powerpc64.c: Likewise.
	* vacall/vacall-s390.c: Likewise.
	* vacall/vacall-x86_64.c: Likewise.
	* callback/vacall_r/vacall-powerpc-netbsd-macro.S: Update accordingly.
	* callback/vacall_r/Makefile.devel (vacall-mipseb-linux.s,
	vacall-mipsel-linux.s): Use option -mno-explicit-relocs. Needed for
	IRIX.
	* callback/vacall_r/Makefile.in (vacall-i386.s): Remove space after '@'.
	Needed on Solaris/x86.
	* callback/callback.h.in (alloc_callback, is_callback): Use
	get__vacall_r().

2017-01-29  Bruno Haible  <bruno@clisp.org>

	s390: Regenerate .s and .S files with known compilers.
	* avcall/avcall-s390.c: Fix include statement.
	* avcall/Makefile.devel (avcall-s390.s): New target.
	* vacall/Makefile.devel (vacall-s390.s): New target.
	* callback/vacall_r/Makefile.devel (vacall-s390-linux.s): New target.
	* avcall/Makefile.in: Move avcall-s390.lo target.
	* vacall/Makefile.in: Move vacall-s390.o target.
	* avcall/avcall-s390.s: Remove from version control.
	* vacall/vacall-s390.s: Likewise.
	* callback/vacall_r/vacall-s390-linux.s: Likewise.
	* callback/vacall_r/vacall-s390-macro.S: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	x86_64: Regenerate .s and .S files with known compilers.
	* common/asm-x86_64.h (P2ALIGN): New macro.
	(ALIGN): Remove macro.
	* common/asm-x86_64.sh: Rewritten to consume ELF input. Produce L,
	P2ALIGN macros.
	* avcall/avcall-x86_64.c: Use __builtin_alloca instead of hacking on the
	'sp' register.
	* avcall/Makefile.devel (avcall-x86_64-linux.s): Rewritten.
	* vacall/Makefile.devel (vacall-x86_64-linux.s): Rewritten.
	* callback/vacall_r/Makefile.devel (vacall-x86_64-linux.s): Rewritten.
	* avcall/avcall-x86_64-linux.s: Remove from version control.
	* avcall/avcall-x86_64-macro.S: Likewise.
	* vacall/vacall-x86_64-linux.s: Likewise.
	* vacall/vacall-x86_64-macro.S: Likewise.
	* callback/vacall_r/vacall-x86_64-linux.s: Likewise.
	* callback/vacall_r/vacall-x86_64-macro.S: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	ia64: Regenerate .s and .S files with known compilers.
	* avcall/Makefile.devel (avcall-ia64.s): Rewritten.
	* vacall/Makefile.devel (vacall-ia64.s): Rewritten.
	* callback/vacall_r/Makefile.devel (vacall-ia64.s): Rewritten.
	* vacall/vacall-ia64.c: Put all local variables in a struct.
	* avcall/avcall-ia64.s: Remove from version control.
	* vacall/vacall-ia64.s: Likewise.
	* callback/vacall_r/vacall-ia64.s: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	powerpc, powerpc64: Regenerate .s and .S files with known compilers.
	* avcall/avcall-powerpc64.c: Use __builtin_alloca. Use an 'if' cascade
	instead of gotos.
	* avcall/Makefile.devel (avcall-powerpc-linux.s): New target.
	(avcall-powerpc-aix.s, avcall-powerpc-sysv4.s, avcall-powerpc-macos.s,
	avcall-powerpc64.s): Rewritten.
	* vacall/Makefile.devel (vacall-powerpc-linux.s): New target.
	(vacall-powerpc-aix.s, vacall-powerpc-sysv4.s, vacall-powerpc-macos.s,
	vacall-powerpc64.s): Rewritten.
	* callback/vacall_r/Makefile.devel (vacall-powerpc-linux.s): New target.
	(vacall-powerpc-aix.s, vacall-powerpc-sysv4-macro.S,
	vacall-powerpc-macos.s, vacall-powerpc64.s): Rewritten.
	* avcall/avcall-powerpc-aix.s: Remove from version control.
	* avcall/avcall-powerpc-linux.s: Likewise.
	* avcall/avcall-powerpc-sysv4.s: Likewise.
	* avcall/avcall-powerpc-macos.s: Likewise.
	* avcall/avcall-powerpc64.s: Likewise.
	* vacall/vacall-powerpc-aix.s: Likewise.
	* vacall/vacall-powerpc-linux.s: Likewise.
	* vacall/vacall-powerpc-sysv4.s: Likewise.
	* vacall/vacall-powerpc-macos.s: Likewise.
	* vacall/vacall-powerpc64.s: Likewise.
	* callback/vacall_r/vacall-powerpc-aix.s: Likewise.
	* callback/vacall_r/vacall-powerpc-linux.s: Likewise.
	* callback/vacall_r/vacall-powerpc-linux-macro.S: Likewise.
	* callback/vacall_r/vacall-powerpc-sysv4-macro.S: Likewise.
	* callback/vacall_r/vacall-powerpc-macos.s: Likewise.
	* callback/vacall_r/vacall-powerpc64.s: Likewise.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	armhf: Add support for arm with -mfloat-abi=hard.
	* avcall/avcall.h.in: Add code for __armhf__, especially __av_start1,
	__av_start_struct4, av_long, av_ulong, av_ptr, __av_longlong, av_float,
	av_double, __av_struct.
	* avcall/avcall-armhf.c: New file.
	* avcall/Makefile.devel (avcall-armhf-macro.S): New target.
	* avcall/Makefile.in (avcall-armhf.lo, avcall-armhf.s): New targets.
	(clean): Remove avcall-armhf.s.
	(SOURCE_FILES): Add avcall-armhf.c, avcall-armhf-macro.S.
	* vacall/vacall.h.in: Add code for __armhf__, especially va_arg_float,
	va_arg_double.
	* vacall/vacall-armhf.c: New file.
	* vacall/Makefile.devel (vacall-armhf-macro.S): New target.
	* vacall/Makefile.in (vacall-armhf.o, vacall-armhf.s): New targets.
	(clean): Remove vacall-armhf.s.
	(SOURCE_FILES): Add vacall-armhf.c, vacall-armhf-macro.S.
	* callback/vacall_r/Makefile.maint (COPIED_FILES): Add vacall-armhf.c.
	* Makefile.in (COPIED_FILES): Add callback/vacall_r/vacall-armhf.c.
	* callback/vacall_r/vacall_r.h.in: Add code for __armhf__, especially
	va_arg_float, va_arg_double.
	* callback/vacall_r/Makefile.devel (vacall-armhf-macro.S): New target.
	* callback/vacall_r/Makefile.in (vacall-armhf.lo, vacall-armhf.s): New
	targets.
	(clean): Remove vacall-armhf.s.
	(SOURCE_FILES): Add vacall-armhf.c, vacall-armhf-macro.S.
	* trampoline/trampoline.h.in: Optionally define __armhf__.
	* trampoline/trampoline.c: Treat __armhf__ like __arm__.
	* callback/trampoline_r/trampoline_r.h.in: Optionally define __armhf__.
	* callback/trampoline_r/trampoline.c: Treat __armhf__ like __arm__.
	* PLATFORMS, */PLATFORMS: List the armv7 machine with 'hard' floats.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	arm: Make callback work, for -mfloat-abi=soft.
	* callback/trampoline_r/Makefile.devel (CROSS_TOOL): New variable.
	(proto-arm.s): Use known cross-compiler and -fno-omit-frame-pointer.
	(tramp-arm.o): Use known cross-assembler.
	* callback/trampoline_r/proto-arm.s: Regenerated.
	* callback/trampoline_r/tramp-arm.s: Try three different trampolines.
	The third one, trampcallwithframe, works.
	* callback/trampoline_r/tramp-arm.o: Regenerated.
	* callback/call-used-registers.txt: Add comments about arm.
	* callback/trampoline_r/trampoline.c: For arm, use a trampoline with
	standard prologue with struct args and standard epilogue.
	* callback/trampoline_r/test1.c: On arm platforms, don't check the
	passing of env.
	* vacall/vacall-arm.c [REENTRANT]: Expect to find env on the stack, not
	in r12.
	* callback/vacall_r/Makefile.devel (vacall-arm-macro.S): Don't
	postprocess through elfhack-arm.sed.
	* callback/vacall_r/elfhack-arm.S: Remove file.
	* callback/vacall_r/elfhack-arm.sed: Remove file.
	* callback/vacall_r/Makefile.in (SOURCE_FILES): Remove elfhack-arm.S,
	elfhack-arm.sed.
	* PLATFORMS: List the arm5 machine with 'soft' floats.
	* callback/PLATFORMS: Likewise.

2017-01-31  Bruno Haible  <bruno@clisp.org>

	arm: Make vacall work, for -mfloat-abi=soft.
	* vacall/vacall.h.in [__arm__] (__va_alist): Enable the filler word.
	* callback/vacall_r/vacall_r.h.in: Likewise.
	* vacall/vacall-arm.c: Use a split struct to convince GCC to allocate
	room on the stack for the first 4 general-purpose argument words.
	* vacall/PLATFORMS: List the arm5 machine with 'soft' floats.
	* avcall/PLATFORMS: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	arm: Fulfil the constraint that the sp register must be 8-bytes-aligned.
	* avcall/avcall-arm.c: Enforce 8-bytes-alignment of the stack pointer.
	* vacall/vacall-arm.c: Likewise.

	arm: Remove support for old arm platforms without the ARM EABI.
	* avcall/avcall.h.in: Revisit all __arm__ and __ARMEL__ conditionals.
	* vacall/vacall.h.in: Likewise.
	* callback/vacall_r/vacall_r.h.in: Likewise.
	* avcall/avcall-arm.c: Renamed from avcall/avcall-armel.c.
	* avcall/Makefile.devel (avcall-arm-macro.S): Make sure it's usable for
	both endiannesses.
	(avcall-armel.s): Remove target.
	* avcall/Makefile.in (avcall-armel.lo): Remove target.
	(SOURCE_FILES): Remove avcall-armel.[cs].
	* vacall/vacall-arm.c: Renamed from vacall/vacall-armel.c.
	* vacall/Makefile.devel (vacall-arm-macro.S): Make sure it's usable for
	both endiannesses.
	(vacall-armel.s): Remove target.
	* vacall/Makefile.in (vacall-armel.o): Remove target.
	(SOURCE_FILES): Remove vacall-armel.[cs].
	* Makefile.in (COPIED_FILES): Remove callback/vacall_r/vacall-armel.c.
	* callback/vacall_r/Makefile.devel (vacall-arm-macro.S): Make sure it's
	usable for both endiannesses.
	(vacall-armel-macro.S): Remove target.
	* callback/vacall_r/Makefile.maint (COPIED_FILES): Remove
	vacall-armel.c.
	* callback/vacall_r/Makefile.in (vacall-armel.lo, vacall-armel.s):
	Remove targets.
	(clean): Don't remove vacall-armel.s.
	(SOURCE_FILES): Remove vacall-armel.c, vacall-armel-macro.S.

	arm: Regenerate .s and .S files with known compilers.
	* common/asm-arm.h (L, FUNBEGIN, FUNEND): New macros.
	* common/asm-arm.sh: Rewritten to consume ELF input. Produce L,
	FUNBEGIN, FUNEND macros.
	* avcall/Makefile.devel (avcall-arm-macro.S, avcall-armel.s): Rewritten.
	* vacall/Makefile.devel (vacall-arm-macro.S, vacall-armel.s): Rewritten.
	* callback/vacall_r/Makefile.devel (vacall-arm-macro.S,
	vacall-armel-macro.S): Rewritten.
	* avcall/avcall-arm-macro.S: Remove from version control.
	* avcall/avcall-armel.s: Likewise.
	* vacall/vacall-arm-macro.S: Likewise.
	* vacall/vacall-armel.s: Likewise.
	* callback/vacall_r/vacall-arm-macro.S: Likewise.
	* callback/vacall_r/vacall-armel-macro.S: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	hppa: Regenerate .s and .S files with known compilers.
	* common/asm-hppa.sh: New file.
	* common/asm-hppa.h: New file.
	* Makefile.in (SOURCE_FILES): Add them.
	* avcall/Makefile.devel (avcall-hppa-linux.s, avcall-hppa-macro.S): New
	targets.
	(avcall-hppa.s): Remove target.
	* avcall/Makefile.in (avcall-hppa.s): New target.
	(avcall-hppa.lo): Update.
	(clean): Remove also avcall-hppa.s.
	(SOURCE_FILES): Add avcall-hppa-linux.s, avcall-hppa-macro.S. Remove
	avcall-hppa.s.
	* vacall/vacall-hppa.c: Use explicit assignments to move the arguments
	to their stack locations.
	* vacall/Makefile.devel (vacall-hppa-linux.s, vacall-hppa-macro.S): New
	targets.
	(vacall-hppa.s): Remove target.
	* vacall/Makefile.in (vacall-hppa.s): New target.
	(vacall-hppa.o): Update.
	(clean): Remove also vacall-hppa.s.
	(SOURCE_FILES): Add vacall-hppa-linux.s, vacall-hppa-macro.S. Remove
	vacall-hppa.s.
	* callback/vacall_r/Makefile.devel (vacall-hppa-linux.s,
	vacall-hppa-macro.S): New targets.
	(vacall-hppa.s): Remove target.
	* callback/vacall_r/Makefile.in (vacall-hppa.s): New target.
	(vacall-hppa.lo): Update.
	(clean): Remove also vacall-hppa.s.
	(SOURCE_FILES): Add vacall-hppa-linux.s, vacall-hppa-macro.S. Remove
	vacall-hppa.s.
	* avcall/avcall-hppa.s: Remove from version control.
	* vacall/vacall-hppa.s: Likewise.
	* callback/vacall_r/vacall-hppa.s: Likewise.
	* PLATFORMS, */PLATFORMS: List hppa2.0w-hp-hpux11.31 (cc).

2017-01-29  Bruno Haible  <bruno@clisp.org>

	alpha: Regenerate .s and .S files with known compilers.
	* avcall/avcall-alpha.c: Use __builtin_alloca.
	* avcall/Makefile.devel (precompiled): Depend on avcall-alpha.s.
	(avcall-alpha.s): Rewritten.
	* vacall/vacall-alpha.c: Put all local variables in a struct.
	* vacall/Makefile.devel (precompiled): Depend on vacall-alpha.s.
	(vacall-alpha.s): Rewritten.
	* callback/vacall_r/Makefile.devel (precompiled): Depend on
	vacall-alpha-macro.S.
	(vacall-alpha-linux.s): New target.
	(vacall-alpha-macro.S): Rewritten.
	* callback/vacall_r/Makefile.in (SOURCE_FILES): Add
	vacall-alpha-linux.s.
	* avcall/avcall-alpha.s: Remove from version control.
	* vacall/vacall-alpha.s: Likewise.
	* callback/vacall_r/vacall-alpha-macro.S: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	sparc64: Fix for Solaris.
	* vacall/Makefile.devel (vacall-sparc64-linux.s): Produce code that does
	not make assumptions about the address space.
	* PLATFORMS, */PLATFORMS: List sparc64-sun-solaris2.10 (gcc -m64,
	cc -xarch=generic64).

2017-01-29  Bruno Haible  <bruno@clisp.org>

	sparc, sparc64: Regenerate .s and .S files with known compilers.
	* common/asm-sparc.h (L, FUNBEGIN, FUNEND): New macros.
	* common/asm-sparc.sh: Rewritten to consume ELF input. Produce L,
	FUNBEGIN, FUNEND macros.
	* common/asm-sparc64.sh: Remove file.
	* Makefile.in (SOURCE_FILES): Remove common/asm-sparc64.sh.
	* avcall/Makefile.devel (precompiled): Depend on avcall-sparc-macro.S
	and avcall-sparc64-macro.S.
	(avcall-sparc-linux.s, avcall-sparc64-linux.s): New target.
	(avcall-sparc-macro.S, avcall-sparc64-macro.S): Rewritten.
	* avcall/Makefile.in (SOURCE_FILES): Add avcall-sparc-linux.s,
	avcall-sparc64-linux.s.
	* vacall/Makefile.devel (precompiled): Depend on vacall-sparc-macro.S
	and vacall-sparc64-macro.S.
	(vacall-sparc-linux.s, vacall-sparc64-linux.s): New target.
	(vacall-sparc-macro.S, vacall-sparc64-macro.S): Rewritten.
	* vacall/Makefile.in (SOURCE_FILES): Add vacall-sparc-linux.s,
	vacall-sparc64-linux.s.
	* callback/vacall_r/Makefile.devel (precompiled): Depend on
	vacall-sparc-macro.S and vacall-sparc64-macro.S.
	(vacall-sparc-linux.s, vacall-sparc64-linux.s): New target.
	(vacall-sparc-macro.S, vacall-sparc64-macro.S): Rewritten.
	* callback/vacall_r/Makefile.in (SOURCE_FILES): Add
	vacall-sparc-linux.s, vacall-sparc64-linux.s.
	* avcall/avcall-sparc-macro.S: Remove from version control.
	* avcall/avcall-sparc64-macro.S: Likewise.
	* vacall/vacall-sparc-macro.S: Likewise.
	* vacall/vacall-sparc64-macro.S: Likewise.
	* callback/vacall_r/vacall-sparc-macro.S: Likewise.
	* callback/vacall_r/vacall-sparc64-macro.S: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	mips64: Make it work on Linux (mips64, mips64el) with "gcc -mabi=64".
	* avcall/avcall-mips64.c: Add code for struct returns on _MIPSEL.
	* avcall/Makefile.devel (avcall-mips64eb-linux.s,
	avcall-mips64eb-macro.S, avcall-mips64el-linux.s,
	avcall-mips64el-macro.S): New targets.
	(avcall-mips64-linux.s, avcall-mips64-macro.S): Remove targets.
	* avcall/Makefile.in (avcall-mips64.s): Take into account the
	ENDIANNESS.
	(SOURCE_FILES): Add avcall-mips64eb-linux.s, avcall-mips64el-linux.s,
	avcall-mips64eb-macro.S, avcall-mips64el-macro.S.
	Remove avcall-mips64-linux.s, avcall-mips64-macro.S.
	* vacall/vacall-mips64.c: Add code for struct returns on _MIPSEL.
	* vacall/Makefile.devel (vacall-mips64eb-linux.s,
	vacall-mips64eb-macro.S, vacall-mips64el-linux.s,
	vacall-mips64el-macro.S): New targets.
	(vacall-mips64-linux.s, vacall-mips64-macro.S): Remove targets.
	* vacall/Makefile.in (vacall-mips64.s): Take into account the
	ENDIANNESS.
	(SOURCE_FILES): Add vacall-mips64eb-linux.s, vacall-mips64el-linux.s,
	vacall-mips64eb-macro.S, vacall-mips64el-macro.S.
	Remove vacall-mips64-linux.s, vacall-mips64-macro.S.
	* callback/vacall_r/Makefile.devel (vacall-mips64eb-linux.s,
	vacall-mips64eb-macro.S, vacall-mips64el-linux.s,
	vacall-mips64el-macro.S): New targets.
	(vacall-mips64-linux.s, vacall-mips64-macro.S): Remove targets.
	* callback/vacall_r/Makefile.in (vacall-mips64.s): Take into account the
	ENDIANNESS.
	(SOURCE_FILES): Add vacall-mips64eb-linux.s, vacall-mips64el-linux.s,
	vacall-mips64eb-macro.S, vacall-mips64el-macro.S.
	Remove vacall-mips64-linux.s, vacall-mips64-macro.S.
	* PLATFORMS, */PLATFORMS: List mips64-unknown-linux (gcc -mabi=64).

2017-01-29  Bruno Haible  <bruno@clisp.org>

	mipsn32: Make it work on Linux (mips64, mips64el) with "gcc -mabi=n32".
	* avcall/avcall-mipsn32.c: Add code for struct returns on _MIPSEL.
	* avcall/Makefile.devel (avcall-mipsn32eb-linux.s,
	avcall-mipsn32eb-macro.S, avcall-mipsn32el-linux.s,
	avcall-mipsn32el-macro.S): New targets.
	(avcall-mipsn32-linux.s, avcall-mipsn32-macro.S): Remove targets.
	* avcall/Makefile.in (avcall-mipsn32.s): Take into account the
	ENDIANNESS.
	(SOURCE_FILES): Add avcall-mipsn32eb-linux.s,
	avcall-mipsn32el-linux.s, avcall-mipsn32eb-macro.S,
	avcall-mipsn32el-macro.S.
	Remove avcall-mipsn32-linux.s, avcall-mipsn32-macro.S.
	* vacall/vacall-mipsn32.c: Add code for struct returns on _MIPSEL.
	* vacall/Makefile.devel (vacall-mipsn32eb-linux.s,
	vacall-mipsn32eb-macro.S, vacall-mipsn32el-linux.s,
	vacall-mipsn32el-macro.S): New targets.
	(vacall-mipsn32-linux.s, vacall-mipsn32-macro.S): Remove targets.
	* vacall/Makefile.in (vacall-mipsn32.s): Take into account the
	ENDIANNESS.
	(SOURCE_FILES): Add vacall-mipsn32eb-linux.s, vacall-mipsn32el-linux.s,
	vacall-mipsn32eb-macro.S, vacall-mipsn32el-macro.S.
	Remove vacall-mipsn32-linux.s, vacall-mipsn32-macro.S.
	* callback/vacall_r/Makefile.devel (vacall-mipsn32eb-linux.s,
	vacall-mipsn32eb-macro.S, vacall-mipsn32el-linux.s,
	vacall-mipsn32el-macro.S): New targets.
	(vacall-mipsn32-linux.s, vacall-mipsn32-macro.S): Remove targets.
	* callback/vacall_r/Makefile.in (vacall-mipsn32.s): Take into account
	the ENDIANNESS.
	(SOURCE_FILES): Add vacall-mipsn32eb-linux.s, vacall-mipsn32el-linux.s,
	vacall-mipsn32eb-macro.S, vacall-mipsn32el-macro.S.
	Remove vacall-mipsn32-linux.s, vacall-mipsn32-macro.S.
	* PLATFORMS, */PLATFORMS: List mips64-unknown-linux (gcc -mabi=n32).

2017-01-29  Bruno Haible  <bruno@clisp.org>

	mips: Make it work on Linux (mips, mipsel) with "gcc -mabi=32".
	* m4/endianness.m4: New file.
	* avcall/Makefile.devel (avcall-mipseb-linux.s, avcall-mipseb-macro.S,
	avcall-mipsel-linux.s, avcall-mipsel-macro.S): New targets.
	(avcall-mips-linux.s, avcall-mips-macro.S): Remove targets.
	* avcall/configure.ac: Invoke FFCALL_ENDIANNESS.
	* avcall/Makefile.in (avcall-mips.s): Take into account the ENDIANNESS.
	(SOURCE_FILES): Add avcall-mipseb-linux.s, avcall-mipsel-linux.s,
	avcall-mipseb-macro.S, avcall-mipsel-macro.S.
	Remove avcall-mips-linux.s, avcall-mips-macro.S.
	* vacall/Makefile.devel (vacall-mipseb-linux.s, vacall-mipseb-macro.S,
	vacall-mipsel-linux.s, vacall-mipsel-macro.S): New targets.
	(vacall-mips-linux.s, vacall-mips-macro.S): Remove targets.
	* vacall/configure.ac: Invoke FFCALL_ENDIANNESS.
	* vacall/Makefile.in (vacall-mips.s): Take into account the ENDIANNESS.
	(SOURCE_FILES): Add vacall-mipseb-linux.s, vacall-mipsel-linux.s,
	vacall-mipseb-macro.S, vacall-mipsel-macro.S.
	Remove vacall-mips-linux.s, vacall-mips-macro.S.
	* callback/vacall_r/Makefile.devel (vacall-mipseb-linux.s,
	vacall-mipseb-macro.S, vacall-mipsel-linux.s, vacall-mipsel-macro.S):
	New targets.
	* callback/vacall_r/configure.ac: Invoke FFCALL_ENDIANNESS.
	* callback/vacall_r/Makefile.in (vacall-mips.s): Take into account the
	ENDIANNESS.
	(SOURCE_FILES): Add vacall-mipseb-linux.s, vacall-mipsel-linux.s,
	vacall-mipseb-macro.S, vacall-mipsel-macro.S.
	Remove vacall-mips-linux.s, vacall-mips-macro.S.
	* PLATFORMS, */PLATFORMS: List mips-unknown-linux (gcc -mabi=32).

2017-01-29  Bruno Haible  <bruno@clisp.org>

	mips, mipsn32, mips64: Regenerate .s and .S files with known compilers.
	This restores support for IRIX with cc -32 (regression from 2008-09-26).
	* common/asm-mips.sh: Rewritten to consume ELF input.
	* avcall/avcall-mips.c: Rely on the compiler to set $25 at each
	function call. Add comment about broken GCC 3.3.x and 3.4.x. Avoid
	'switch' statements, to make the generated code position-independent.
	Declare iret2 as single __avword.
	* avcall/avcall-mipsn32.c: Use __builtin_alloca. Rely on the compiler
	to set $25 at each function call.
	* avcall/avcall-mips64.c: Likewise.
	* avcall/Makefile.devel (precompiled): Depend on avcall-mips-macro.S,
	avcall-mipsn32-macro.S, avcall-mips64-macro.S.
	(avcall-mips-linux.s, avcall-mipsn32-linux.s, avcall-mips64-linux.s):
	New targets.
	(avcall-mips-macro.S, avcall-mipsn32-macro.S, avcall-mips64-macro.S):
	Rewritten.
	* avcall/Makefile.in (SOURCE_FILES): Add avcall-mips-linux.s,
	avcall-mipsn32-linux.s, avcall-mips64-linux.s.
	* vacall/vacall-mips.c: Rely on the compiler to set $25 at each
	function call.
	* vacall/vacall-mipsn32.c: Likewise.
	* vacall/vacall-mips64.c: Likewise. Add offset to references of
	arguments in the stack.
	* vacall/Makefile.devel (precompiled): Depend on vacall-mips-macro.S,
	vacall-mipsn32-macro.S, vacall-mips64-macro.S.
	(vacall-mips-linux.s, vacall-mipsn32-linux.s, vacall-mips64-linux.s):
	New targets.
	(vacall-mips-macro.S): Rewritten.
	(vacall-mipsn32-macro.S): Rewritten. Update the postprocessing hack.
	(vacall-mips64-macro.S): Rewritten. Add a postprocessing hack.
	* vacall/Makefile.in (SOURCE_FILES): Add vacall-mips-linux.s,
	vacall-mipsn32-linux.s, vacall-mips64-linux.s.
	* callback/vacall_r/Makefile.devel (precompiled): Depend on
	vacall-mips-macro.S, vacall-mipsn32-macro.S, vacall-mips64-macro.S.
	(vacall-mips-linux.s, vacall-mipsn32-linux.s, vacall-mips64-linux.s):
	New targets.
	(vacall-mips-macro.S): Rewritten.
	(vacall-mipsn32-macro.S): Rewritten. Update the postprocessing hack.
	(vacall-mips64-macro.S): Rewritten. Add a postprocessing hack.
	* callback/vacall_r/Makefile.in (SOURCE_FILES): Add vacall-mips-linux.s,
	vacall-mipsn32-linux.s, vacall-mips64-linux.s.
	* avcall/avcall-mips-macro.S: Remove from version control.
	* avcall/avcall-mipsn32-macro.S: Likewise.
	* avcall/avcall-mips64-macro.S: Likewise.
	* vacall/vacall-mips-macro.S: Likewise.
	* vacall/vacall-mipsn32-macro.S: Likewise.
	* vacall/vacall-mips64-macro.S: Likewise.
	* callback/vacall_r/vacall-mips-macro.S: Likewise.
	* callback/vacall_r/vacall-mipsn32-macro.S: Likewise.
	* callback/vacall_r/vacall-mips64-macro.S: Likewise.
	* PLATFORMS, */PLATFORMS: List mips-sgi-irix6.5 (cc -32).

2017-01-29  Bruno Haible  <bruno@clisp.org>

	m68k: Regenerate .s and .S files with known compilers.
	* common/asm-m68k.h (L, FUNBEGIN, FUNEND): New macros.
	* common/asm-m68k.sh: Expect a syntax argument. Produce L, FUNBEGIN,
	FUNEND macros.
	* avcall/avcall-m68k.c: Use __builtin_alloca instead of hacking on the
	'sp' register.
	* avcall/Makefile.devel (precompiled): Depend on avcall-m68k.mit.S and
	avcall-m68k.motorola.S.
	(avcall-m68k-linux.s, avcall-m68k-sun.s): New targets.
	(avcall-m68k.mit.S, avcall-m68k.motorola.S): Rewritten.
	* avcall/Makefile.in (avcall-m68k.s): Depend on avcall-m68k.motorola.S
	instead of avcall-m68k.mot.s.
	(SOURCE_FILES): Add avcall-m68k-linux.s, avcall-m68k-sun.s.
	Replace avcall-m68k.mot.s with avcall-m68k.motorola.S.
	* vacall/Makefile.devel (precompiled): Depend on vacall-m68k.mit.S and
	vacall-m68k.motorola.S.
	(vacall-m68k-linux.s, vacall-m68k-sun.s): New targets.
	(vacall-m68k.mit.S, vacall-m68k.motorola.S): Rewritten.
	* vacall/Makefile.in (vacall-m68k.s): Depend on vacall-m68k.motorola.S
	instead of vacall-m68k.mot.s.
	(SOURCE_FILES): Add vacall-m68k-linux.s,
	vacall-m68k-sun.s, vacall-mips-linux.s, vacall-mipsn32-linux.s,
	Replace vacall-m68k.mot.s with vacall-m68k.motorola.S.
	* callback/vacall_r/Makefile.devel (precompiled): Depend on
	vacall-m68k.mit.S, vacall-m68k.motorola.S, vacall-m68k-netbsd-macro.S.
	(vacall-m68k-linux.s, vacall-m68k-sun.s): New targets.
	(vacall-m68k.mit.S, vacall-m68k.motorola.S, vacall-m68k-netbsd-macro.S):
	Rewritten.
	* callback/vacall_r/Makefile.in (vacall-m68k.s): Depend on
	vacall-m68k.motorola.S instead of vacall-m68k.mot.s.
	(SOURCE_FILES): Add vacall-m68k-linux.s, vacall-m68k-sun.s.
	Replace vacall-m68k.mot.s with vacall-m68k.motorola.S.
	* avcall/avcall-m68k.mit.S: Remove from version control.
	* avcall/avcall-m68k.mot.s: Likewise.
	* callback/vacall_r/vacall-m68k-netbsd-macro.S: Likewise.
	* callback/vacall_r/vacall-m68k.mit.S: Likewise.
	* callback/vacall_r/vacall-m68k.mot.s: Likewise.
	* vacall/vacall-m68k.mit.S: Likewise.
	* vacall/vacall-m68k.mot.s: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	i386: Regenerate .s and .S files with known compilers.
	* common/asm-i386.hh (P2ALIGN): New macro.
	(FUNEND): Take two arguments.
	* common/asm-i386.sh: Rewritten to consume ELF input. Produce P2ALIGN
	macro. Handle indirect call statements.
	* avcall/avcall-i386.c: Use __builtin_alloca instead of hacking on the
	'sp' register.
	* avcall/Makefile.devel (precompiled): Depend on avcall-i386-macro.S.
	(avcall-i386-linux.s): New target.
	(avcall-i386-macro.S): Rewritten.
	* avcall/Makefile.in (SOURCE_FILES): Add avcall-i386-linux.s.
	* vacall/vacall-i386.c: Insert the appropriate stack cleanup before
	'ret $4'.
	* vacall/Makefile.devel (precompiled): Depend on vacall-i386-macro.S.
	(vacall-i386-linux.s): New target.
	(vacall-i386-macro.S): Rewritten.
	* vacall/Makefile.in (SOURCE_FILES): Add vacall-i386-linux.s.
	* callback/vacall_r/Makefile.devel (precompiled): Depend on
	vacall-i386-macro.S.
	(vacall-i386-linux.s): New target.
	(vacall-i386-macro.S): Rewritten.
	* callback/vacall_r/Makefile.in (SOURCE_FILES): Add vacall-i386-linux.s.
	* avcall/avcall-i386-macro.S: Remove from version control.
	* vacall/vacall-i386-macro.S: Likewise.
	* callback/vacall_r/vacall-i386-macro.S: Likewise.

2017-02-11  Bruno Haible  <bruno@clisp.org>

	Prepare for regenerating .s and .S files with known compilers.
	This serves three purposes:
	1. Being able to regenerate everything if avcall.h.in or vacall.h.in
	   changes.
	2. Allow safe stack unwinding across avcall and vacall invocations.
	3. Allow distributing libavcall and libcallback as shared libraries.
	* README-hacking: Document the cross compilers.
	* cross-tools/cross.conf: New file.
	* cross-tools/cross-build.sh: New file.
	* cross-tools/cross.in: New file.
	* cross-tools/patches/*.patch: New files.
	* avcall/Makefile.devel (GCCFLAGS): Add -fno-omit-frame-pointer, -fPIC.
	(CROSS_TOOL): New variable.
	* vacall/Makefile.devel (GCCFLAGS): Add -fno-omit-frame-pointer.
	(CROSS_TOOL): New variable.
	* callback/vacall_r/Makefile.devel (GCCFLAGS): Add
	-fno-omit-frame-pointer, -fPIC.
	(CROSS_TOOL): New variable.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	s390: Fix long long args.
	* avcall/avcall.h.in (__av_longlong): Align only on a 4-bytes boundary,
	not on an 8-bytes boundary. Fix condition for switching from register
	args to stack args.
	* vacall/vacall.h.in (__va_arg_leftadjusted, __va_arg_rightadjusted):
	Fix condition for switching from register args to stack args.
	(__va_arg_longlong): Use __va_arg.
	* callback/vacall_r/vacall_r.h.in (__va_arg_leftadjusted,
	__va_arg_rightadjusted): Fix condition for switching from register args
	to stack args.
	(__va_arg_longlong): Use __va_arg.
	* PLATFORMS, */PLATFORMS: List s390x-ibm-linux with "gcc -m31".

2017-01-29  Bruno Haible  <bruno@clisp.org>

	s390: Fix trampoline.
	* trampoline/trampoline.c [__s390__]: Fix is_tramp macro.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	ia64: Fix struct args.
	* avcall/avcall.h.in (__av_struct): Tweak #if.
	* avcall/avcall-ia64.c: Fix comment.
	* vacall/vacall.h.in (__va_arg_struct): Change #if to match
	callback/vacall_r/vacall_r.h.in.
	* callback/call-used-registers.txt: Fix info about ia64.
	* callback/vacall_r/vacall_r.h.in (__va_arg_struct): Tweak #if.
	* callback/trampoline_r/trampoline.c [__ia64__]: Fix is_tramp macro.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	powerpc64: Make trampoline work on AIX in a 64-bit build.
	* trampoline/tramp-powerpc64-aix.S: Add assembler pseudo-ops for AIX.
	* callback/trampoline_r/tramp-powerpc64-aix.S: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	arm: Comments.
	* avcall/avcall-arm.c: Add comments.
	* avcall/avcall.h.in: Fix comment.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	arm: Make trampoline work on real ARM harware.
	The cache flushing code in cache-arm.c and cache-armel.c are for old
	Linux versions. Nowadays the best way is through the GCC builtin
	function __clear_cache (which makes the appropriate Linux system call).
	* trampoline/trampoline.c (alloc_trampoline) [__arm__]: Invoke GCC
	builtin function __clear_cache. Remove call to __TR_clear_cache.
	* callback/trampoline_r/trampoline.c (alloc_trampoline_r) [__arm__]:
	Likewise.
	* trampoline/cache-arm.[cs]: Remove files.
	* trampoline/cache-armel.[cs]: Remove files.
	* callback/trampoline_r/Makefile.maint (COPIED_FILES): Remove
	cache-arm*.
	* Makefile.in (COPIED_FILES): Remove callback/trampoline_r/cache-arm*.
	* trampoline/Makefile.devel (cache-armel.s): Remove target.
	* trampoline/configure.ac (CPU_OBJECTS): Leave empty for arm and armel.
	* trampoline/Makefile.in (cache-arm.o, cache-armel.o): Remove targets.
	(SOURCE_FILES): Remove cache-arm.[cs], cache-armel.[cs].
	* callback/trampoline_r/Makefile.devel (cache-armel.s): Remove target.
	* callback/trampoline_r/configure.ac (CPU_OBJECTS): Leave empty for arm
	and armel.
	* callback/trampoline_r/Makefile.in (cache-arm.lo, cache-armel.lo):
	Remove targets.
	(SOURCE_FILES): Remove cache-arm.[cs], cache-armel.[cs].
	* trampoline/PLATFORMS: Add two ARM platforms.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	hppa: Fix struct returns.
	* avcall/avcall.h.in [__hppa__]: Don't set __AV_PCC_STRUCT_RETURN by
	default.
	* avcall/avcall-hppa.c: Fix comment.
	* vacall/vacall.h.in [__hppa__]: Don't set __VA_PCC_STRUCT_RETURN by
	default.
	* callback/vacall_r/vacall_r.h.in [__hppa__]: Don't set
	__VA_PCC_STRUCT_RETURN by default.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	sparc64: Fix the passing of 'float' arguments.
	* vacall/vacall.h.in (va_arg_float): Expect the float in the upper half
	of the 8-bytes word.
	* callback/vacall_r/vacall_r.h.in (va_arg_float): Likewise.
	* PLATFORMS, */PLATFORMS: List sparc64-unknown-linux (gcc).

2017-01-29  Bruno Haible  <bruno@clisp.org>

	sparc64: Fix a compiler warning.
	* vacall/vacall.h.in (__va_arg_struct): Add a cast to pointer.
	* callback/vacall_r/vacall_r.h.in: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	mips64: Fix trampoline_r.
	* callback/trampoline_r/trampoline.c: Fix conditionals that involve
	__mips64__.
	* callback/trampoline_r/test1.c: Fix duplicate declaration of 'env' on
	mips64.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	mipsn32, mips64: Fix for little-endian platforms.
	* vacall/vacall.h.in (__va_arg_adjusted): Use same conditional on
	_MIPSEB and _MIPSEL as in callback/vacall_r/vacall_r.h.in.
	* callback/vacall_r/vacall_r.h.in: Reorder parts of a #if condition.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	mips: Fix for Linux with "gcc -mabi=32".
	* trampoline/tramp-mips.old.o: Renamed from trampoline/tramp-mips.o.
	* trampoline/tramp-mips.old.s: Renamed from trampoline/tramp-mips.s.
	* trampoline/tramp-mips.s: New file, based on
	trampoline/tramp-mipsn32.s.
	* trampoline/tramp-mips.o: New generated file.
	* trampoline/trampoline.c: For __mips__, use the same trampoline as for
	__mipsn32__.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	mips: Fix for Linux with "gcc -mabi=32".
	* vacall/vacall.h.in (__va_arg_adjusted): Use same conditional on
	_MIPSEB as in callback/vacall_r/vacall_r.h.in.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	mipsn32, mips64: Fix struct args and struct returns with newer GCC.
	* avcall/avcall.h.in: For mipsn32 and mips64 in gcc >= 3.4:
	1. Don't set __AV_GCC_STRUCT_RETURN.
	2. Use __AV_SGICC_STRUCT_ARGS.
	* vacall/vacall.h.in: For mipsn32 and mips64 in gcc >= 3.4:
	1. Don't set __VA_GCC_STRUCT_RETURN.
	2. Use __VA_SGICC_STRUCT_ARGS.
	* callback/vacall_r/vacall_r.h.in: Likewise.
	* PLATFORMS, */PLATFORMS: List mips-sgi-irix6.5 (gcc -mabi=n32).

2017-01-29  Bruno Haible  <bruno@clisp.org>

	x86_64: Fix bug with structure arguments larger than 16 bytes.
	* avcall/avcall.h.in (__av_struct): Pass structures > 16 bytes on the
	stack.
	* vacall/vacall.h.in (__va_arg_adjusted): Expect types > 16 bytes passed
	on the stack.
	* callback/vacall_r/vacall_r.h.in (__va_arg_adjusted): Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	i386, x86_64, sparc, sparc64: Fix for the Sun Studio 11 compiler.
	When preprocessing a .S file, "cc -E" activates some other preprocessor
	than the usual C preprocessor.
	* avcall/Makefile.in (avcall-i386.s, avcall-sparc.s, avcall-sparc64.s,
	avcall-x86_64.s): Feed the input to the preprocessor through standard
	input. Postprocess to remove space after '.' and '@'.
	* vacall/Makefile.in (vacall-i386.s, vacall-sparc.s, vacall-sparc64.s,
	vacall-x86_64.s): Likewise.
	* trampoline/Makefile.in (cache-sparc.s, cache-sparc64.s): Likewise.
	* callback/vacall_r/Makefile.in (vacall-i386.s, vacall-sparc.s,
	vacall-sparc64.s, vacall-x86_64.s): Likewise.
	* callback/trampoline_r/Makefile.in (cache-sparc.s, cache-sparc64.s):
	Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	List platforms on which libffcall is known to work.
	* PLATFORMS, */PLATFORMS: List i386-pc-solaris2.10 (gcc),
	mips-sgi-irix6.5 (cc -n32), sparc-unknown-linux (gcc),
	alphaev67-unknown-linux (gcc), powerpc-ibm-aix7.1.3.0 (xlc, gcc).

2017-01-29  Bruno Haible  <bruno@clisp.org>

	Don't violate ISO C rules.
	* avcall/avcall.h.in (__av_struct): Don't store an unaligned pointer
	in (LIST).aptr.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	Don't make side-effects before overflow checking.
	* avcall/avcall.h.in: In most macro definitions, modify (LIST).aptr
	after checking that it will remain within range, not before. But
	continue to modify (LIST).aptr before storing the argument, as this
	makes it easier w.r.t. to the alignment. This produces some more
	duplicate expressions that the compiler will eliminate. But the code
	is clearer this way.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	Add more floating-point, mixed-number, general-purpose args tests.
	* avcall/tests.c (f_f24, d_iiidi, d_fdi, ll_iiilli, D_Dfd,
	l_l0K, ..., l_l6K, ll_l2ll, ..., ll_l7ll, d_l2d, ... d_l7d): New tests.
	* vacall/tests.c: Likewise.
	* callback/tests.c: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	Enable the 'long long' tests in callback.
	* callback/configure.ac: Invoke AC_TYPE_LONG_LONG_INT.
	* callback/tests.c: Test HAVE_LONG_LONG_INT, not HAVE_LONG_LONG.
	* avcall/avcall.h.in: Fix comment.
	* vacall/vacall.h.in: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	devel: Make it easy to keep the autogenerated files up-to-date.
	* avcall/Makefile.devel: Make all *.[sS] files depend on this file.
	(precompiled): Comment out all dependencies.
	* vacall/Makefile.devel: Likewise.
	* callback/vacall_r/Makefile.devel: Likewise.
	* callback/vacall_r/Makefile.maint (copied-files): New target.
	* callback/trampoline_r/Makefile.maint (copied-files): New target.
	* autogen.sh: To copy the files, just invoke these targets.
	* Makefile.devel (precompiled): New target.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	configuration: Support the AR configure variable.
	Needed for a 64-bit build on AIX.
	* vacall/configure.ac: Invoke gl_PROG_AR_RANLIB instead of
	AC_PROG_RANLIB.
	* trampoline/configure.ac: Likewise.
	* vacall/Makefile.in (AR): Use value determined by gl_PROG_AR_RANLIB.
	* trampoline/Makefile.in (AR): Likewise.
	* avcall/Makefile.in (AR): Use value determined by libtool.
	* callback/Makefile.in (AR): Likewise.
	* callback/vacall_r/Makefile.in (AR): Likewise.
	* callback/trampoline_r/Makefile.in (AR): Likewise.
	* avcall/configure.ac: Reorder (a no-op).
	* callback/configure.ac: Likewise.
	* callback/vacall_r/configure.ac: Likewise.
	* callback/trampoline_r/configure.ac: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	configuration: Simplification.
	* m4/general.m4 (CL_CONFIG_SUBDIRS): Remove macro.
	* configure.ac: Use AC_CONFIG_SUBDIRS instead of CL_CONFIG_SUBDIRS.
	* callback/configure.ac: Likewise.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	Revert the addition of a powerpc64le port by Masanori Mitsugi
	(commit from 2015-08-23).

2017-01-29  Bruno Haible  <bruno@clisp.org>

	Add support for some Linux+PaX or SELinux kernels and for HardenedBSD.
	Reported
	- by Gerard Milmeister in https://sourceforge.net/p/clisp/bugs/356/,
	- by Pradeep Kumar in https://sourceforge.net/p/clisp/bugs/415/,
	- by Don Cohen in
	  http://lists.gnu.org/archive/html/libffcall/2016-12/msg00002.html,
	- by Nelson Beebe.
	* m4/codeexec.m4 (FFCALL_CODEEXEC_PAX): New macro.
	* m4/general.m4 (FFCALL_COMMON_TRAMPOLINE): Require it.
	* trampoline/trampoline.c (EXECUTABLE_VIA_MALLOC_THEN_MPROTECT,
	EXECUTABLE_VIA_MMAP_THEN_MPROTECT, EXECUTABLE_VIA_MMAP_FILE_SHARED):
	New macros.
	(EXECUTABLE_VIA_MPROTECT, EXECUTABLE_VIA_MMAP_ANONYMOUS,
	EXECUTABLE_VIA_MMAP_DEVZERO): Remove macros.
	(MAP_FILE, MAP_VARIABLE): Define fallbacks.
	(pagesize): Define outside of functions.
	(alloc_trampoline): If EXECUTABLE_VIA_MMAP_FILE_SHARED is defined,
	create separate mappings of a file, for writing and for executing.
	If EXECUTABLE_VIA_MMAP_THEN_MPROTECT is defined, use mmap of an
	anonymous page, then mprotect.
	(free_trampoline): Convert back from executable address to writable
	address.
	* callback/trampoline_r/trampoline.c
	(EXECUTABLE_VIA_MALLOC_THEN_MPROTECT, EXECUTABLE_VIA_MMAP_THEN_MPROTECT,
	EXECUTABLE_VIA_MMAP_FILE_SHARED): New macros.
	(EXECUTABLE_VIA_MPROTECT, EXECUTABLE_VIA_MMAP_ANONYMOUS,
	EXECUTABLE_VIA_MMAP_DEVZERO): Remove macros.
	(MAP_FILE, MAP_VARIABLE): Define fallbacks.
	(pagesize): Define outside of functions.
	(alloc_trampoline_r): If EXECUTABLE_VIA_MMAP_FILE_SHARED is defined,
	create separate mappings of a file, for writing and for executing.
	If EXECUTABLE_VIA_MMAP_THEN_MPROTECT is defined, use mmap of an
	anonymous page, then mprotect.
	(free_trampoline_r, is_trampoline_r): Convert back from executable
	address to writable address.

2017-01-29  Bruno Haible  <bruno@clisp.org>

	Fix "Generic workaround against the ELF symbol resolving routine".
	* callback/vacall_r/elfhack-alpha.S: Put env in register $1, not $2.
	* callback/vacall_r/elfhack-alpha.sed: Make it find the correct line.
	* callback/trampoline_r/trampoline.c [__ia64__]: Fix code for
	BINFMT_ELF.
	[__mips64__]: Fix a typo in the trampoline for BINFMT_ELF.
	[__s390__]: Fix typo in is_tramp macro for BINFMT_ELF.

2017-01-10  Bruno Haible  <bruno@clisp.org>

	Update documentation.
	* README: Refer to the git repository, not to the last release.
	* DEPENDENCIES: New file.
	* Makefile.in (SOURCE_FILES): Add it.
	* README-hacking: New file.

2017-01-09  Bruno Haible  <bruno@clisp.org>

	Remove support for m68k/HP-UX, m68k/NeXT, apollo, mips/Ultrix.
	* trampoline/trampoline.c: Remove hpux, NeXT, apollo, ultrix
	conditionals.
	* trampoline/cache.c: Likewise.
	* callback/trampoline_r/trampoline.c: Likewise.

2017-01-09  Bruno Haible  <bruno@clisp.org>

	Remove support for m68k/AmigaOS.
	* avcall/Makefile.devel (avcall-m68k-amiga.s): Remove target.
	* avcall/avcall-m68k-amiga.c: Remove file.
	* avcall/avcall-m68k-amiga.s: Remove file.
	* avcall/Makefile.in (SOURCE_FILES): Remove them.
	* avcall/avcall.h.in: Remove AMIGA conditionals.
	* avcall/tests.c: Likewise.
	* trampoline/trampoline.c: Likewise.
	* callback/trampoline_r/trampoline.c: Likewise.

2017-01-09  Bruno Haible  <bruno@clisp.org>

	Remove support for the AIX 3 operating system.
	* avcall/Makefile.devel (avcall-powerpc-aix.s): Renamed from
	avcall-powerpc-aix.new.s.
	(avcall-powerpc-aix.old.s): Remove target.
	* avcall/avcall-powerpc-aix.s: Renamed from
	avcall/avcall-powerpc-aix.new.s.
	* avcall/avcall-powerpc-aix.old.s: Remove file.
	* avcall/Makefile.in (avcall-powerpc.s): No longer use
	avcall-powerpc-aix.old.s.
	(SOURCE_FILES): Add avcall-powerpc-aix.s. Remove
	avcall-powerpc-aix.new.s, avcall-powerpc-aix.old.s.
	* vacall/Makefile.devel (vacall-powerpc-aix.s): Renamed from
	vacall-powerpc-aix.new.s.
	(vacall-powerpc-aix.old.s): Remove target.
	* vacall/vacall-powerpc-aix.s: Renamed from
	vacall/vacall-powerpc-aix.new.s.
	* vacall/vacall-powerpc-aix.old.s: Remove file.
	* vacall/Makefile.in (vacall-powerpc.s): No longer use
	vacall-powerpc-aix.old.s.
	(SOURCE_FILES): Add vacall-powerpc-aix.s. Remove
	vacall-powerpc-aix.new.s, vacall-powerpc-aix.old.s.
	* callback/vacall_r/Makefile.devel (vacall-powerpc-aix.s): Renamed from
	vacall-powerpc-aix.new.s.
	(vacall-powerpc-aix.old.s): Remove target.
	* callback/vacall_r/vacall-powerpc-aix.s: Renamed from
	callback/vacall_r/vacall-powerpc-aix.new.s.
	* callback/vacall_r/vacall-powerpc-aix.old.s: Remove file.
	* callback/vacall_r/Makefile.in (vacall-powerpc.s): No longer use
	vacall-powerpc-aix.old.s.
	(SOURCE_FILES): Add vacall-powerpc-aix.s. Remove
	vacall-powerpc-aix.new.s, vacall-powerpc-aix.old.s.
	* trampoline/Makefile.devel (proto-powerpc-aix.s): Renamed from
	proto-powerpc-aix.new.s.
	(proto-powerpc-aix.old.s): Remove target.
	* trampoline/proto-powerpc-aix.s: Renamed from 
	trampoline/proto-powerpc-aix.new.s.
	* trampoline/proto-powerpc-aix.old.s: Remove file.
	* trampoline/tramp-powerpc-aix.S: Renamed from
	trampoline/tramp-powerpc.new.S.
	* trampoline/tramp-powerpc.old.S: Remove file.
	* trampoline/tramp-powerpc64-aix.S: Renamed from
	trampoline/tramp-powerpc64.new.S.
	* trampoline/Makefile.in (tramp-powerpc.s): No longer use
	tramp-powerpc.old.S.
	(tramp-powerpc64.s): Update.
	(SOURCE_FILES): Add tramp-powerpc-aix.S, tramp-powerpc64-aix.S. Remove
	tramp-powerpc.old.S, tramp-powerpc.new.S tramp-powerpc64.new.S.
	* callback/trampoline_r/Makefile.devel (proto-powerpc-aix.s): Renamed
	from proto-powerpc-aix.new.s.
	(proto-powerpc-aix.old.s): Remove target.
	* callback/trampoline_r/proto-powerpc-aix.s: Renamed from
	callback/trampoline_r/proto-powerpc-aix.new.s.
	* callback/trampoline_r/proto-powerpc-aix.old.s: Remove file.
	* callback/trampoline_r/tramp-powerpc-aix.S: Renamed from
	callback/trampoline_r/tramp-powerpc.new.S.
	* callback/trampoline_r/tramp-powerpc.old.S: Remove file.
	* callback/trampoline_r/tramp-powerpc64-aix.S: Renamed from
	callback/trampoline_r/tramp-powerpc64.new.S.
	* callback/trampoline_r/Makefile.in (tramp-powerpc.s): No longer use
	tramp-powerpc.old.S.
	(tramp-powerpc64.s): Update.
	(SOURCE_FILES): Add tramp-powerpc-aix.S, tramp-powerpc64-aix.S. Remove
	tramp-powerpc.old.S, tramp-powerpc.new.S tramp-powerpc64.new.S.
	* PLATFORMS, **/PLATFORMS: Update.

2017-01-08  Bruno Haible  <bruno@clisp.org>

	Remove support for the m88k CPU.
	The only place where this CPU is still used is in the OpenBSD 5.8
	luna88k port. The luna88k is museum hardware. They use the ELF binary
	format, through an inofficial port of the 10-years old binutils-2.17.
	* avcall/Makefile.devel (avcall-m88k.s, tests-m88k.s): Remove targets.
	* avcall/avcall-m88k.[cs]: Remove files.
	* avcall/Makefile.in (avcall-m88k.lo): Remove target.
	(SOURCE_FILES): Remove avcall-m88k.[cs].
	* avcall/avcall.h.in: Remove defined(__m88k__) conditionals.
	* vacall/Makefile.devel (vacall-m88k.s, tests-m88k.s): Remove targets.
	* vacall/vacall-m88k.[cs]: Remove files.
	* vacall/Makefile.in (vacall-m88k.o): Remove target.
	(SOURCE_FILES): Remove vacall-m88k.[cs].
	* vacall/vacall.h.in: Remove defined(__m88k__) conditionals.
	* trampoline/Makefile.devel (proto-m88k.s, tramp-m88k.s): Remove targets.
	* trampoline/proto-m88k.s: Remove file.
	* trampoline/tramp-m88k.s: Remove file.
	* trampoline/protexec.c: Remove __DOLPHIN__ conditionals.
	* trampoline/trampoline.c: Remove defined(__m88k__), HAVE_SYS_M88KBCS_H conditionals.
	* trampoline/trampoline.h.in: Don't test for m88k host.
	* trampoline/configure.ac: Don't test for m88k host.
	* callback/vacall_r/Makefile.devel (vacall-m88k.s): Remove target.
	* callback/vacall_r/vacall-m88k.s: Remove file.
	* callback/vacall_r/Makefile.in (vacall-m88k.lo): Remove target.
	(SOURCE_FILES): Remove vacall-m88k.[cs].
	* callback/vacall_r/vacall_r.h.in: Remove defined(__m88k__) conditionals.
	* callback/trampoline_r/Makefile.devel (proto-m88k.s, tramp-m88k.s): Remove targets.
	* callback/trampoline_r/proto-m88k.s: Remove file.
	* callback/trampoline_r/tramp-m88k.s: Remove file.
	* callback/trampoline_r/proto.c: Remove defined(__m88k__) conditional.
	* callback/trampoline_r/trampoline.c: Remove defined(__m88k__), HAVE_SYS_M88KBCS_H conditionals.
	* callback/trampoline_r/trampoline_r.h.in: Don't test for m88k host.
	* callback/trampoline_r/test1.c: Remove defined(__m88k__) conditionals.
	* callback/trampoline_r/configure.ac: Don't test for m88k host.
	* callback/call-used-registers.txt: Update.
	* callback/elf-hack.txt: Update.
	* common/reg-struct-return.txt: Update.
	* PLATFORMS, **/PLATFORMS: Update.
	* README: Update.
	* autogen.sh: Don't copy vacall-m88k.c.
	* Makefile.in (COPIED_FILES): Remove callback/vacall_r/vacall-m88k.c.

2017-01-08  Bruno Haible  <bruno@clisp.org>

	Fix last commit.
	* common/asm-x86_64.sh: Escape '&' characters in replacement string.

2017-01-03  Bruno Haible  <bruno@clisp.org>

	Add support for the Mac OS X 10.5 / x86_64 platform.
	* common/asm-x86_64.sh: Disable the frame info for exception handlers
	on Mac OS X.
	* avcall/avcall-x86_64-macro.S: Regenerated.
	* vacall/vacall-x86_64-macro.S: Likewise.
	* callback/vacall_r/vacall-x86_64-macro.S: Likewise.
	* m4/mmap.m4 (FFCALL_MMAP): Renamed from CL_MMAP. Remove AC_BEFORE
	invocations. Test mmap without MAP_FIXED only. Don't define
	HAVE_MMAP_DEVZERO_SUN4_29.
	* m4/mprotect.m4 (FFCALL_MPROTECT): Renamed from CL_MPROTECT. Update
	dependency.
	* m4/getpagesize.m4 (CL_GETPAGESIZE): Remove AC_BEFORE invocations.
	* m4/general.m4 (FFCALL_COMMON_TRAMPOLINE): Update dependencies.

2017-01-02  Bruno Haible  <bruno@clisp.org>

	Ensure the alignment of trampolines when we use the free-list approach.
	* trampoline/trampoline.c (alloc_trampoline): Consider TRAMP_ALIGN
	when allocating a page of trampolines.
	* callback/trampoline_r/trampoline.c (alloc_trampoline_r): Likewise.

2017-01-02  Bruno Haible  <bruno@clisp.org>

	Fix a build failure on Solaris/SPARC with newer gcc.
	* trampoline/trampoline.c: Remove 'extern inline' declarations.
	* callback/trampoline_r/trampoline.c: Likewise. For SPARC, declare
	__TR_clear_cache_2, not __TR_clear_cache_4.
	* PLATFORMS: Update.
	* avcall/PLATFORMS: Likewise.
	* vacall/PLATFORMS: Likewise.
	* trampoline/PLATFORMS: Likewise.
	* callback/PLATFORMS: Likewise.

2017-01-02  Bruno Haible  <bruno@clisp.org>

	Add support for the Solaris/x86 platform with cc.
	* common/asm-i386.sh: Remove the whitespace in the second argument of
	INSN2MOVX.
	* vacall/vacall-i386-macro.S: Regenerated.
	* callback/vacall_r/vacall-i386-macro.S: Likewise.
	* avcall/Makefile.in (avcall-i386.s): Eliminate ##.
	* vacall/Makefile.in (vacall-i386.s): Likewise.
	* callback/vacall_r/Makefile.in (vacall-i386.s): Likewise.
	* PLATFORMS: Update.
	* avcall/PLATFORMS: Likewise.
	* vacall/PLATFORMS: Likewise.
	* trampoline/PLATFORMS: Likewise.
	* callback/PLATFORMS: Likewise.

2017-01-02  Bruno Haible  <bruno@clisp.org>

	Add support for the Solaris/x86_64 platform.
	* common/asm-x86_64.sh: Introduce ALIGN macro. Disable the frame info
	for exception handlers on Solaris.
	* common/asm-x86_64.h (ALIGN): New macro.
	(FUNEND, EH_FRAME_SECTION): Define differently for Solaris.
	* vacall/Makefile.devel (vacall-x86_64-macro.S): Don't use a #define
	that assumes an ANSI C preprocessor.
	* avcall/avcall-x86_64-macro.S: Regenerated.
	* vacall/vacall-x86_64-macro.S: Likewise.
	* callback/vacall_r/vacall-x86_64-macro.S: Likewise.
	* avcall/Makefile.in (avcall-x86_64.s): Eliminate ##.
	* vacall/Makefile.in (vacall-x86_64.s): Likewise.
	* callback/vacall_r/Makefile.in (vacall-x86_64.s): Likewise.
	* PLATFORMS: Update.
	* avcall/PLATFORMS: Likewise.
	* vacall/PLATFORMS: Likewise.
	* trampoline/PLATFORMS: Likewise.
	* callback/PLATFORMS: Likewise.

2017-01-01  Bruno Haible  <bruno@clisp.org>

	Assume ANSI C in the documentation.
	* vacall/vacall.{3,html}: Use ANSI C declaration syntax. Stop
	mentioning <varargs.h>. Reference stdarg(3).
	* trampoline/trampoline.{3,html}: Reference stdarg(3).
	* callback/callback.{3,html}: Use ANSI C declaration syntax. Stop
	mentioning <varargs.h>.
	* callback/trampoline_r/trampoline_r.{3,html}: Reference stdarg(3).

2017-01-01  Bruno Haible  <bruno@clisp.org>

	Support the CPPFLAGS configure variable.
	* avcall/Makefile.in (CPPFLAGS): New variable.
	Use it in all .c file compilations.
	* vacall/Makefile.in (CPPFLAGS): New variable.
	Use it in all .c file compilations.
	* trampoline/Makefile.in (CPPFLAGS): New variable.
	Use it in all .c file compilations.
	* callback/Makefile.in (CPPFLAGS): New variable.
	Use it in all .c file compilations.
	* callback/vacall_r/Makefile.in (CPPFLAGS): New variable.
	Use it in all .c file compilations.
	* callback/trampoline_r/Makefile.in (CPPFLAGS): New variable.
	Use it in all .c file compilations.

2017-01-01  Bruno Haible  <bruno@clisp.org>

	Add option --disable-elf-hack to disable the ELF workaround.
	* m4/binfmt-elf.m4 (FFCALL_BINFMT_ELF_OPTION): New macro.
	(FFCALL_BINFMT_ELF): Require it. Set BINFMT_ELF to false and define
	BINFMT_ELF to 0 if --disable-elf-hack was specified.
	* configure.ac: Invoke FFCALL_BINFMT_ELF_OPTION.
	* callback/configure.ac: Likewise.
	* callback/elf-hack.txt: Explain how to use --disable-elf-hack for
	testing.

2017-01-01  Bruno Haible  <bruno@clisp.org>

	Generic workaround against the ELF symbol resolving routine.
	Reported for x86_64 by Andrey Kutejko <andy128k@gmail.com>
	at https://savannah.gnu.org/bugs/?32466 .
	* m4/binfmt-elf.m4: New file.
	* Makefile.in (SOURCE_FILES): Add it.
	* callback/elf-hack.txt: New file.
	* callback/test1.c: New file.
	* callback/Makefile.in (SOURCE_FILES): Add both.
	(test1.o, test1): New targets.
	(check): Also run test1.
	(MOSTLYCLEANFILES): Add test1.o, test1.
	* callback/trampoline_r/configure.ac: Invoke FFCALL_BINFMT_ELF.
	* callback/trampoline_r/Makefile.devel: Update the paths to the cross
	assemblers.
	* callback/trampoline_r/tramp-*.s: Add a 'trampelf' function.
	* callback/trampoline_r/tramp-*.S: Likewise.
	* callback/trampoline_r/tramp-*.o: Regenerated.
	* callback/trampoline_r/trampoline.c: Implement alternate trampolines on
	platforms with BINFMT_ELF.
	* callback/trampoline_r/test1.c: Skip the test if BINFMT_ELF.
	* callback/vacall_r/configure.ac: Invoke FFCALL_BINFMT_ELF.
	* callback/vacall_r/elfhack-alpha.S: New file.
	* callback/vacall_r/elfhack-alpha.sed: New file.
	* callback/vacall_r/elfhack-arm.S: New file.
	* callback/vacall_r/elfhack-arm.sed: New file.
	* callback/vacall_r/elfhack-i386.S: New file.
	* callback/vacall_r/elfhack-i386.sed: New file.
	* callback/vacall_r/elfhack-m68k.S: New file.
	* callback/vacall_r/elfhack-m68k.sed: New file.
	* callback/vacall_r/elfhack-mips.S: New file.
	* callback/vacall_r/elfhack-mips.sed: New file.
	* callback/vacall_r/elfhack-mips64.S: New file.
	* callback/vacall_r/elfhack-mips64.sed: New file.
	* callback/vacall_r/elfhack-powerpc.S: New file.
	* callback/vacall_r/elfhack-powerpc.sed: New file.
	* callback/vacall_r/elfhack-powerpc64le.S: New file.
	* callback/vacall_r/elfhack-powerpc64le.sed: New file.
	* callback/vacall_r/elfhack-s390.S: New file.
	* callback/vacall_r/elfhack-s390.sed: New file.
	* callback/vacall_r/elfhack-x86_64.S: New file.
	* callback/vacall_r/elfhack-x86_64.sed: New file.
	* callback/vacall_r/Makefile.devel (vacall-i386-macro.S): Insert an
	include of elfhack-i386.S.
	(vacall-m68k.mit.S, vacall-m68k-netbsd-macro.S): Insert an include of
	elfhack-m68k.S.
	(vacall-mips-macro.S, vacall-mipsn32-macro.S): Insert an include of
	elfhack-mips.S.
	(vacall-mips64-macro.S): Insert an include of elfhack-mips64.S.
	(vacall-alpha-macro.S): Renamed from vacall-alpha.s. Insert an include
	of elfhack-alpha.S.
	(vacall-arm-macro.S): Insert an include of elfhack-arm.S.
	(vacall-armel-macro.S): Renamed from vacall-armel.s. Insert an include
	of asm-arm.h and elfhack-arm.S.
	(vacall-powerpc-linux-macro.S, vacall-powerpc-netbsd-macro.S): New
	targets.
	(vacall-powerpc-sysv4-macro.S): Renamed from vacall-powerpc-sysv4.s.
	Insert an include of elfhack-powerpc.S.
	(vacall-powerpc64le-macro.S): Renamed from vacall-powerpc64le.s. Insert
	an include of elfhack-powerpc64.S.
	(vacall-x86_64-macro.S): Insert an include of elfhack-x86_64.S.
	(vacall-s390-macro.S): New target.
	* callback/vacall_r/vacall-alpha-macro.S: Renamed from
	callback/vacall_r/vacall-alpha.s. Include elfhack-alpha.S.
	* callback/vacall_r/vacall-arm-macro.S: Include elfhack-arm.S.
	* callback/vacall_r/vacall-armel-macro.S: Renamed from
	callback/vacall_r/vacall-armel.s. Include asm-arm.h and elfhack-arm.S.
	* callback/vacall_r/vacall-i386-macro.S: Include elfhack-i386.S.
	* callback/vacall_r/vacall-m68k.mit.S: Include elfhack-m68k.S.
	* callback/vacall_r/vacall-m68k-netbsd-macro.S: Likewise.
	* callback/vacall_r/vacall-mips-macro.S: Include elfhack-mips.S.
	* callback/vacall_r/vacall-mipsn32-macro.S: Likewise.
	* callback/vacall_r/vacall-mips64-macro.S: Include elfhack-mips64.S.
	* callback/vacall_r/vacall-powerpc-linux-macro.S: Generated, to include
	elfhack-powerpc.S.
	* callback/vacall_r/vacall-powerpc-netbsd-macro.S: Generated, to include
	elfhack-powerpc.S.
	* callback/vacall_r/vacall-powerpc-sysv4-macro.S: Renamed from
	callback/vacall_r/vacall-powerpc-sysv4.s. Include elfhack-powerpc.S.
	* callback/vacall_r/vacall-powerpc64le-macro.S: Renamed from
	callback/vacall_r/vacall-powerpc64le.s. Include elfhack-powerpc64le.S.
	* callback/vacall_r/vacall-s390-linux.s: Renamed from
	callback/vacall_r/vacall-s390.s.
	* callback/vacall_r/vacall-s390-macro.S: Generated, to include
	elfhack-s390.S.
	* callback/vacall_r/vacall-x86_64-macro.S: Include elfhack-x86_64.S.
	* callback/vacall_r/Makefile.in (ASPFLAGS): Conditionally define
	BINFMT_ELF.
	(vacall-i386.s, vacall-m68k.s, vacall-mips.s, vacall-mipsn32.s,
	vacall-mips64.s): Add a -I option for elfhack-*.S.
	(vacall-alpha.s): New target.
	(vacall-alpha.lo): Depend on it.
	(vacall-arm.s): Add a -I option for elfhack-*.S.
	(vacall-armel.s): New target.
	(vacall-armel.lo): Depend on it.
	(vacall-powerpc.s): For the linux, netbsd, sysv4 syntaxes, use the
	corresponding *.S file.
	(vacall-powerpc64le.s): New target.
	(vacall-powerpc64le.lo): Depend on it.
	(vacall-x86_64.s): Add a -I option for elfhack-*.S.
	(vacall-s390.s): New target.
	(vacall-s390.lo): Depend on it.
	(clean): Remove also vacall-alpha.s, vacall-armel.s,
	vacall-powerpc64le.s, vacall-s390.s.
	(SOURCE_FILES): Update for the renamed files. Add
	vacall-powerpc-linux-macro.S, vacall-powerpc-netbsd-macro.S,
	vacall-s390-macro.S, elfhack-*.S, elfhack-*.sed.
	* README: Clarify on which platforms the problem with the ELF symbol
	resolving routine still exists.

2016-12-31  Bruno Haible  <bruno@clisp.org>

	Update doc about available registers.
	* callback/call-used-registers.txt: Clarify call-used registers versus
	registers available for use in trampolines.
	* trampoline/tramp-powerpc-old.s: Mark as obsolete.
	* callback/trampoline_r/tramp-powerpc-old.s: Likewise.
	* trampoline/tramp-x86_64.s: Fix comment about available registers.
	* callback/trampoline_r/tramp-x86_64.s: Likewise.
	* trampoline/tramp-powerpc-sysv4.s: Likewise.
	* callback/trampoline_r/tramp-powerpc-sysv4.s: Likewise.
	* trampoline/tramp-*.s: Update comment about available registers.
	* trampoline/tramp-*.S: Likewise.
	* callback/trampoline_r/tramp-*.s: Likewise.
	* callback/trampoline_r/tramp-*.S: Likewise.

2016-12-31  Bruno Haible  <bruno@clisp.org>

	Simplify powerpc compilation rules.
	* avcall/Makefile.in (avcall-powerpc.s): New rule.
	(avcall-powerpc.lo): Depend on it. Remove libtool specific workaround.
	(clean): Remove also avcall-powerpc.s.
	* vacall/Makefile.in (vacall-powerpc.s): New rule.
	(vacall-powerpc.o): Depend on it.
	(clean): Remove also vacall-powerpc.s.
	* callback/vacall_r/Makefile.in (vacall-powerpc.s): New rule.
	(vacall-powerpc.lo): Depend on it. Remove libtool specific workaround.
	(clean): Remove also vacall-powerpc.s.

2016-12-29  Bruno Haible  <bruno@clisp.org>

	Revert "Pass the environment argument through the stack, not in a
	register." commit from 1999-06-01.
	* vacall/vacall-i386.c: Revert: Allow use of registers %esi, %edi, %ebp.
	Expect env in %ecx, not as first stack argument.
	* vacall/vacall-i386-macro.S: Revert.
	* callback/vacall_r/vacall-i386-macro.S: Revert.
	* callback/trampoline_r/proto.c (tramp2): Remove function.
	* callback/trampoline_r/proto-i386.s: Revert accordingly.
	* callback/trampoline_r/tramp-i386.s: Put the data in %ecx, not as
	first stack argument.
	* callback/trampoline_r/trampoline.c [i386]: Revert to simple
	trampoline.
	* callback/trampoline_r/test1.c (f) [i386]: Expect env in %ecx, not as
	first stack argument.

2016-12-29  Bruno Haible  <bruno@clisp.org>

	Revert "Never build shared libraries: --enable-shared has no effect."
	commit from 2012-04-24.
	* README: Revert, but still recommend --disable-shared.
	* avcall/Makefile.in (libavcall.la): Don't pass -static to libtool.
	* callback/Makefile.in (libcallback.la): Likewise.
	* callback/vacall_r/Makefile.in (libvacall.la): Likewise.
	* callback/trampoline_r/Makefile.in (libtrampoline.la): Likewise.

2016-12-30  Bruno Haible  <bruno@clisp.org>

	Rename text files.
	* common/reg-struct-return.txt: Renamed from common/reg-struct-return.
	* callback/call-used-registers.txt: Renamed from
	callback/call-used-registers.
	* trampoline/PORTING: Update.
	* callback/README: Likewise.

2016-12-29  Bruno Haible  <bruno@clisp.org>

	Update documentation about register usage.
	* callback/call-used-registers: Update regarding powerpc/NetBSD.

2016-12-29  Bruno Haible  <bruno@clisp.org>

	Remove support for the 'convex' CPU.
	* avcall/Makefile.devel (avcall-convex.s, tests-convex.s): Remove
	targets.
	* avcall/avcall-convex.[cs]: Remove files.
	* avcall/Makefile.in (avcall-convex.lo): Remove target.
	(SOURCE_FILES): Remove avcall-convex.[cs].
	* avcall/avcall.h.in: Remove defined(__convex__) conditionals.
	* vacall/Makefile.devel (vacall-convex.s, tests-convex.s): Remove
	targets.
	* vacall/vacall-convex.[cs]: Remove files.
	* vacall/Makefile.in (vacall-convex.o): Remove target.
	(SOURCE_FILES): Remove vacall-convex.[cs].
	* vacall/vacall.h.in: Remove defined(__convex__) conditionals.
	* trampoline/Makefile.devel (proto-convex.s, cache-convex.s,
	tramp-convex.s): Remove targets.
	* trampoline/proto-convex.s: Remove file.
	* trampoline/cache-convex.[cs]: Remove files.
	* trampoline/tramp-convex.s: Remove file.
	* trampoline/Makefile.in (cache-convex.o): Remove target.
	(SOURCE_FILES): Remove cache-convex.[cs].
	* trampoline/cache.c: Remove defined(__convex__) conditionals.
	* trampoline/protexec.c: Remove defined(__convex__) conditionals.
	* trampoline/trampoline.c: Remove defined(__convex__) conditionals.
	* trampoline/trampoline.h.in: Don't test for convex host.
	* trampoline/configure.ac: Don't test for convex host.
	* callback/vacall_r/Makefile.devel (vacall-convex.s): Remove target.
	* callback/vacall_r/vacall-convex.s: Remove file.
	* callback/vacall_r/Makefile.in (vacall-convex.lo): Remove target.
	(SOURCE_FILES): Remove vacall-convex.[cs].
	* callback/vacall_r/vacall_r.h.in: Remove defined(__convex__)
	conditionals.
	* callback/trampoline_r/Makefile.devel (proto-convex.s, cache-convex.s,
	tramp-convex.s): Remove targets.
	* callback/trampoline_r/proto-convex.s: Remove file.
	* callback/trampoline_r/tramp-convex.s: Remove file.
	* callback/trampoline_r/Makefile.in (cache-convex.lo): Remove target.
	(SOURCE_FILES): Remove cache-convex.[cs].
	* callback/trampoline_r/proto.c: Remove defined(__convex__)
	conditionals.
	* callback/trampoline_r/trampoline.c: Remove defined(__convex__)
	conditionals.
	* callback/trampoline_r/trampoline_r.h.in: Don't test for convex host.
	* callback/trampoline_r/test1.c: Remove defined(__convex__)
	conditionals.
	* callback/trampoline_r/configure.ac: Don't test for convex host.
	* callback/call-used-registers: Update.
	* common/reg-struct-return: Update.
	* PLATFORMS, **/PLATFORMS: Update.
	* autogen.sh: Don't copy vacall-convex.c, cache-convex.[cs].
	* Makefile.in (COPIED_FILES): Remove callback/vacall_r/vacall-convex.c,
	callback/trampoline_r/cache-convex.[cs].

2016-12-29  Bruno Haible  <bruno@clisp.org>

	Fix collision between different copies of __structcpy.
	Reported in http://savannah.gnu.org/bugs/?23474 .
	* avcall/avcall-structcpy.c: New file.
	* avcall/Makefile.in (avcall-structcpy.lo): Renamed from structcpy.lo.
	(SOURCE_FILES): Add avcall-structcpy.c.
	* avcall/Makefile.mingw32 (avcall-structcpy.o): Renamed from
	structcpy.o.
	* avcall/Makefile.msvc (avcall-structcpy.obj): Renamed from
	structcpy.obj.
	* avcall/avcall.h.in: Declare and use avcall_structcpy instead of
	__structcpy.
	* avcall/README: Update.
	* vacall/vacall-structcpy.c: New file.
	* vacall/Makefile.in (vacall-structcpy.o): Renamed from structcpy.o.
	(SOURCE_FILES): Add vacall-structcpy.c.
	* vacall/Makefile.mingw32 (vacall-structcpy.o): Renamed from
	structcpy.o.
	* vacall/Makefile.msvc (vacall-structcpy.obj): Renamed from
	structcpy.obj.
	* vacall/vacall.h.in: Declare and use vacall_structcpy instead of
	__structcpy.
	* callback/vacall_r/vacall-structcpy.c: New file.
	* callback/vacall_r/Makefile.in (vacall-structcpy.lo): Renamed from
	structcpy.lo.
	(SOURCE_FILES): Add vacall-structcpy.c.
	* callback/vacall_r/Makefile.mingw32 (vacall-structcpy.o): Renamed from
	structcpy.o.
	* callback/vacall_r/Makefile.msvc (vacall-structcpy.obj): Renamed from
	structcpy.obj.
	* callback/vacall_r/vacall_r.h.in: Declare and use callback_structcpy
	instead of __structcpy.
	* callback/Makefile.in (libcallback.la): Use vacall-structcpy.lo, not
	structcpy.lo.
	* callback/Makefile.mingw32 (OBJECTS): Use vacall-structcpy.o, not
	structcpy.o.
	* callback/Makefile.msvc (OBJECTS): Use vacall-structcpy.obj, not
	structcpy.obj.
	(vacall_r/vacall-structcpy.obj): Renamed from vacall_r/structcpy.obj.
	(clean): Update accordingly.

2016-12-29  Bruno Haible  <bruno@clisp.org>

	Put duplicated files under version control only once, part 2.
	* vacall/vacall-powerpc.c: Update with the 'REENTRANT' code from
	callback/vacall_r/.
	* vacall/vacall-s390.c: Likewise.
	* callback/vacall_r/vacall-alpha.c: Remove file.
	* callback/vacall_r/vacall-arm.c: Remove file.
	* callback/vacall_r/vacall-armel.c: Remove file.
	* callback/vacall_r/vacall-convex.c: Remove file.
	* callback/vacall_r/vacall-hppa.c: Remove file.
	* callback/vacall_r/vacall-i386.c: Remove file.
	* callback/vacall_r/vacall-ia64.c: Remove file.
	* callback/vacall_r/vacall-m68k.c: Remove file.
	* callback/vacall_r/vacall-m88k.c: Remove file.
	* callback/vacall_r/vacall-mips.c: Remove file.
	* callback/vacall_r/vacall-mipsn32.c: Remove file.
	* callback/vacall_r/vacall-mips64.c: Remove file.
	* callback/vacall_r/vacall-powerpc.c: Remove file.
	* callback/vacall_r/vacall-powerpc64.c: Remove file.
	* callback/vacall_r/vacall-powerpc64le.c: Remove file.
	* callback/vacall_r/vacall-s390.c: Remove file.
	* callback/vacall_r/vacall-sparc.c: Remove file.
	* callback/vacall_r/vacall-sparc64.c: Remove file.
	* callback/vacall_r/vacall-x86_64.c: Remove file.
	* autogen.sh: Copy these files from vacall/.
	* Makefile.in (COPIED_FILES): Add these files.

2016-12-28  Bruno Haible  <bruno@clisp.org>

	More robust quoting in Autoconf macros.
	* configure.ac: Add brackets around Autoconf macro arguments.
	* avcall/configure.ac: Likewise.
	* vacall/configure.ac: Likewise.
	* trampoline/configure.ac: Likewise.
	* callback/configure.ac: Likewise.
	* callback/vacall_r/configure.ac: Likewise.
	* callback/trampoline_r/configure.ac: Likewise.
	* m4/as-underscore.m4: Likewise.
	* m4/cc-gcc.m4: Likewise.
	* m4/codeexec.m4: Likewise.
	* m4/general.m4: Likewise.
	* m4/getpagesize.m4: Likewise.
	* m4/ireg.m4: Likewise.
	* m4/ln.m4: Likewise.
	* m4/mach-vm.m4: Likewise.
	* m4/mmap.m4: Likewise.
	* m4/mprotect.m4: Likewise.
	* m4/pccstruct.m4: Likewise.
	* m4/proto.m4: Likewise.
	* m4/shm.m4: Likewise.
	* m4/smallstruct.m4: Likewise.

2016-12-28  Bruno Haible  <bruno@clisp.org>

	Update list of contributors.
	* README: List all contributors.

2016-12-28  Bruno Haible  <bruno@clisp.org>

	Add support for 64-bit mode (x86_64) on Mac OS X.
	* common/asm-x86_64.sh: New file.
	* common/asm-x86_64.h: New file.
	* Makefile.in (SOURCE_FILES): Add them.
	* avcall/avcall-x86_64-linux.s: Renamed from avcall/avcall-x86_64.s.
	* avcall/Makefile.devel (avcall-x86_64-linux.s): Renamed from avcall-x86_64.s.
	(avcall-x86_64-macro.S): New target.
	* avcall/avcall-x86_64-macro.S: New file, generated through avcall/Makefile.devel.
	* avcall/Makefile.in (avcall-x86_64.s): New target.
	(avcall-x86_64.lo): Use it, in the build dir.
	(clean): Remove it.
	(SOURCE_FILES): Add avcall-x86_64-linux.s, avcall-x86_64-macro.S. Remove avcall-x86_64.s.
	* vacall/vacall-x86_64-linux.s: Renamed from vacall/vacall-x86_64.s.
	* vacall/Makefile.devel (vacall-x86_64-linux.s): Renamed from vacall-x86_64.s.
	(vacall-x86_64-macro.S): New target.
	* vacall/vacall-x86_64-macro.S: New file, generated through vacall/Makefile.devel.
	* vacall/Makefile.in (vacall-x86_64.s): New target.
	(vacall-x86_64.o): Use it, in the build dir.
	(clean): Remove it.
	(SOURCE_FILES): Add vacall-x86_64-linux.s, vacall-x86_64-macro.S. Remove vacall-x86_64.s.
	* callback/vacall_r/vacall-x86_64-linux.s: Renamed from callback/vacall_r/vacall-x86_64.s.
	* callback/vacall_r/Makefile.devel (vacall-x86_64-linux.s): Renamed from vacall-x86_64.s.
	(vacall-x86_64-macro.S): New target.
	* callback/vacall_r/vacall-x86_64-macro.S: New file, generated through callback/vacall_r/Makefile.devel.
	* callback/vacall_r/Makefile.in (vacall-x86_64.s): New target.
	(vacall-x86_64.lo): Use it, in the build dir.
	(clean): Remove it.
	(SOURCE_FILES): Add vacall-x86_64-linux.s, vacall-x86_64-macro.S. Remove vacall-x86_64.s.
	* callback/trampoline_r/test1.c (CHECK_ENV_REGISTER): New macro.
	(f, main): Use it instead of __GNUC__.
	* NEWS: Mention the change.

2016-12-28  Bruno Haible  <bruno@clisp.org>

	Rename the asm* files.
	* common/asm-arm.h: Renamed from common/asmarm.h.
	* common/asm-arm.sh: Renamed from common/asmarm.sh.
	* common/asm-i386.hh: Renamed from common/asmi386.hh.
	* common/asm-i386.sh: Renamed from common/asmi386.sh.
	* common/asm-m68k.h: Renamed from common/asmm68k.h.
	* common/asm-m68k.sh: Renamed from common/asmm68k.sh.
	* common/asm-mips.h: Renamed from common/asmmips.h.
	* common/asm-mips.sh: Renamed from common/asmmips.sh.
	* common/asm-sparc.h: Renamed from common/asmsparc.h.
	* common/asm-sparc.sh: Renamed from common/asmsparc.sh.
	* common/asm-sparc64.sh: Renamed from common/asmsparc64.sh.
	* **/Makefile.devel, **/*.S: Update.
	* Makefile.maint (common/asm-i386.h): Renamed from common/asmi386.h.
	* Makefile.in (SOURCE_FILES, GENERATED_FILES): Update.

2016-12-27  Bruno Haible  <bruno@clisp.org>

	Add the real source of asmi386.h.
	* common/asmi386.hh: New file, from GNU clisp.
	* common/asmi386.h: Remove file.
	* Makefile.maint (common/asmi386.h): New target. Rule copied from
	GNU clisp's Makefile.devel.
	(all): Depend on it.
	* Makefile.in (SOURCE_FILES): Add common/asmi386.hh. Remove
	common/asmi386.h.
	(GENERATED_FILES): Add common/asmi386.h.

2016-12-27  Bruno Haible  <bruno@clisp.org>

	Modernize Cygwin detection.
	* common/asmi386.h: Test __CYGWIN__, not __CYGWIN32__.
	From Ken Brown <kbrown@cornell.edu> on 2015-03-05.

2016-12-27  Bruno Haible  <bruno@clisp.org>

	Create tarballs through an Automake-like "make dist" command.
	* Makefile.in (SOURCE_FILES, LIBTOOL_IMPORTED_FILES,
	GNULIB_IMPORTED_FILES, IMPORTED_FILES, COPIED_FILES, GENERATED_FILES,
	DISTFILES): New macros.
	(distdir): New target.
	(PACKAGE, VERSION, TAR, GZIP): New macros.
	(dist): New target.
	* avcall/Makefile.in (SOURCE_FILES, GENERATED_FILES, DISTFILES): New
	macros.
	(distdir): New target.
	* vacall/Makefile.in (SOURCE_FILES, GENERATED_FILES, DISTFILES): New
	macros.
	(distdir): New target.
	* trampoline/Makefile.in (SOURCE_FILES, GENERATED_FILES, DISTFILES):
	New macros.
	(distdir): New target.
	* callback/Makefile.in (SOURCE_FILES, GENERATED_FILES, DISTFILES): New
	macros.
	(distdir): New target.
	* callback/vacall_r/Makefile.in (SOURCE_FILES, GENERATED_FILES,
	DISTFILES): New macros.
	(distdir): New target.
	* callback/trampoline_r/Makefile.in (SOURCE_FILES, GENERATED_FILES,
	DISTFILES): New macros.
	(distdir): New target.
	* configure.ac (extrasub): Replace all occurrences of @subdir@.
	* callback/configure.ac (extrasub): Likewise.

2016-12-27  Bruno Haible  <bruno@clisp.org>

	Bump version number.
	* VERSION: Set to 0x010D (= 1.13).

2016-12-27  Bruno Haible  <bruno@clisp.org>

	Rename each configure.in to configure.ac.
	* configure.ac: Renamed from configure.in.
	* avcall/configure.ac: Renamed from avcall/configure.in.
	* vacall/configure.ac: Renamed from vacall/configure.in.
	* trampoline/configure.ac: Renamed from trampoline/configure.in.
	* callback/configure.ac: Renamed from callback/configure.in.
	* callback/vacall_r/configure.ac: Renamed from
	callback/vacall_r/configure.in.
	* callback/trampoline_r/configure.ac: Renamed from
	callback/trampoline_r/configure.in.
	* Makefile.maint (ALL_CONFIGURE_AC): Renamed from ALL_CONFIGURE_IN.
	(aclocal.m4, configure, %/configure, %/config.h.in): Update.
	* README, */README: Update.

2016-12-27  Bruno Haible  <bruno@clisp.org>

	Modernize quoting.
	* NEWS: Quote ‘like this’, not `like this'.
	* README.os2: Likewise.
	* common/uniq-u.c: Likewise.
	* avcall/DOC: Likewise.
	* avcall/avcall-i386.c: Likewise.
	* avcall/avcall-sparc.c: Likewise.
	* avcall/avcall-sparc64.c: Likewise.
	* avcall/avcall.h.in: Likewise.
	* avcall/avcall.html: Likewise.
	* vacall/vacall.h.in: Likewise.
	* callback/trampoline_r/trampoline.c: Likewise.
	* callback/trampoline_r/trampoline_r.h.in: Likewise.
	* trampoline/PORTING: Likewise.
	* trampoline/trampoline.c: Likewise.
	* trampoline/trampoline.h.in: Likewise.
	* callback/vacall_r/vacall_r.h.in: Likewise.
	* configurations/README: Likewise.
	* avcall/Makefile.maint (ROFF_MAN): Produce UTF-8 output instead of
	ASCII output.
	* vacall/Makefile.maint (ROFF_MAN): Likewise.
	* trampoline/Makefile.maint (ROFF_MAN): Likewise.
	* callback/Makefile.maint (ROFF_MAN): Likewise.
	* callback/trampoline_r/Makefile.maint (ROFF_MAN): Likewise.

2016-12-27  Bruno Haible  <bruno@clisp.org>

	Avoid unnecessary recursion in "make maintainer-clean".
	* Makefile.in (DISTCLEANFILES): New variable.
	(distclean, maintainer-clean): Use it.
	* callback/Makefile.in (DISTCLEANFILES): New variable.
	(distclean): Use it. Don't depend on 'clean'. Instead, use
	MOSTLYCLEANDIRS, MOSTLYCLEANFILES.
	(maintainer-clean): Don't depend on 'distclean'. Instead, use
	MOSTLYCLEANDIRS, MOSTLYCLEANFILES, DISTCLEANFILES.
	(distclean-subdirs, maintainerclean-subdirs): Inline and remove targets.

2016-12-27  Bruno Haible  <bruno@clisp.org>

	Make "make mostlyclean" act like "make clean".
	* callback/Makefile.in (MOSTLYCLEANDIRS, MOSTLYCLEANFILES): New
	variables.
	(mostlyclean, clean): Use them.
	(clean-subdirs): Inline and remove target.

2016-12-27  Bruno Haible  <bruno@clisp.org>

	Fix Makefile rules for powerpc64, from 2006-04-27.
	* trampoline/Makefile.in (clean): Also remove tramp-powerpc64.s.
	* callback/trampoline_r/Makefile.in (clean): Likewise.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Reorder Makefile targets.
	* trampoline/Makefile.in: Reorder.
	* callback/trampoline_r/Makefile.in: Reorder.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Fix Makefile rules for powerpc64le, from 2015-08-23.
	* trampoline/Makefile.devel (CPP): New variable.
	(tramp-powerpc64le.o, tramp-powerpc64le.s): New targets.
	* trampoline/Makefile.in (tramp-powerpc64le.o, tramp-powerpc64le.s):
	Remove targets.
	* callback/trampoline_r/Makefile.devel (CPP): New variable.
	(tramp-powerpc64le.o, tramp-powerpc64le.s): New targets.
	* callback/trampoline_r/Makefile.in (tramp-powerpc64le.lo,
	tramp-powerpc64le.s): Remove targets.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Fix Makefile rules for s390, from 2002-03-24.
	* trampoline/Makefile.devel (tramp-s390.o): New target.
	* trampoline/Makefile.in (tramp-s390.o): Remove target.
	* callback/trampoline_r/Makefile.devel (tramp-s390.o): New target.
	* callback/trampoline_r/Makefile.in (tramp-s390.lo): Remove target.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Fix "make distclean".
	* avcall/Makefile.in (distclean): Also remove config.h.
	* callback/Makefile.in (distclean): Likewise.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Make it possible to build in $(srcdir) on case-insensitive file systems.
	* avcall/avcall-${cpu}-macro.S: Renamed from avcall/avcall-${cpu}.S.
	* avcall/Makefile.devel: Update accordingly.
	* avcall/Makefile.in: Likewise.
	* vacall/vacall-${cpu}-macro.S: Renamed from vacall/vacall-${cpu}.S.
	* vacall/Makefile.devel: Update accordingly.
	* vacall/Makefile.in: Likewise.
	* trampoline/cache-sparc-macro.S: Renamed from trampoline/cache-sparc.S.
	* trampoline/Makefile.devel: Update accordingly.
	* trampoline/Makefile.in: Update accordingly.
	* callback/vacall_r/vacall-${cpu}-macro.S: Renamed from
	callback/vacall_r/vacall-${cpu}.S.
	* callback/vacall_r/Makefile.devel: Update accordingly.
	* callback/vacall_r/Makefile.in: Likewise.
	* callback/trampoline_r/cache-sparc-macro.S: Renamed from
	callback/trampoline_r/cache-sparc.S.
	* callback/trampoline_r/Makefile.devel: Update accordingly.
	* callback/trampoline_r/Makefile.in: Update accordingly.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Simplify armel build rule.
	* avcall/Makefile.devel (avcall-armel.s): Renamed from avcall-armel.S.
	Simplify.
	* avcall/Makefile.in (avcall-armel.lo): Use $(srcdir)/avcall-armel.s.
	(avcall-armel.s): Remove target.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Put duplicated files under version control only once.
	* autogen.sh: Copy some files from trampoline/ to callback/trampoline_r.
	* common/asm*.sh: Moved here from avcall/, vacall/, callback/vacall_r.
	* common/asm*.h: Likewise.
	* common/reg-struct-return: Likewise.
	* common/structcpy.c: Likewise.
	* common/uniq-u.c: Moved here from avcall/, vacall/, callback/.
	* avcall/Makefile.devel: Update paths of asm*.sh.
	* avcall/Makefile.in: Add -I options for asm*.h. Update path of structcpy.c.
	* avcall/Makefile.mingw32: Likewise.
	* avcall/Makefile.msvc: Likewise. Update path of uniq-u.c.
	* vacall/Makefile.devel: Update paths of asm*.sh.
	* vacall/Makefile.in: Add -I options for asm*.h. Update path of structcpy.c.
	* vacall/Makefile.mingw32: Likewise.
	* vacall/Makefile.msvc: Likewise. Update path of uniq-u.c.
	* trampoline/Makefile.devel: Update paths of asm*.sh.
	* trampoline/Makefile.in: Add -I options for asm*.h.
	* callback/Makefile.msvc: Update path of uniq-u.c.
	* callback/vacall_r/Makefile.devel: Update paths of asm*.sh.
	* callback/vacall_r/Makefile.in: Add -I options for asm*.h. Update path of structcpy.c.
	* callback/vacall_r/Makefile.mingw32: Likewise.
	* callback/vacall_r/Makefile.msvc: Likewise.
	* callback/trampoline_r/Makefile.devel: Update paths of asm*.sh.
	* callback/trampoline_r/Makefile.in: Add -I options for asm*.h.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Fix dependencies.
	* avcall/Makefile.devel (avcall-sparc64.S): Depend on asmsparc64.sh,
	not asmsparc.sh.
	* vacall/Makefile.devel (vacall-sparc64.S): Likewise.
	* callback/vacall_r/Makefile.devel (vacall-sparc64.S): Likewise.
	* callback/Makefile.maint (vacall_r/vacall-i386-*.c): Don't depend on
	vacall_r/asmi386.sh.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Add missing dependency.
	* callback/vacall_r/Makefile.devel (vacall-m68k-netbsd.S): Depend on
	asmm68k.sh.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Switch to libtool-2.4.6.
	* autogen.sh (LIBTOOL_VERSION): Set to 2.4.6.
	* Makefile.maint (libtool-imported-files): Import also m4/ltoptions.m4,
	m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4.
	* m4/general.m4 (FFCALL_COMMON_LIBTOOL): Invoke LT_INIT.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Switch to autoconf 2.69 and automake 1.15.
	* Makefile.maint (ACLOCAL, AUTOCONF, AUTOHEADER): Bump version numbers.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Remove files that can easily be autogenerated from version control.
	* autogen.sh: New file.
	* Makefile.maint: New file, partially inspired by Makefile.devel.
	* Makefile.devel (all): Remove target and its subtargets.
	* avcall/Makefile.maint: New file, extracted from avcall/Makefile.devel.
	* avcall/Makefile.devel (precompiled): Renamed from 'all'.
	Remove all targets that are moved to avcall/Makefile.maint.
	* vacall/Makefile.maint: New file, extracted from vacall/Makefile.devel.
	* vacall/Makefile.devel (precompiled): Renamed from 'all'.
	Remove all targets that are moved to vacall/Makefile.maint.
	* trampoline/Makefile.maint: New file, extracted from
	trampoline/Makefile.devel.
	* trampoline/Makefile.devel (precompiled): Renamed from 'all'.
	Remove all targets that are moved to trampoline/Makefile.maint.
	* callback/Makefile.maint: Renamed from callback/Makefile.devel.
	(trampoline_r/trampoline_r.man): New target.
	(totally-clean, force): New targets.
	* callback/vacall_r/Makefile.maint: New file, extracted from
	callback/vacall_r/Makefile.devel.
	* callback/vacall_r/Makefile.devel (precompiled): Renamed from 'all'.
	Remove all targets that are moved to callback/vacall_r/Makefile.maint.
	(vacall_r.man): Remove target.
	* callback/trampoline_r/Makefile.maint: New file, extracted from
	callback/trampoline_r/Makefile.devel.
	* callback/trampoline_r/Makefile.devel (precompiled): Renamed from
	'all'.
	Remove all targets that are moved to
	callback/trampoline_r/Makefile.maint.

2016-12-26  Bruno Haible  <bruno@clisp.org>

	Remove test result files from version control.
	* callback/trampoline_r/tests.passed.i386-pc-win32-gcc: Remove file.

2015-08-23  Hernán Erasmo  <dherasmo@gmail.com>

	Added compatibility with ppc64le architecture. Credit goes
	to Masanori Mitsugi <mitsugi@linux.vnet.ibm.com>

2012-04-24  Sam Steingold  <sds@gnu.org>

	Never build shared libraries: --enable-shared has no effect.
	* avcall/Makefile.in (libavcall.la): pass -static to LIBTOOL_LINK
	* callback/Makefile.in (libcallback.la): ditto
	* callback/trampoline_r/Makefile.in (libtrampoline.la): ditto
	* callback/vacall_r/Makefile.in (libvacall.la): ditto

2010-09-03  Sam Steingold  <sds@gnu.org>

	* configure.in: call AC_CONFIG_AUX_DIR(build-aux)

2010-09-03  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-imported): also import host-cpu-c-abi
	* avcall/configure.in, callback/configure.in:
	* callback/trampoline_r/configure.in, callback/vacall_r/configure.in:
	* trampoline/configure.in, vacall/configure.in:
	use gl_HOST_CPU_C_ABI instead of FFCALL_CANONICAL_HOST_CPU
	* m4/general.m4: remove FFCALL_CANONICAL_HOST_CPU,
	FFCALL_CACHE_EGREP_CPP, FFCALL_SET_CPU_ABI
	* glm4/host-cpu-c-abi.m4: add
	* avcall/Makefile.in, callback/Makefile.in:
	* callback/trampoline_r/Makefile.in, callback/vacall_r/Makefile.in:
	* trampoline/Makefile.in, vacall/Makefile.in,
	use @HOST_CPU_C_ABI@ instead of @host_cpu_abi@
	* callback/trampoline_r/configure.in, trampoline/configure.in:
	* m4/codeexec.m4: use $HOST_CPU_C_ABI instead of $host_cpu_abi

2010-07-20  Sam Steingold  <sds@gnu.org>

	* callback/trampoline_r/trampoline_r.h.in, trampoline/trampoline.h.in:
	add autoconf CPU detection block; this fixes trampoline on sparc64/linux
	Suggested by Valeriy E. Ushakov <uwe@netbsd.org>

2010-07-20  Valeriy E. Ushakov  <uwe@netbsd.org>

	https://savannah.gnu.org/bugs/?22081
	support sparc64 for solaris & *bsd
	* avcall/avcall-sparc64.c, avcall/avcall.h.in:
	Kill callee (%g2). Sparc64 doesn't need that code.
	Delete space[] - gcc optimizes it away anyway, and it doesn't
	guarantee correct operation even if it's not removed - if compiler
	allocs it below other local vars on the stack, then calling
	function with enough arguments will clobber local vars.
	Instead i've changed the code to use alloca, see the comment in
	the code for details on why this works. It also doesn't waste 2K
	of stack on each call, we only grab the space we actually need.
	I nuked farg_mask. It's not necessary for float args, marking
	them in darg_mask does the right thing (new av_float). And they
	just hurt structure passing, where, again, marking up darg_mask
	does the right thing.
	* avcall/avcall-saprc64.S: Regenerated with NetBSD gcc4
	* vacall/vacall-sparc64.S, callback/vacall_r/vacall-sparc64.S:
	New binutils on sparc64 insist on having global registers properly
	declared with .register. I've just added the declarations manually
	w/out actually regenerating the files to demonstrate that's the
	only change needed there. IF the files are regenerated with a
	newer compiler you will get them automatically.

2009-11-10  Sam Steingold  <sds@gnu.org>

	* vacall/Makefile.in (vacall-armel.o): vacall-armel.s is in $(srcdir)
	* callback/vacall_r/Makefile.in (vacall-armel.lo): ditto

2009-10-16  Sam Steingold  <sds@gnu.org>

	the final fix for LIBFFCALL_VERSION
	* Makefile.devel (vacall/vacall.h.msvc, vacall/vacall.h.mingw32)
	(callback/vacall_r/vacall_r.h.msvc)
	(callback/vacall_r/vacall_r.h.mingw32): depend on VERSION
	* avcall/avcall.h.in, callback/callback.h.in,
	* callback/trampoline_r/trampoline_r.h.in, vacall/vacall.h.in,
	* callback/vacall_r/vacall_r.h.in, trampoline/trampoline.h.in:
	use @LIBFFCALL_VERSION@ instead of @PACKAGE_VERSION@
	* avcall/configure.in: additional processing for avcall.h to
	substitute @LIBFFCALL_VERSION@
	* callback/configure.in: ditto for callback.h
	* callback/trampoline_r/configure.in: ditto for trampoline_r.h
	* callback/vacall_r/configure.in: ditto for vacall_r.h
	* trampoline/configure.in: ditto for trampoline.h
	* vacall/configure.in: ditto for vacall.h
	* callback/vacall_r/Makefile.devel (vacall_r.h.msvc)
	(vacall_r.h.mingw32): depend on ../../VERSION;
	substitute @LIBFFCALL_VERSION@
	* vacall/Makefile.devel (vacall.h.msvc, vacall.h.mingw32): depend
	on ../VERSION; substitute @LIBFFCALL_VERSION@

2009-10-16  Sam Steingold  <sds@gnu.org>

	* glm4/longlong.m4, glm4/nocrash.m4: update from gnulib

2009-10-16  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (update-gnulib): use git when available

2009-10-16  Sam Steingold  <sds@gnu.org>

	* avcall/configure.in, callback/configure.in,
	* callback/trampoline_r/configure.in, callback/vacall_r/configure.in,
	* trampoline/configure.in, vacall/configure.in: list the main generated
	header (avcall.h et al) in AC_CONFIG_HEADERS, not in AC_CONFIG_FILES
	fixes the bug#27706 (introduced on 2009-04-24)

2009-04-28  Sam Steingold  <sds@gnu.org>

	* m4/general.m4 (FFCALL_CACHE_EGREP_CPP, FFCALL_SET_CPU_ABI):
	abstracted out of FFCALL_CANONICAL_HOST_CPU
	(FFCALL_CANONICAL_HOST_CPU): use them

2009-04-27  Max Lapan  <max.lapan@gmail.com>
	Sam Steingold  <sds@gnu.org>

	* avcall/Makefile.devel, avcall/Makefile.in, avcall/avcall.h.in,
	* callback/trampoline_r/Makefile.devel,
	* callback/trampoline_r/Makefile.in,
	* callback/trampoline_r/configure.in,
	* callback/vacall_r/Makefile.devel, callback/vacall_r/Makefile.in,
	* callback/vacall_r/vacall_r.h.in, trampoline/Makefile.devel,
	* trampoline/Makefile.in, trampoline/configure.in,
	* vacall/Makefile.devel, vacall/Makefile.in, vacall/vacall.h.in:
	Add ARMel support <https://savannah.gnu.org/bugs/?22492>
	* m4/general.m4 (FFCALL_CANONICAL_HOST_CPU): use AC_EGREP_CPP to
	distinguish between arm and armel
	* avcall/avcall-armel.S, avcall/avcall-armel.c,
	* callback/trampoline_r/cache-armel.c,
	* callback/trampoline_r/cache-armel.s,
	* callback/vacall_r/vacall-armel.c, callback/vacall_r/vacall-armel.s,
	* trampoline/cache-armel.c, trampoline/cache-armel.s,
	* vacall/vacall-armel.c, vacall/vacall-armel.s:
	new files

2009-04-27  Max Lapan  <max.lapan@gmail.com>

	* avcall/tests.c, callback/tests.c, vacall/tests.c:
	#include "config.h" for HAVE_LONG_LONG_INT

2009-04-27  Max Lapan  <max.lapan@gmail.com>

	* callback/trampoline_r/trampoline.c (is_tramp) [__arm__]:
	fix bug in the last patch

2009-04-24  Sam Steingold  <sds@gnu.org>

	* avcall/configure.in, callback/configure.in,
	* callback/trampoline_r/configure.in, callback/vacall_r/configure.in,
	* trampoline/configure.in, vacall/configure.in:
	use AC_CONFIG_FILES instead of AC_OUTPUT with argument
	* Makefile.devel (aclocal.m4): adjust the grep regexp

2009-04-24  Sam Steingold  <sds@gnu.org>

	* Makefile.in, avcall/Makefile.in, callback/Makefile.in,
	* callback/trampoline_r/Makefile.in, callback/vacall_r/Makefile.in,
	* trampoline/Makefile.in, vacall/Makefile.in (datarootdir):
	set to @datarootdir@ to avoid a configure warning

2009-04-24  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (SUBDIRS_CONFIG_H): add avcall and callback

2009-04-24  Sam Steingold  <sds@gnu.org>

	* VERSION: new file
	* configure.in: use AC_INIT with the version argument
	* avcall/Makefile.mingw32: use sed to set LIBFFCALL_VERSION in avcall.h
	* callback/vacall_r/Makefile.mingw32:
	use sed to set LIBFFCALL_VERSION in vacall_r.h
	* vacall/Makefile.mingw32: use sed to set LIBFFCALL_VERSION in vacall.h
	* avcall/avcall.h.in, callback/callback.h.in,
	* callback/trampoline_r/trampoline_r.h.in,
	* callback/vacall_r/vacall_r.h.in,
	* trampoline/trampoline.h.in, vacall/vacall.h.in:
	(LIBFFCALL_VERSION): define to @PACKAGE_VERSION@
	* avcall/configure.in, callback/configure.in,
	* callback/trampoline_r/configure.in, callback/vacall_r/configure.in,
	* trampoline/configure.in, vacall/configure.in:
	use AC_INIT with the version argument,
	pass [config.h] to AC_CONFIG_HEADERS

2009-04-23  Sam Steingold  <sds@gnu.org>

	* m4/codeexec.m4, m4/ireg.m4, m4/pccstruct.m4, m4/smallstruct.m4:
	all 3 arguments of AC_DEFINE are now required

2009-04-21  Sam Steingold  <sds@gnu.org>

	* m4/as-underscore.m4, m4/codeexec.m4, m4/general.m4:
	* m4/getpagesize.m4, m4/ireg.m4, m4/mach-vm.m4, m4/mmap.m4:
	* m4/mprotect.m4, m4/pccstruct.m4, m4/shm.m4, m4/smallstruct.m4:
	quote AC_DEFINE arguments

2008-09-28  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (aclocal.m4): include glm4 (this defined gl_EARLY
	and gl_INIT and fixes make check on x86_64)

2008-09-26  Sam Steingold  <sds@gnu.org>

	* avcall/avcall-ia64.s, avcall/avcall.h.in:
	* callback/vacall_r/vacall_r.h.in:
	support IA64 on Linux (kernel 2.6.16+ and gcc 4.1.0+)
	https://savannah.gnu.org/bugs/index.php?22130
	http://sourceforge.net/tracker/index.php?func=detail&aid=1528895&group_id=1355&atid=301355

2008-09-26  Sam Steingold  <sds@gnu.org>

	* callback/trampoline_r/Makefile.in, callback/trampoline_r/cache-arm.c:
	* callback/trampoline_r/cache-arm.s, callback/trampoline_r/configure.in:
	* callback/trampoline_r/tramp-arm.s, callback/trampoline_r/tramp-mips.s:
	* callback/trampoline_r/trampoline.c, trampoline/cache-arm.c:
	* trampoline/cache-arm.s, trampoline/configure.in:
	* trampoline/tramp-arm.s, trampoline/trampoline.c:
	add arm support from Jonathan Olson (debian 1.10-2)
	https://savannah.gnu.org/bugs/?func=detailitem&item_id=9468

2008-09-26  Sam Steingold  <sds@gnu.org>

	* avcall/avcall-mips.S, avcall/avcall-mips.c, avcall/avcall.h.in:
	* callback/trampoline_r/trampoline.c, callback/vacall_r/vacall_r.h.in:
	* m4/general.m4, trampoline/trampoline.c, vacall/vacall.h.in:
	add mipsel support from Thiemo Seufer (debian 1.10-2)

2008-09-26  Sam Steingold  <sds@gnu.org>

	* Makefile.devel, Makefile.in, callback/Makefile.devel,
	* callback/Makefile.in: use "&&" instead of ";" for all targets

2008-07-13  Sam Steingold  <sds@gnu.org>

	* glm4/gnulib-cache.m4, glm4/gnulib-common.m4, glm4/gnulib-comp.m4:
	* glm4/gnulib-tool.m4, glm4/onceonly.m4: add from gnulib
	* glm4/nocrash.m4: update from gnulib
	* Makefile.devel (gnulib-imported): remove gllib
	* configure.ac: call gl_EARLY and gl_INIT

2008-07-08  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (SUBDIRS_CONFIGURE): use $(CURDIR) instead of .
	(%/configure): use "&&" instead of ";"

2008-07-03  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (all): split into a few manageable targets
	(config-h-in, woe32-h, woe32-c): new targets
	(configure): use patterns

2008-07-03  Sam Steingold  <sds@gnu.org>

	* m4/smallstruct.m4 (FFCALL_SMALL_STRUCT_RETURN): rename from
	CL_SMALL_STRUCT_RETURN; use ffcall_cv_* instead of cl_cv_*;
	use return instead of exit()
	* m4/pccstruct.m4 (FFCALL_PCC_STRUCT_RETURN): rename from
	CL_PCC_STRUCT_RETURN; use ffcall_cv_* instead of cl_cv_*;
	use return instead of exit()
	* m4/ireg.m4 (FFCALL_IREG_FLOAT_RETURN): remame from
	CL_IREG_FLOAT_RETURN; use ffcall_cv_* instead of cl_cv_*;
	use return instead of exit()
	* m4/codeexec.m4 (FFCALL_CODEEXEC): rename from CL_CODEEXEC
	use ffcall_cv_* instead of cl_cv_*; use return instead of exit()
	* m4/general.m4: remove non-FFCALL code
	(FFCALL_COMMON_LIBTOOL): rename from CL_FFCALL_COMMON_LIBTOOL
	(FFCALL_COMMON_TRAMPOLINE): rename from CL_FFCALL_COMMON_TRAMPOLINE
	(FFCALL_CANONICAL_HOST_CPU): <- CL_CANONICAL_HOST_CPU_FOR_FFCALL

2008-07-03  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (build-aux-update): new target

2008-07-02  Sam Steingold  <sds@gnu.org>

	* Makefile.devel (gnulib-imported, update-gnulib): new targets
	* glm4: new directory
	* longlong.m4, nocrash.m4: move from m4 to glm4

2008-07-02  Sam Steingold  <sds@gnu.org>

	* m4/ln.m4: update from clisp
	* m4/cp.m4: remove
	* m4/getpagesize.m4: update from clisp
	* m4/general.m4: update from clisp
	* m4/mmap.m4: update from clisp
	* m4/mprotect.m4: update from clisp
	* m4/proto.m4: update from clisp
	* m4/openflags.m4: remove
	* m4/cc-void.m4: remove

2008-07-02  Sam Steingold  <sds@gnu.org>

	* Makefile.devel, aclocal.m4: move autoconf/aclocal.m4 to aclocal.m4
	* aclocal/autoconf.m4: remove
	* Makefile.devel (CLISP_DIR): remove

2008-07-02  Sam Steingold  <sds@gnu.org>

	* m4/ffcall-pccstruct.m4, m4/ffcall-smallstruct.m4, m4/ffcall-ireg.m4:
	* m4/ffcall-codeexec.m4: remove "ffcall-" prefix
	* Makefile.devel: update

See clisp ChangeLog for earlier changes.
