2020-02-06  Dmitry V. Levin  <ldv@altlinux.org>

	Prepare for 5.5 release.
	* NEWS: Update for 5.5 release.

	Update copyright year number range.
	* COPYING: Update copyright year number range.
	* tests/COPYING: Likewise.
	* debian/copyright: Likewise.

	Update copyright headers.
	Headers updated automatically using maint/update_copyright_years.sh
	script.

2020-02-06  Dmitry V. Levin  <ldv@altlinux.org>

	maint/update_copyright_years.sh: fix concurrent execution.
	* maint/update_copyright_years.sh (process_file): Replace "continue"
	with "return".

	Fixes: v4.21~318 "maint/update_copyright_years.sh: implement concurrent execution"

2020-02-06  Dmitry V. Levin  <ldv@altlinux.org>

	maint/update_copyright_years.sh: fix "integer expression expected" error
	* maint/update_copyright_years.sh: Check $copyright_year before use
	in arithmetic operations.

2020-02-05  Eugene Syromyatnikov  <evgsyr@gmail.com>

	strace: produce a sensible error if -k option is used but not compiled in
	* strace.c (init) <optstring>: Do not put "k" option under
	ENABLE_STACKTRACE.
	(init) <longopts>: Do not put "stack-traces" option under
	ENABLE_STACKTRACE.
	(init) <case 'k'> [!ENABLE_STACKTRACE]: Print an error message.
	* tests/options-syntax.test: Check that the expected error message
	is printed if -k is not compiled in.

2020-02-05  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: move getstr/getoption from strace-V.test to init.sh.
	And rename to more generic get_config_str/get_config_option.

	* tests/strace-V.test (getstr, getoption): Rename to get_config_str
	and get_config_option, respectively.  All users updated.
	(get_config_str, get_config_option): Move ...
	* tests/init.sh: ... here.

2020-02-05  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests/syntax: fix incorrect match_diff/macth_grep usage.
	match_diff and match_grep take the error message as the third argument
	and pass it on to fail_, while the calling code expects that they simply
	return non-zero in case of error.

	* tests/syntax.sh (check_exit_status_and_stderr,
	check_exit_status_and_stderr_using_grep): Specify the error message as
	the third argument to match_diff/match grep instead of trying to handle
	the erroneous status code.

2020-02-05  Dmitry V. Levin  <ldv@altlinux.org>

	strace: use qualify_*
	* strace.c (init): Use qualify_trace, qualify_abbrev, qualify_verbose,
	qualify_status, and qualify_signals instead of qualify.

	Complements: v5.4-100-g490bfd465 "Add long options for qualifiers"

2020-02-05  Dmitry V. Levin  <ldv@altlinux.org>

	strace: rename *_OPTION to GETOPT_*
	* strace.c (init) <enum>: Rename *_OPTION to GETOPT_*.  All users
	updated.

2020-02-04  Dmitry V. Levin  <ldv@altlinux.org>

	tests: add tests for new long options.
	* tests/gen_tests.in (access): Check --trace-path.
	(fstatat64, lstat, lstat64, newfstatat, stat, stat64, statx): Check
	--no-abbrev and --trace-path.
	* tests/options-syntax.test: Check --attach, --detach-on, --output,
	--summary, --summary-only, --summary-wall-clock, --string-limit,
	--const-print-style, --user, and --instruction-pointer.
	* tests/qual_syscall.test: Check --columns.
	* tests/strace-E.test: Check --env.
	* tests/strace-S.test: Check --summary-sort-by.
	* tests/strace-k.test: Check --stack-trace.

2020-02-04  Eugene Syromyatnikov  <evgsyr@gmail.com>

	Add long option aliases to some options.
	* strace.c (init) <longopts>: Add "columns" for "a",
	"detach-on" for "b", "summary-only" for "c", "summary" for "C",
	"env" for "E", "instruction-pointer" for "i", "stack-traces" for "k",
	"output" for "o", "attach" for "p", "trace-path" for "P", "string-limit"
	for "s", "summary-sort-by" for "S", "user" for "u", "no-abbrev" for "v",
	"summary-wall-clock" for "w", and "const-print-style" for "X".
	(usage): Document it.
	* strace.1.in: Likewise.

2020-02-04  Dmitry V. Levin  <ldv@altlinux.org>

	tests: add tests for new long options.
	* tests/filtering_fd-syntax.test: Check --read and --write.
	* tests/filtering_syscall-syntax.test: Check --trace, --abbrev,
	--verbose, --raw, --inject, and --fault.
	* tests/gen_tests.in: Check --status.
	* tests/options-syntax.test: Check --kvm.
	* tests/qual_signal.test: Check --signal.
	* tests/qual_syscall.test: Check --trace, --abbrev, --raw,
	and --verbose.

2020-02-04  Eugene Syromyatnikov  <evgsyr@gmail.com>

	Add long options for qualifiers.
	Add a long option for each respective -e qualifier.

	* defs.h (qualify_trace, qualify_abbrev, qualify_verbose, qualify_raw,
	qualify_signals, qualify_status, qualify_read, qualify_write,
	qualify_fault, qualify_inject, qualify_kvm): Add declarations.
	* filter_qualify.c (qualify_trace, qualify_abbrev, qualify_verbose,
	qualify_raw, qualify_signals, qualify_status, qualify_read,
	qualify_write, qualify_fault, qualify_inject, qualify_kvm): Remove
	static qualifier.
	* strace.1.in: Document long option aliases.
	* strace.c (usage): Likewise.
	(init) <enum>: Add QUAL_TRACE_OPTION, QUAL_ABBREV_OPTION,
	QUAL_VERBOSE_OPTION, QUAL_RAW_OPTION, QUAL_SIGNAL_OPTION,
	QUAL_STATUS_OPTION, QUAL_READ_OPTION, QUAL_WRITE_OPTION,
	QUAL_FAULT_OPTION, QUAL_INJECT_OPTION, QUAL_KVM_OPTION.
	(init) <longopts>: Add items for qualifiers.
	(init): Handle new *_OPTION options.

2020-02-04  Eugene Syromyatnikov  <evgsyr@gmail.com>

	strace: describe -e options in the help message.
	So it is a bit more clear how to use them (especially such elaborate
	ones as -e inject).

	* strace.c (usage): Add -e trace, -e signal, and -e status option
	descriptions to the Filtering section; add -e abbrev, -e verbose,
	-e raw, -e read, -e write, and -e kvm option descriptions to the Output
	format section; add Tampering section with description of -e inject
	and -e fault options.

2020-02-04  Eugene Syromyatnikov  <evgsyr@gmail.com>

	strace: document supported constant formats in the usage message.
	* strace.c (usage): Provide the list of supported formats
	for the -X option.

2020-02-04  Eugene Syromyatnikov  <evgsyr@gmail.com>

	strace: capitalise placeholders in option declarations in usage.
	It is already capitalised in descriptions (rather inconsistently,
	however), the capitalisation is already used for "PROG" and "ARGS",
	and it allows consistently distinguish placeholders from literals.
	The manual page does not need the same treatment, it seems,
	as the italic script is used there for that purpose.

	Capitalise the "usage:" part, as it is often capitalised in the usage
	messages of some other programs.

	* strace.c (usage): Capitalise "expr", "column", "interruptible",
	"path", "file", "var", "val", "strsize", "pid", "format", "overhead",
	"sortby" placeholders where appropriate. Capitalise the first letter
	in "usage:".

2020-02-04  Eugene Syromyatnikov  <evgsyr@gmail.com>

	strace: sync up help message with the manual page.
	They had discrepancies in section/optoin order for no reason.

	* strace.c (usage): Move -e option in a separate General section,
	put the rest of the sections in Startup, Tracing, Filtering, Output
	format, Statistics, Miscellaneous order, as it is in the manual page;
	add -ttt option description, swap -E var=val and -E var options, put
	-A option description after -o, put --seccomp-bpf option description
	after -h.
	* NEWS: Mention this change.

2020-02-04  Eugene Syromyatnikov  <evgsyr@gmail.com>

	strace.1: use .UR macro for the link to the mailing list.
	* strace.1.in (.SH REPORTING BUGS): Use .UR for the mailing list link.

	strace.1: s/PERSONALITY/PERSONALITIES/
	* strace.1.in (.SH "MULTIPLE PERSONALITY SUPPORT"): Change to...
	(.SH "MULTIPLE PERSONALITIES SUPPORT"): ...this.

2020-02-04  Eugene Syromyatnikov  <evgsyr@gmail.com>

	strace.1: remove commas between option variants.
	Comma is not historically used in strace.1 to separate option aliases.

	* strace.1.in (.SS Miscellaneous): Remove comma after -d, -h, and -V
	declarations.

2020-02-04  Eugene Syromyatnikov  <evgsyr@gmail.com>

	strace.1: re-factor -e trace description.
	Moreover, -e features description was incorrect ("?" option
	is applicable only to -e trace)

	* strace.1.in: Re-factor -e trace description.
	* NEWS: Mention this change.

2020-02-04  Eugene Syromyatnikov  <evgsyr@gmail.com>

	printrusage: use PRINT_FIELD_U instead of PRINT_RUSAGE_MEMBER.
	As the former is standard.

	* printrusage.c (printrusage, printrusage32): Use PRINT_FIELD_U instead
	of PRINT_RUSAGE_MEMBER.
	(printrusage, printrusage32) <PRINT_RUSAGE_MEMBER>: Remove.

2020-02-04  Eugene Syromyatnikov  <evgsyr@gmail.com>

	filter_qualify.c: make statuses definition a bit more explicit.
	Avoid imlicit relying on the same ordering of statuses in the enum
	and in the string array.

	* filter_qualify.c (statuses): Add index designators to initialisers.

2020-02-03  Dmitry V. Levin  <ldv@altlinux.org>

	strace: add --debug alias for -d.
	* strace.1.in (.SH OPTIONS): Document --debug option.
	* strace.c (usage): Likewise.
	(longopts): Add "debug" as an alias to "d".
	* tests/options-syntax.test: Check -d and --debug options.

2020-02-03  Eugene Syromyatnikov  <evgsyr@gmail.com>

	io_uring: add support of wq_fd field decoding to io_uring_setup.
	Introduced by Linux commit v5.5-rc7-74-g24369c2e3bb0.

	* configure.ac (AC_CHECK_HEADERS([linux/io_uring.h])): Add
	struct io_uring_params.wq_fd field check.
	* io_uring.c (io_uring_setup): Print wq_fd field.
	* tests/io_uring_setup.c: Update expected output.
	* types/io_uring.h (struct_io_uring_params): Add wq_fd field.
	* xlat/uring_setup_flags.in (IORING_SETUP_ATTACH_WQ): New constant.

2020-02-02  Eugene Syromyatnikov  <evgsyr@gmail.com>

	xlat: add IORING_SETUP_CLAMP to uring_setup_flags.
	* xlat/uring_setup_flags.in (IORING_SETUP_CLAMP): New constant,
	introduced by Linux commit v5.5-rc7-43-g8110c1a6212e.
	* tests/io_uring_setup.c: Update expected output.

	xlat: update uring_setup_features constants.
	* xlat/uring_setup_features.in (IORING_FEAT_RW_CUR_POS): New constant,
	introduced by Linux commit v5.5-rc7-35-gba04291eb66e.
	(IORING_FEAT_CUR_PERSONALITY): New constant, introduced by Linux commit
	v5.5-rc7-72-gcccf0ee83455.

2020-01-29  Eugene Syromyatnikov  <evgsyr@gmail.com>

	Update NEWS.

2020-01-29  Eugene Syromyatnikov  <evgsyr@gmail.com>

	xlat: provide values to ptrace_cmds.
	Use the output of maint/gen_xlat_defs.sh and perform some re-ordering.

	* xlat/ptrace_cmds.in: Provide values to constants.
	(PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS, PTRACE_SETFPREGS,
	PTRACE_GETFPXREGS, PTRACE_SETFPXREGS, PTRACE_GETHBPREGS,
	PTRACE_SETHBPREGS, PTRACE_GETREGS64, PTRACE_SETREGS64, PTRACE_SYSEMU,
	PTRACE_SYSEMU_SINGLESTEP): Move to arch-specific section.
	(PTRACE_SET_SYSCALL): Move to arm section.
	(PTRACE_GETVRREGS, PTRACE_SETVRREGS): Move to powerpc section.
	(PPC_PTRACE_POKEUSR_3264, PPC_PTRACE_PEEKUSR_3264,
	PPC_PTRACE_POKEDATA_3264, PPC_PTRACE_POKETEXT_3264,
	PPC_PTRACE_PEEKDATA_3264, PPC_PTRACE_PEEKTEXT_3264): Add constants.

	References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201

2020-01-28  Eugene Syromyatnikov  <evgsyr@gmail.com>

	maint: gen_xlat_defs.sh updates.
	Allow whitespace between "#" and "define" and allow passing glob
	expressions to the -a option.

	* maint/gen_xlat_defs.sh: Add "[[:space:]]*" between "#" and "define"
	in regular expressions; match "[^:]*" instead of "$ARCH_DEFS_FILE".

2020-01-28  Dmitry V. Levin  <ldv@altlinux.org>

	.mailmap: add more entries to avoid duplication in CREDITS.

2020-01-27  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>

	Update ioctl entries from linux v5.5.
	* linux/32/ioctls_inc_align16.h: Update from linux v5.5
	using ioctls_gen.sh.
	* linux/32/ioctls_inc_align32.h: Likewise.
	* linux/32/ioctls_inc_align64.h: Likewise.
	* linux/64/ioctls_inc.h: Likewise.
	* linux/x32/ioctls_inc0.h: Likewise.
	* linux/powerpc/ioctls_arch0.h: Likewise.
	* NEWS: Mention this.

	maint: update for linux v5.5.
	* maint/ioctls_sym.sh: Define UL and ULL macros for every processed
	file.  Add a workaround for linux/platform_data/cros_ec_chardev.h file.

2020-01-27  Eugene Syromyatnikov  <evgsyr@gmail.com>
	    Dmitry V. Levin  <ldv@altlinux.org>

	keyctl: implement KEYCTL_CAPABILITIES operation decoding.
	Introduced by Linux kernel commit v5.3-rc1~189^2.

	* xlat/keyctl_caps0.in: New file.
	* xlat/keyctl_caps1.in: Likewise.
	* keyctl.c: Include "xlat/keyctl_caps0.h" and "xlat/keyctl_caps1.h".
	(print_keyctl_caps, keyctl_capabilities): New functions.
	(SYS_FUNC(keyctl)) <case KEYCTL_CAPABILITIES>: Call keyctl_capabilities.
	* tests/keyctl.c: Add checks.

2020-01-27  Eugene Syromyatnikov  <evgsyr@gmail.com>

	keyctl: implement KEYCTL_MOVE operation decoding.
	Introduced by Linux kernel commit v5.3-rc1~189^2.

	* xlat/keyctl_move_flags.in: New file.
	* keyctl.c: Include "xlat/keyctl_move_flags.h".
	(keyctl_move): New function.
	(SYS_FUNC(keyctl)) <case KEYCTL_MOVE>: Call it.
	* tests/keyctl.c: Add checks.

2020-01-27  Eugene Syromyatnikov  <evgsyr@gmail.com>
	    Dmitry V. Levin  <ldv@altlinux.org>

	keyctl: implement KEYCTL_PKEY_* operations decoding.
	Introduced by Linux kernel commit v5.0-rc1~453^2~20.

	* configure.ac (AC_CHECK_TYPES): Check for struct keyctl_pkey_params
	and struct keyctl_pkey_query.
	* keyctl.c: Include "xlat/keyctl_pkey_ops.h".
	(struct keyctl_pkey_query, struct keyctl_pkey_params): New type
	definitions.
	(print_pkey_query, keyctl_pkey_query, fetch_print_pkey_params,
	keyctl_pkey_op): New functions.
	(SYS_FUNC(keyctl)) <case KEYCTL_PKEY_QUERY>: Call keyctl_pkey_query.
	(case KEYCTL_PKEY_ENCRYPT, case KEYCTL_PKEY_DECRYPT, case
	KEYCTL_PKEY_SIGN, case KEYCTL_PKEY_VERIFY): Call keyctl_pkey_op.
	* xlat/keyctl_pkey_ops.in: New file.
	* tests/keyctl.c: Add checks.

2020-01-27  Eugene Syromyatnikov  <evgsyr@gmail.com>

	keyctl: do not open-code struct keyctl_kdf_params.__spare printing.
	* keyctl.c (keyctl_dh_compute): Replace open-coded printing of
	struct keyctl_kdf_params.__spare with a pair of IS_ARRAY_ZERO and
	PRINT_FIELD_ARRAY calls.

2020-01-27  Eugene Syromyatnikov  <evgsyr@gmail.com>

	keyctl: consolidate xlat headers in the beginning of the file.
	This gives a better overview of the xlat usage.

	* keyctl.c: Move "xlat/key_perms.h", "xlat/key_reqkeys.h", and
	"xlat/keyctl_commands.h" includes to the beginning of the file.

2020-01-27  Eugene Syromyatnikov  <evgsyr@gmail.com>

	rtnl_tc: add support for TCA_STATS_PKT64 attribute decoding.
	Introduced by Linux kernel commit v5.5-rc1~174^2~219^2.

	* configure.ac (AC_CHECK_DECLS): Check for TCA_STATS_PKT64.
	* rtnl_tc.c (tca_stats_nla_decoders) <[TCA_STATS_PKT64]>: New array
	item, call decode_nla_u64.
	* xlat/rtnl_tca_stats_attrs.in (TCA_STATS_PKT64): New constant.
	* tests/nlattr_tc_stats.c: Add TCA_STATS_PKT64 attribute decoding check.

2020-01-27  Eugene Syromyatnikov  <evgsyr@gmail.com>

	rtnl_tc_action: add support for TCA_ACT_FLAGS attribute decoding.
	Introduced by Linux kernel commit v5.5-rc1~174^2~265^2~2.

	* xlat/rtnl_tca_act_flags.in: New file.
	* xlat/rtnl_tc_action_attrs.in (TCA_ACT_FLAGS): New constant.
	* configure.ac (AC_CHECK_DECLS): Check for TCA_ACT_PAD, TCA_ACT_COOKIE,
	and TCA_ACT_FLAGS.
	* rtnl_tc_action.c: Include <linux/pkt_cls.h> and
	"xlat/rtnl_tca_act_flags.h".
	(decode_tca_act_flags): New function.
	(tcamsg_nla_decoders) <[TCA_ACT_FLAGS]>: New array element, use
	decode_tca_act_flags as a decoder.
	* tests/nlattr_tcamsg.c: Add checks.

2020-01-27  Eugene Syromyatnikov  <evgsyr@gmail.com>

	io_uring: add support for IORING_REGISTER_FILES_UPDATE.
	Introduced by Linux kernel commits v5.5-rc1~204^2~61 and v5.5~1^2~2.

	* io_uring.c (print_io_uring_files_update): New function.
	(SYS_FUNC(io_uring_register)) <case IORING_REGISTER_FILES_UPDATE>: Call
	it.
	* types/io_uring.h (struct_io_uring_files_update): New type definition.
	* xlat/uring_register_opcodes.in (IORING_REGISTER_FILES_UPDATE): New
	constant.
	* tests/io_uring_register.c (main): Update invalid op check.
	[HAVE_STRUCT_IO_URING_FILES_UPDATE]: Add checks.

2020-01-21  Dmitry V. Levin  <ldv@altlinux.org>

	io_uring: check struct io_* types automatically.
	Move definitions of struct_io_sqring_offsets, struct_io_cqring_offsets,
	and struct_io_uring_params to a separate types/ header file.

	* configure.ac (AC_CHECK_TYPES): Remove struct io_sqring_offsets,
	struct io_cqring_offsets, and struct io_uring_params.
	(AC_CHECK_MEMBERS): Remove struct io_cqring_offsets.resv.
	* io_uring.c: Include "types/io_uring.h" instead of <linux/io_uring.h>.
	[HAVE_STRUCT_IO_CQRING_OFFSETS]: Remove static_assert checks of
	sizeof(struct io_sqring_offsets).
	(struct_io_sqring_offsets, struct_io_cqring_offsets,
	struct_io_uring_params): Move to ...
	* types/io_uring.h: ... new file.

2020-01-21  Dmitry V. Levin  <ldv@altlinux.org>

	evdev: check struct input_* types automatically.
	Move definitions of struct_input_absinfo, struct_input_keymap_entry,
	and struct_input_mask to a separate types/ header file.

	* configure.ac (AC_CHECK_TYPES): Remove struct input_keymap_entry and
	struct input_mask.
	(AC_CHECK_MEMBERS): Remove struct input_absinfo.resolution.
	* evdev.c: Include "types/evdev.h" instead of <linux/input.h>.
	Remove static_assert checks.
	(struct_input_absinfo, struct_input_keymap_entry, struct_input_mask):
	Move to ...
	* types/evdev.h: ... new file.

2020-01-21  Dmitry V. Levin  <ldv@altlinux.org>

	rtnl_route: check struct rta_mfc_stats and struct rtvia automatically.
	Move definitions of struct_rta_mfc_stats and struct_rtvia to a separate
	types/ header file.

	* configure.ac (AC_CHECK_TYPES): Remove struct rta_mfc_stats and
	struct rtvia.
	* rtnl_route.c: Include "types/rtnl_route.h" instead of "netlink.h" and
	<linux/rtnetlink.h>.
	[HAVE_STRUCT_RTA_MFC_STATS, HAVE_STRUCT_RTVIA]: Remove static_assert checks.
	(struct_rta_mfc_stats, struct_rtvia): Move to ...
	* types/rtnl_route.h: ... new file.

2020-01-21  Dmitry V. Levin  <ldv@altlinux.org>

	rtnl_mdb: check struct br_mdb_entry and struct br_port_msg automatically
	Move definitions of struct_br_mdb_entry and struct_br_port_msg
	to a separate types/ header file.

	* configure.ac (AC_CHECK_TYPES): Remove struct br_mdb_entry and
	struct br_port_msg.
	* rtnl_mdb.c: Include "types/rtnl_mdb.h" instead of <netinet/in.h> and
	<linux/if_bridge.h>.
	[HAVE_STRUCT_BR_PORT_MSG, HAVE_STRUCT_BR_NDB_ENTRY]: Remove static_assert checks.
	(struct_br_mdb_entry, struct_br_port_msg): Move to ...
	* types/rtnl_mdb.h: ... new file.
	* tests/nlattr_mdba_router_port.c: Include <netinet/in.h> before
	<linux/if_bridge.h> to obtain a definition of struct in6_addr needed
	for struct br_mdb_entry.

2020-01-21  Dmitry V. Levin  <ldv@altlinux.org>

	rtnl_neightbl: check all struct ndt_* types automatically.
	Move definitions of struct_ndt_* types to a separate types/ header file.

	* configure.ac (AC_CHECK_TYPES): Remove struct ndt_config and
	struct ndt_stats.
	(AC_CHECK_MEMBERS): Remove struct ndt_stats.ndts_table_fulls.
	* rtnl_neightbl.c: Include "types/rtnl_neightbl.h".
	[HAVE_LINUX_NEIGHBOUR_H]: Remove.
	[HAVE_STRUCT_NDT_CONFIG, HAVE_STRUCT_NDT_STATS]: Remove static_assert
	checks.
	(struct_ndt_config, struct_ndt_stats): Move to ...
	* types/rtnl_neightbl.h: ... new file.

2020-01-21  Dmitry V. Levin  <ldv@altlinux.org>

	rtnl_link: check all struct rtnl_link_stats* and struct ifla_port_vsi types automatically
	Move definitions of struct_rtnl_link_stats* and struct_ifla_port_vsi
	types to a separate types/ header file.

	* configure.ac (AC_CHECK_TYPES): Remove struct ifla_bridge_id,
	struct ifla_port_vsi and struct rtnl_link_stats64.
	(AC_CHECK_MEMBERS): Remove struct rtnl_link_stats.rx_nohandler and
	struct rtnl_link_stats64.rx_nohandler.
	* rtnl_link.c: Include "types/rtnl_link.h".
	[HAVE_LINUX_IF_LINK_H]: Remove.
	[HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER,
	HAVE_STRUCT_RTNL_LINK_STATS64_RX_NOHANDLER, HAVE_STRUCT_IFLA_PORT_VSI]:
	Remove static_assert checks.
	(struct_rtnl_link_stats, struct_rtnl_link_stats64,
	struct_ifla_port_vsi): Move to ...
	* types/rtnl_link.h: ... new file.
	(struct_ifla_bridge_id): New typedef.

2020-01-21  Dmitry V. Levin  <ldv@altlinux.org>

	netlink_crypto: check all struct crypto_* types automatically.
	Move definitions of struct_crypto_* types to a separate types/ header
	file.

	* configure.ac (AC_CHECK_TYPES): Remove struct crypto_*.
	* netlink_crypto.c: Include "types/cryptouser.h".
	[HAVE_LINUX_CRYPTOUSER_H, !CRYPTO_MAX_NAME]: Remove.
	[HAVE_STRUCT_CRYPTO_USER_ALG, HAVE_STRUCT_CRYPTO_REPORT_HASH,
	HAVE_STRUCT_CRYPTO_REPORT_CIPHER, HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER,
	HAVE_STRUCT_CRYPTO_REPORT_AEAD, HAVE_STRUCT_CRYPTO_REPORT_RNG]: Remove
	static_assert checks.
	(struct_crypto_user_alg, struct_crypto_report_hash,
	struct_crypto_report_cipher, struct_crypto_report_blkcipher,
	struct_crypto_report_aead, struct_crypto_report_rng): Move to ...
	* types/cryptouser.h: ... new file.

2020-01-21  Dmitry V. Levin  <ldv@altlinux.org>

	types: new infrastructure for automatic checking of structure types.
	* types/gen.sh: New file.
	* bootstrap: Invoke it.
	* types/find_last_type_fields.awk: New file.
	* configure.ac: Invoke st_CHECK_TYPES.
	(AM_INIT_AUTOMAKE): Add subdir-objects.
	* Makefile.am: Include types/Makemodule.am.
	(ACLOCAL_AMFLAGS): Add -I types.
	(strace_SOURCES): Add $(TYPES_HEADER_FILES).
	(strace_SOURCES_check): Add $(TYPES_CHECK_FILES).
	(EXTRA_DIST): Add types/find_last_type_fields.awk and types/gen.sh.

2020-01-21  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: add strace-k-p test.
	Add a check of the stack unwinding for attached processes.

	* tests/stack-fcall-attach.c: New file.
	* tests/strace-k-p.expected: Likewise.
	* tests/strace-k-p.test: New test.
	* tests/Makefile.am (EXTRA_DIST): Add strace-k-p.expected and strace-k-p.test.
	(STACKTRACE_TESTS): Add strace-k-p.test
	(check_PROGRAMS): Add stack-fcall-attach.
	(stack_fcall_attach_SOURCES): New variable.
	* tests/stack-fcall.c: Include "tests.h" and <unistd.h>.
	[!ATTACH_MODE] (ATTACH_MODE): Define to 0.
	(main) [ATTACH_MODE]: Wait a bit.
	* tests/strace-k.test: Add attach mode.

	Complements: v5.4-18-g69b2c33 "unwind-libdw: fix initialization of libdwfl cache"

2020-01-21  Eugene Syromyatnikov  <evgsyr@gmail.com>

	ci: enable building for x32 and x86 targets with the latest gcc and headers

	xlat: add KEY_PRIVACY_SCREEN_TOGGLE and KEY_KBD_LCD_MENU* to evdev_keycode
	* xlat/evdev_keycode.in (KEY_PRIVACY_SCREEN_TOGGLE): New constant,
	introduced by Linux commit v5.5-rc1~6^2^2~3.
	(KEY_KBD_LCD_MENU1, KEY_KBD_LCD_MENU2, KEY_KBD_LCD_MENU3,
	KEY_KBD_LCD_MENU4, KEY_KBD_LCD_MENU5): New constants, introduced by
	Linux commit v5.5-rc1~6.

	xlat: add STATX_ATTR_VERITY to statx_attrs.
	* xlat/statx_attrs.in (STATX_ATTR_VERITY): New constant, introduced
	by Linux commit v5.5-rc1~192^2~3.

2020-01-21  Eugene Syromyatnikov  <evgsyr@gmail.com>

	perf: decode PERF_SAMPLE_AUX flag and aux_sample_size field.
	Introduced by Linux commit v5.5-rc1~152^2~9.

	* configure.ac (AC_CHECK_MEMBERS): Check
	for struct perf_event_attr.__reserved_2
	and struct perf_event_attr.aux_sample_size.
	* perf.c (print_perf_event_attr): Print __reserved_2 field if non-zero;
	print aux_sample_size field.
	* perf_event_struct.h (struct perf_event_attr): Add aux_sample_size
	and __reserved_3 fields.
	* tests/perf_event_open.c: Add checks for nrw struct sizes, fields,
	and PERF_SAMPLE_AUX flag.
	* xlat/perf_attr_size.in (PERF_ATTR_SIZE_VER6): New constant.
	* xlat/perf_event_sample_format.in (PERF_SAMPLE_AUX): Likewise.

2020-01-21  Eugene Syromyatnikov  <evgsyr@gmail.com>

	xlat: add PPC_CMM_MAGIC to fsmagic.
	* xlat/fsmagic.in (PPC_CMM_MAGIC): New constant, introduced by Linux
	commit v5.5-rc1~110^2~59.

	xlat: update sock_sctp_options constants.
	* xlat/sock_sctp_options.in (SCTP_PEER_ADDR_THLDS_V2): New constant,
	introduced by Linux commit v5.5-rc1~174^2~159^2.
	(SCTP_EXPOSE_POTENTIALLY_FAILED_STATE): New constant, introduced
	by Linux commit v5.5-rc1~174^2~159^2~2.

	xlat: add TIPC_NODELAY to sock_tipc_options.
	* xlat/sock_tipc_options.in (TIPC_NODELAY): New constant, introduced
	by Linux commit v5.5-rc1~174^2~274.

	xlat: add IORING_SETUP_CQSIZE to uring_setup_flags.
	* xlat/uring_setup_flags.in (IORING_SETUP_CQSIZE): New constant,
	introduced by Linux commit v5.5-rc1~204^2~60.
	* tests/io_uring_setup.c (main): Update expected output.

2020-01-21  Eugene Syromyatnikov  <evgsyr@gmail.com>

	io_uring: implement decoding of struct io_uring_params.features.
	Introduced by Linux commit v5.4-rc1~28^2~17.

	* xlat/uring_setup_features.in: New file.
	* io_uring.c: Include "xlat/uring_setup_features.h".
	(struct_io_uring_params): Add features field, decrease resv field size.
	[HAVE_STRUCT_IO_URING_PARAMS]: Add checks for the
	struct io_uring_params.resv field.
	(SYS_FUNC(io_uring_setup)): Decode struct io_uring_params.features
	field.
	* tests/io_uring_setup.c: Update the expected output.

2020-01-21  Eugene Syromyatnikov  <evgsyr@gmail.com>

	io_uring: add support for IORING_REGISTER_EVENTFD and IORING_UNREGISTER_EVENTFD
	Introduced by Linux commit v5.2-rc1~148^2~3.

	* xlat/uring_register_opcodes.in (IORING_REGISTER_EVENTFD,
	IORING_UNREGISTER_EVENTFD): New constants.
	* io_uring.c (SYS_FUNC(io_uring_register)): Wire up
	IORING_REGISTER_EVENTFD.
	* tests/io_uring_register.c (main): Add checks for the new operations.

2020-01-21  Eugene Syromyatnikov  <evgsyr@gmail.com>

	io_uring: print io_sqring_offsets and io_cqring_offsets reserved fields.
	* io_uring.c (SYS_FUNC(io_uring_setup)): Print
	struct io_sqring_offsets.resv1, struct io_sqring_offsets.resv2, and
	struct io_cqring_offsets.resv if non-zero.
	* tests/io_uring_setup.c (main): Update expected output.

2020-01-21  Eugene Syromyatnikov  <evgsyr@gmail.com>

	io_uring: decode io_uring_params.resv with IS_ARRAY_ZERO and PRINT_FIELD_ARRAY
	That also makes struct io_uring_params.resv printing in line with
	the rest of array printing formatting.

	* io_uring.c (SYS_FUNC(io_uring_setup)): Replace open-coded resv field
	non-zeroeness check/printing with IS_ARRAY_ZERO and PRINT_FIELD_ARRAY
	macro invocations.
	* tests/io_uring_setup.c (main): Use square brackets instead of curly
	braces for enclosing struct io_uring_params.resv elements.

2020-01-21  Eugene Syromyatnikov  <evgsyr@gmail.com>

	Rework interface for printing local arrays.
	As it should be simpler to get it used.  In order to make the common
	case as simple as possible, split it into print_local_array_ex with all
	the arguments and convert print_local_array to a macro wrapper that gets
	the element count and size from the provided array argument itself,
	along with dropping all the arguments that are not expected to be
	commonly used.

	* defs.h (print_local_array_ex): Rename from print_local_array,
	remove elem_buf argument, add index_xlat and index_dflt arguments.
	(print_local_array): New macro wrapper from print_local_array_ex.
	* evdev.c (decode_bitset): Remove unused elem variable, update the
	print_local_array call.
	* print_fields.h (PRINT_FIELD_ARRAY): New macro wrapper for printing
	array fields.

2020-01-21  Eugene Syromyatnikov  <evgsyr@gmail.com>

	io_uring: de-indent the switch case statements.
	* io_uring.c (SYS_FUNC(io_uring_register)): Decrease indentation for
	switch case labels and the related code.

	io_uring: do not depend on kernel header definitions.
	* configure.ac (AC_CHECK_HEADERS): Remove linux/io_uring.h.
	(AC_CHECK_HEADERS): Add a separate check for linux/io_uring.h header
	that additionally performs AC_CHECK_TYPES on struct io_sqring_offsets,
	struct io_cqring_offsets, and struct io_uring_params, and
	AC_CHECK_MEMBERS on struct io_cqring_offsets.resv, struct
	io_uring_params.features, and struct io_uring_params.resv.
	* io_uring.c [!HAVE_LINUX_IO_URING_H]: Include "print_fields.h".
	(struct_io_sqring_offsets, struct_io_cqring_offsets,
	struct_io_uring_params): New struct type definitions.
	[HAVE_STRUCT_IO_SQRING_OFFSETS]: Check struct_io_sqring_offsets size
	against struct io_sqring_offsets.
	[HAVE_STRUCT_IO_CQRING_OFFSETS]: Check struct_io_cqring_offsets size
	against struct io_cqring_offsets.
	[HAVE_STRUCT_IO_CQRING_OFFSETS][HAVE_STRUCT_IO_CQRING_OFFSETS_RESV]:
	Check struct_io_cqring_offsets.resv offset and size against
	struct io_cqring_offsets.resv.
	[HAVE_STRUCT_IO_CQRING_OFFSETS][!HAVE_STRUCT_IO_CQRING_OFFSETS_RESV]:
	Fail unconditionally.
	[HAVE_STRUCT_IO_URING_PARAMS]: Check struct_io_cqring_offsets size
	against struct io_cqring_offsets.
	(SYS_FUNC(io_uring_setup)): Remove HAVE_LINUX_IO_URING_H guard.
	* tests/io_uring_setup.c: Add a workaround for kernel headers where
	struct io_uring_params.features is defined.

2020-01-21  Chunmei Xu  <xuchunmei@linux.alibaba.com>
	    Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: properly fix printing errno in modify_ldt test.
	The fix in commit v5.4-40-g2939bbd is incorrect, as it leads to errno
	information not being expected by the test:

	    modify_ldt(0, NULL, 0) = -1
	    modify_ldt(-629534633, 0xffffffffffffffff, 16045756814261206767) = -1
	    modify_ldt(-629534633, 0x7f354d38a000, 0) = -1
	    ...

	* tests/modify_ldt.c (printrc): Avoid only errno update in case of rc
	being -1 and not the whole printing routine.

	Complements: v5.4-40-g2939bbd "tests: fix printing errno in modify_ldt test"
	Resolves: https://github.com/strace/strace/issues/118
	Resolves: https://github.com/strace/strace/issues/119

2020-01-17  Dmitry V. Levin  <ldv@altlinux.org>

	Make SysV IPC decoders on 32-bit architectures 64-bit time_t compatible.
	When libc moves to 64-bit time_t on 32-bit architectures, IPC
	definitions provided by sys/ipc.h, sys/msg.h, sys/sem.h, and sys/shm.h
	header files become unsuitable for SysV IPC decoders.

	Prepare for this change by using Linux kernel uapi headers instead of
	libc headers as the preferred source of SysV IPC definitions.

	Fall back to libc headers if Linux kernel uapi headers have known bugs
	in their SysV IPC definitions.

	* configure.ac (AC_CHECK_SIZEOF): Check for struct msqid64_ds in
	<linux/msg.h>.
	* m4/mpers.m4 (st_MPERS): Likewise.
	* ipc_defs.h: Prioritize HAVE_LINUX_IPC_H over HAVE_SYS_IPC_H.
	[HAVE_LINUX_IPC_H && !IN_MPERS]: Undefine HAVE_LINUX_IPC_H if
	ARCH_SIZEOF_STRUCT_MSQID64_DS != SIZEOF_STRUCT_MSQID64_DS.
	[HAVE_LINUX_IPC_H && MPERS_IS_m32]: Undefine HAVE_LINUX_IPC_H if
	ARCH_M32_SIZEOF_STRUCT_MSQID64_DS != M32_SIZEOF_STRUCT_MSQID64_DS.
	[HAVE_LINUX_IPC_H && MPERS_IS_mx32]: Undefine HAVE_LINUX_IPC_H if
	ARCH_MX32_SIZEOF_STRUCT_MSQID64_DS != MX32_SIZEOF_STRUCT_MSQID64_DS.
	* linux/sparc/arch_defs_.h (ARCH_SIZEOF_STRUCT_MSQID64_DS): New macro.
	* linux/sparc64/arch_defs_.h (ARCH_M32_SIZEOF_STRUCT_MSQID64_DS):
	Likewise.
	* linux/x32/arch_defs_.h (ARCH_SIZEOF_STRUCT_MSQID64_DS): Likewise.
	* linux/x86_64/arch_defs_.h (ARCH_MX32_SIZEOF_STRUCT_MSQID64_DS):
	Likewise.

	Reported-by: Khem Raj <raj.khem@gmail.com>
	Reported-by: Rich Felker <dalias@aerifal.cx>
	Resolves: https://github.com/strace/strace/issues/116

2020-01-17  Dmitry V. Levin  <ldv@altlinux.org>

	Consistently choose SysV IPC definitions between libc and uapi providers
	strace decoders should use SysV IPC definitions provided by either libc
	or Linux kernel uapi headers, not a random mix of them.

	* configure.ac (AC_CHECK_HEADERS): Remove linux/msg.h, linux/sem.h,
	linux/shm.h, sys/msg.h, sys/sem.h, and sys/shm.h.
	* ipc_defs.h (MSG_H_PROVIDER, SEM_H_PROVIDER, SHM_H_PROVIDER,
	NAME_OF_STRUCT_MSQID_DS, NAME_OF_STRUCT_SHMID_DS,
	NAME_OF_STRUCT_IPC_PERM_KEY): New macros.
	* ipc_msg.c: Include MSG_H_PROVIDER instead of <sys/msg.h> or
	<linux/msg.h>.
	* ipc_msgctl.c: Likewise.
	(msqid_ds_t): Redefine to struct NAME_OF_STRUCT_MSQID_DS.
	(print_msqid_ds): Replace __key with NAME_OF_STRUCT_IPC_PERM_KEY.
	* ipc_sem.c: Include SEM_H_PROVIDER instead of <sys/sem.h> or
	<linux/sem.h>.
	(print_sembuf): Define unconditionally.
	(tprint_sembuf_array): Use print_sembuf unconditionally.
	* ipc_shm.c: Include SHM_H_PROVIDER instead of <sys/shm.h> or
	<linux/shm.h>.
	* ipc_shmctl.c: Likewise.
	(shmid_ds_t): Redefine to struct NAME_OF_STRUCT_SHMID_DS.
	(print_shmid_ds): Replace __key with NAME_OF_STRUCT_IPC_PERM_KEY.
	* print_msgbuf.c: Include MSG_H_PROVIDER instead of <sys/msg.h>.

2020-01-17  Dmitry V. Levin  <ldv@altlinux.org>

	Consistently use ipc_defs.h.
	Include "ipc_defs.h" in all decoder files that also include
	one of system ipc header files.

	* ipc_shm.c: Include "ipc_defs.h".
	* print_msgbuf.c: Likewise.

2020-01-17  Dmitry V. Levin  <ldv@altlinux.org>

	Consistently use sizeof_field macro.
	* gen_bpf_attr_check.sh (SoM): Remove.
	Replace SoM with sizeof_field.
	* sockaddr.c (SIZEOF_SA_FAMILY): Use sizeof_field macro.
	* socketutils.c (UNIX_PATH_MAX): Likewise.

2020-01-17  Eugene Syromyatnikov  <evgsyr@gmail.com>

	macros.h: introduce sizeof_field macro.
	Handy for field size checks.

	* macros.h (sizeof_field): New macro.
	(offsetofend): Use it.

2020-01-17  Dmitry V. Levin  <ldv@altlinux.org>

	tests: consistently use offsetofend macro.
	* tests/msg_control.c (MIN_SIZE_OF): Remove.
	(test_scm_rights1, test_scm_rights2): Replace MIN_SIZE_OF with
	offsetofend.

2020-01-16  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: fix printing errno in modify_ldt test.
	Before this change, the test expected that the syscall always returns
	a value of type int, which is not the case when the Linux kernel
	is built with CONFIG_MODIFY_LDT_SYSCALL disabled.

	* tests/modify_ldt.c (printrc): Do not mangle errno if rc is not in
	the suitable range.

	Resolves: https://github.com/strace/strace/issues/118

2020-01-15  Dmitry V. Levin  <ldv@altlinux.org>

	Fix build with glibc-2.31 and Linux kernel headers < 5.3.
	PTRACE_GET_SYSCALL_INFO support was added in strace since version 4.26
	released in December 2018, in Linux kernel headers since version 5.3
	released in September 2019, and in glibc since version 2.31 released
	in February 2020.  strace is expected to support all reasonable
	combinations of Linux kernel header versions and glibc versions, in
	particular, in cases when PTRACE_GET_SYSCALL_INFO definitions are not
	available in system headers or available only in Linux kernel headers
	or glibc.  Due to the longer release cycle of glibc compared to Linux
	kernel, it's more likely to have PTRACE_GET_SYSCALL_INFO definitions
	provided by <linux/ptrace.h> rather than <sys/ptrace.h>.

	This change fixes build in a less likely environment when
	PTRACE_GET_SYSCALL_INFO definitions are provided by <sys/ptrace.h> only,
	e.g. with glibc >= 2.31 and Linux kernel headers < 5.3.

	* configure.ac (AC_CHECK_TYPES): Check for struct __ptrace_syscall_info
	in <sys/ptrace.h>, check for struct ptrace_syscall_info in
	<linux/ptrace.h>.
	* ptrace.h (struct ptrace_syscall_info): Define only if
	!HAVE_STRUCT_PTRACE_SYSCALL_INFO && !HAVE_STRUCT___PTRACE_SYSCALL_INFO.
	(struct_ptrace_syscall_info): New typedef.
	* get_personality.h: Replace struct ptrace_syscall_info with
	struct_ptrace_syscall_info.
	* linux/aarch64/arch_get_personality.c: Likewise.
	* linux/powerpc64/arch_get_personality.c: Likewise.
	* linux/s390x/arch_get_personality.c: Likewise.
	* linux/sparc64/arch_get_personality.c: Likewise.
	* linux/tile/arch_get_personality.c: Likewise.
	* linux/x86_64/arch_get_personality.c: Likewise.
	* ptrace_syscall_info.c: Likewise.
	* syscall.c: Likewise.
	* tests/ptrace_syscall_info.c: Likewise.
	* NEWS: Mention this fix.

	Reported-by: Vineet Gupta <Vineet.Gupta1@synopsys.com>
	Fixes: v4.26~51 "Add definitions for PTRACE_GET_SYSCALL_INFO API"

2020-01-14  Dmitry V. Levin  <ldv@altlinux.org>

	Update NEWS.

2020-01-14  Dmitry V. Levin  <ldv@altlinux.org>

	ci: re-enable testing with the latest mainline kernel headers.
	There should be no issues with v5.5-rc6.
	This reverts commit 1aa46bd14ec63869aa2c8870bd1c261e0c3a5c65.

	* .gitlab-ci.yml (variables): Remove KBRANCH.
	* .travis.yml (env:global): Likewise.

2020-01-14  Baruch Siach  <baruch@tkos.co.il>

	filter_seccomp: fix no-MMU build.
	Move the declaration of filter_generators out of HAVE_FORK ifdef
	to fix build for no-MMU targets:

	filter_seccomp.c: In function ‘check_seccomp_filter_properties’:
	filter_seccomp.c:608:42: error: ‘filter_generators’ undeclared (first use in this function); did you mean ‘linear_filter_generator’?
	  for (unsigned int i = 0; i < ARRAY_SIZE(filter_generators); ++i) {
	                                          ^~~~~~~~~~~~~~~~~

	* filter_seccomp.c (linear_filter_generator,
	binary_match_filter_generator): Declare unconditionally.
	(filter_generator_t, filter_generators, filters, bpf_prog): Define
	unconditionally.
	* NEWS: Mention this fix.

	Fixes: v5.4~57 "filter_seccomp: list of seccomp filter generation strategies"

2020-01-14  Dmitry V. Levin  <ldv@altlinux.org>

	clone: implement decoding of new fields in struct clone_args.
	* configure.ac (AC_CHECK_TYPES): Remove struct clone_args.
	(AC_CHECK_MEMBERS): Check for struct clone_args.set_tid_size
	in <linux/sched.h>.
	* clone.c (struct strace_clone_args): Add set_tid and set_tid_size
	fields.
	(SYS_FUNC(clone3)): Decode set_tid and set_tid_size fields of struct
	clone_args introduced by Linux kernel commit v5.5-rc1~180^2~5.
	* NEWS: Mention this change.
	* tests/clone3.c: Check HAVE_STRUCT_CLONE_ARGS_SET_TID_SIZE instead of
	HAVE_STRUCT_CLONE_ARGS.
	(struct test_clone_args): Add set_tid and set_tid_size fields.
	(MAX_SET_TID_SIZE): New macro.
	(print_set_tid): New function.
	(print_clone3): Use it.
	(main): Check decoding of set_tid and set_tid_size fields.

2020-01-14  Eugene Syromyatnikov  <evgsyr@gmail.com>

	clone: add support for clone3-specific CLONE_CLEAR_SIGHAND flag decoding
	Introduced by Linux commit v5.5-rc1~180^2~8.

	* xlat/clone3_flags.in: New file.
	* clone.c: Include "xlat/clone3_flags.h".
	(SYS_FUNC(clone3)): Use both clone_flags and clone3_flags for flag field
	decoding.
	* gcc_compat.h [!GNUC_PREREQ(3, 0)] (FAIL_BUILD_ON_ZERO): Stub
	definition.
	* tests/clone3.c: Include "xlat/clone3_flags.h".
	(ERR): New macro.
	(do_clone3_): Accept possible_errors bitmask instead of should_Fail
	flag.
	(main): Add CLONE_CLEAR_SIGHAND-specific checks, update flag-related
	checks.

2020-01-12  Dmitry V. Levin  <ldv@altlinux.org>

	tests: prepare clone3 test for upcoming changes.
	* tests/clone3.c: Include <stdint.h> and "xlat/clone_flags.h"
	unconditionally.  Do not include <linux/types.h>.
	(struct clone_args): Rename to struct test_clone_args, define
	unconditionally.
	(struct_clone_args): New typedef.
	(do_clone3_, print_clone3, main): Switch all users of
	struct test_clone_args to struct_clone_args.
	(main): Use TAIL_ALLOC_OBJECT_CONST_PTR.  Move printing of "clone3("
	prefix ...
	(print_clone3): ... here to fix errno clobbering.

2020-01-08  Dmitry V. Levin  <ldv@altlinux.org>

	travis: add s390x builds.
	* .travis.yml (matrix): Add s390x builds.

2020-01-08  Dmitry V. Levin  <ldv@altlinux.org>

	s390: workaround Linux kernel bug in syscall_get_nr.
	Apparently, arch/s390/include/asm/syscall.h:syscall_get_nr() returns 0
	for out-of-range syscall numbers.
	This kernel bug is exposed via PTRACE_GET_SYSCALL_INFO interface.
	Workaround it by falling back to get_regs() for the zero syscall number.

	* linux/s390/check_scno.c: New file.
	* linux/s390x/check_scno.c: Likewise.
	* Makefile.am (EXTRA_DIST): Add them.
	* syscall.c (get_scno): Update comment.

2020-01-08  Dmitry V. Levin  <ldv@altlinux.org>

	ci: support Travis CI's ppc64le builds.
	* .travis.yml (matrix): Add ppc64le builds.
	* ci/install-dependencies.sh: Do not attempt to install multilib
	packages on ppc64le.

2020-01-08  Dmitry V. Levin  <ldv@altlinux.org>

	tests: skip stack tracing tests when /proc/self/maps is invalid.
	Apparently, some container orchestration systems are capable of messing
	up with /proc/self/maps.  For example, one can face with the following
	garbage in Travis CI:

		$ cat /proc/self/maps
		ee72dcc0000-ee72dcd0000 r-xp 00000000 00:43 16 /var/snap/lxd/common/lxd/storage-pools/instances/containers/travis-job-strace-strace-634261782/rootfs/bin/cat
		ee72dcd0000-ee72dce0000 r--p 00000000 00:43 16 /var/snap/lxd/common/lxd/storage-pools/instances/containers/travis-job-strace-strace-634261782/rootfs/bin/cat
		ee72dce0000-ee72dcf0000 rw-p 00010000 00:43 16 /var/snap/lxd/common/lxd/storage-pools/instances/containers/travis-job-strace-strace-634261782/rootfs/bin/cat
		...

	Our stack tracing cannot work properly when /proc/self/maps is damaged
	this way.

	* tests/strace-k.test: Check that the path to executable recorded
	in /proc/self/maps is valid and skip the test if it's not the case.

2020-01-08  Dmitry V. Levin  <ldv@altlinux.org>

	filter_seccomp: fix stack trace caching.
	* filter_seccomp.c (traced_by_seccomp): Trace all syscalls that have
	MEMORY_MAPPING_CHANGE flag set when stack tracing is enabled.
	* NEWS: Mention this fix.
