glibc/support
Jonathan Wakely 8a9a593115 Add alloc_align attribute to memalign et al
GCC 4.9.0 added the alloc_align attribute to say that a function
argument specifies the alignment of the returned pointer. Clang supports
the attribute too. Using the attribute can allow a compiler to generate
better code if it knows the returned pointer has a minimum alignment.
See https://gcc.gnu.org/PR60092 for more details.

GCC implicitly knows the semantics of aligned_alloc and posix_memalign,
but not the obsolete memalign. As a result, GCC generates worse code
when memalign is used, compared to aligned_alloc.  Clang knows about
aligned_alloc and memalign, but not posix_memalign.

This change adds a new __attribute_alloc_align__ macro to <sys/cdefs.h>
and then uses it on memalign (where it helps GCC) and aligned_alloc
(where GCC and Clang already know the semantics, but it doesn't hurt)
and xposix_memalign. It can't be used on posix_memalign because that
doesn't return a pointer (the allocated pointer is returned via a void**
parameter instead).

Unlike the alloc_size attribute, alloc_align only allows a single
argument. That means the new __attribute_alloc_align__ macro doesn't
really need to be used with double parentheses to protect a comma
between its arguments. For consistency with __attribute_alloc_size__
this patch defines it the same way, so that double parentheses are
required.

Signed-off-by: Jonathan Wakely <jwakely@redhat.com>

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-10-21 00:19:20 +01:00
..
blob_repeat.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
blob_repeat.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
capture_subprocess.h support: Add capability to fork an sgid child 2021-04-12 19:03:19 +05:30
check_addrinfo.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
check_dns_packet.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
check_hostent.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
check_netent.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
check_nss.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
check.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
check.h Add TEST_COMPARE_STRING_WIDE to support/check.h 2021-10-12 13:48:39 +00:00
delayed_exit.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
descriptors.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
echo-container.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
format_nss.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ignore_stderr.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
links-dso-program-c.c nss_db: fix endent wrt NULL mappings [BZ #24695] [BZ #24696] 2019-07-10 14:51:18 -04:00
links-dso-program.cc nss_db: fix endent wrt NULL mappings [BZ #24695] [BZ #24696] 2019-07-10 14:51:18 -04:00
Makefile Add TEST_COMPARE_STRING_WIDE to support/check.h 2021-10-12 13:48:39 +00:00
namespace.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
next_to_fault.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
next_to_fault.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
oom_error.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
process_state.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
README support: Add timespec.h 2019-05-09 14:33:53 -03:00
README-testing.c support: Introduce new subdirectory for test infrastructure 2016-12-09 08:18:27 +01:00
resolv_response_context_duplicate.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
resolv_response_context_free.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
resolv_test.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
resolv_test.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
run_diff.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
set_fortify_handler.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
shell-container.c support: Close fds in copy_func 2021-05-13 08:07:20 +05:30
subprocess.h support: Add capability to fork an sgid child 2021-04-12 19:03:19 +05:30
support_become_root.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_can_chroot.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_capture_subprocess_check.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_capture_subprocess.c copy_and_spawn_sgid: Avoid double calls to close() 2021-08-03 21:10:53 +05:30
support_chroot.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_copy_file_range.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_copy_file.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_create_timer.c support: Add support_create_timer 2021-06-22 12:09:52 -03:00
support_descriptor_supports_holes.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_descriptors.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_enter_mount_namespace.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_enter_network_namespace.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_format_address_family.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_format_addrinfo.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_format_dns_packet.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_format_herrno.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_format_hostent.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_format_netent.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_isolate_in_subprocess.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_mutex_pi_monotonic.c support: Add support_mutex_pi_monotonic 2021-10-01 10:11:08 -03:00
support_openpty.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_path_support_time64.c Define PTHREAD_STACK_MIN to sysconf(_SC_THREAD_STACK_MIN) 2021-07-09 15:10:35 -07:00
support_paths.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_process_state.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_ptrace.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_quote_blob_main.c Add TEST_COMPARE_STRING_WIDE to support/check.h 2021-10-12 13:48:39 +00:00
support_quote_blob_wide.c Add TEST_COMPARE_STRING_WIDE to support/check.h 2021-10-12 13:48:39 +00:00
support_quote_blob.c Add TEST_COMPARE_STRING_WIDE to support/check.h 2021-10-12 13:48:39 +00:00
support_quote_string.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_record_failure.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_run_diff.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_select_modifies_timeout.c libsupport: Add support_select_modifies_timeout 2021-04-12 18:38:37 -03:00
support_select_normalizes_timeout.c libsupport: Add support_select_normalizes_timeout 2021-04-12 18:38:37 -03:00
support_set_small_thread_stack_size.c support: Add support_small_thread_stack_size 2021-01-05 11:33:16 -03:00
support_shared_allocate.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_small_stack_thread_attribute.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_stack_alloc.c support: Replace _SC_MINSIGSTKSZ with _SC_SIGSTKSZ 2021-07-11 07:57:31 -07:00
support_stat_nanoseconds.c support: Fix hurd build after bfddda2570 2021-04-01 13:55:46 -03:00
support_subprocess.c support: Add capability to fork an sgid child 2021-04-12 19:03:19 +05:30
support_test_compare_blob.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_test_compare_failure.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_test_compare_string_main.c Add TEST_COMPARE_STRING_WIDE to support/check.h 2021-10-12 13:48:39 +00:00
support_test_compare_string_wide.c Add TEST_COMPARE_STRING_WIDE to support/check.h 2021-10-12 13:48:39 +00:00
support_test_compare_string.c Add TEST_COMPARE_STRING_WIDE to support/check.h 2021-10-12 13:48:39 +00:00
support_test_main.c support: Free gdb_script_name 2021-05-13 08:07:23 +05:30
support_test_verify_impl.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support_wait_for_thread_exit.c support: Add check for TID zero in support_wait_for_thread_exit 2021-10-01 18:16:41 +02:00
support_write_file_string.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support-open-dev-null-range.c support: Also return fd when it is 0 2021-10-06 22:18:24 +05:30
support-xfstat-time64.c libsupport: Add 64-bit time_t support for stat functions 2021-06-15 10:42:11 -03:00
support-xfstat.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support-xstat-time64.c libsupport: Add 64-bit time_t support for stat functions 2021-06-15 10:42:11 -03:00
support-xstat.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
support.h Add alloc_align attribute to memalign et al 2021-10-21 00:19:20 +01:00
temp_file-internal.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
temp_file.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
temp_file.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-container.c test-container: Always copy test-specific support files [BZ #27537] 2021-03-11 17:04:12 -05:00
test-driver.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-driver.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
timespec-add-time64.c libsupport: Add 64-bit time_t support for time functions 2021-06-15 10:42:11 -03:00
timespec-add.c libsupport: Add 64-bit time_t support for time functions 2021-06-15 10:42:11 -03:00
timespec-sub-time64.c libsupport: Add 64-bit time_t support for time functions 2021-06-15 10:42:11 -03:00
timespec-sub.c libsupport: Add 64-bit time_t support for time functions 2021-06-15 10:42:11 -03:00
timespec-time64.c libsupport: Add 64-bit time_t support for time functions 2021-06-15 10:42:11 -03:00
timespec.c libsupport: Add 64-bit time_t support for time functions 2021-06-15 10:42:11 -03:00
timespec.h libsupport: Add 64-bit time_t support for time functions 2021-06-15 10:42:11 -03:00
true-container.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-support_blob_repeat.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-support_capture_subprocess.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-support_descriptors.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-support_format_dns_packet.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-support_quote_blob_wide.c Add TEST_COMPARE_STRING_WIDE to support/check.h 2021-10-12 13:48:39 +00:00
tst-support_quote_blob.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-support_quote_string.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-support_record_failure-2.sh Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-support_record_failure.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-support-namespace.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-support-open-dev-null-range.c support: Add support_open_dev_null_range 2021-08-26 17:13:45 -03:00
tst-support-process_state.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-test_compare_blob.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-test_compare_string_wide.c Add TEST_COMPARE_STRING_WIDE to support/check.h 2021-10-12 13:48:39 +00:00
tst-test_compare_string.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-test_compare.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-timespec.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-xreadlink.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-xsigstack.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tty.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
write_message.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xaccept4.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xaccept.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xasprintf.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xbind.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xcalloc.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xchdir.c Add xchdir to libsupport. 2021-01-09 17:47:50 +01:00
xchmod.c support: Add xchmod wrapper 2021-01-11 12:26:58 -03:00
xchroot.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xclock_gettime_time64.c libsupport: Add 64-bit time_t support for time functions 2021-06-15 10:42:11 -03:00
xclock_gettime.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xclock_settime_time64.c libsupport: Add 64-bit time_t support for time functions 2021-06-15 10:42:11 -03:00
xclock_settime.c support: Provide xclock_settime test helper function 2021-03-08 22:41:28 +01:00
xclone.c support: Fix xclone build failures on ia64 and hppa 2021-06-25 09:36:28 +02:00
xclose.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xconnect.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xcopy_file_range.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xdlfcn.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xdlfcn.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xdlmopen.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xdup2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xfchmod.c Add xfchmod to libsupport 2021-01-10 18:55:47 +01:00
xfclose.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xfopen.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xfork.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xftruncate.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xgetline.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xgetsockname.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xlisten.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xlseek.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xlstat-time64.c libsupport: Add 64-bit time_t support for stat functions 2021-06-15 10:42:11 -03:00
xlstat.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xmalloc.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xmemstream.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xmemstream.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xmkdir.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xmkdirp.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xmmap.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xmprotect.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xmunmap.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xnewlocale.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xopen.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpipe.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpoll.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xposix_memalign.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xposix_spawn_file_actions_addclose.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xposix_spawn_file_actions_adddup2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xposix_spawn.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_attr_destroy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_attr_init.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_attr_setaffinity_np.c support: Do not build xpthread_attr_setaffinity_np for hurd 2021-05-28 16:00:19 -03:00
xpthread_attr_setdetachstate.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_attr_setguardsize.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_attr_setstack.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_attr_setstacksize.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_barrier_destroy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_barrier_init.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_barrier_wait.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_barrierattr_destroy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_barrierattr_init.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_barrierattr_setpshared.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_cancel.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_check_return.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_cond_wait.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_create.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_detach.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_join.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_key_create.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_key_delete.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_kill.c support: Add xpthread_kill 2021-03-12 10:20:18 -03:00
xpthread_mutex_consistent.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_mutex_destroy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_mutex_init.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_mutex_lock.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_mutex_unlock.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_mutexattr_destroy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_mutexattr_init.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_mutexattr_setprotocol.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_mutexattr_setpshared.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_mutexattr_setrobust.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_mutexattr_settype.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_once.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_rwlock_destroy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_rwlock_init.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_rwlock_rdlock.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_rwlock_unlock.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_rwlock_wrlock.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_rwlockattr_init.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_rwlockattr_setkind_np.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_sigmask.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_spin_lock.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xpthread_spin_unlock.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xptrace.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xraise.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xreadlink.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xrealloc.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xrecvfrom.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xsched.h support: Add xclone 2021-06-24 10:00:52 -03:00
xsendto.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xsetlocale.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xsetsockopt.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xsigaction.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xsignal.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xsignal.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xsigstack.c support: Add support_stack_alloc 2021-07-08 13:48:06 -03:00
xsocket.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xsocket.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xspawn.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xstdio.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xstrdup.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xstrndup.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xsymlink.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xsysconf.c xsysconf: Only fail on error results and errno set 2021-09-24 17:30:03 +09:00
xthread.h support: Add support_mutex_pi_monotonic 2021-10-01 10:11:08 -03:00
xtime.h libsupport: Add 64-bit time_t support for time functions 2021-06-15 10:42:11 -03:00
xunistd.h libsupport: Add 64-bit time_t support for stat functions 2021-06-15 10:42:11 -03:00
xunlink.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xuselocale.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xwaitpid.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
xwrite.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00

This subdirectory contains infrastructure which is not put into
installed libraries, but may be linked into programs (installed or
not) and tests.

# Error-checking wrappers

These wrappers test for error return codes an terminate the process on
error.  They are declared in these header files:

* support.h
* xsignal.h
* xthread.h
* xtime.h

In general, new wrappers should be added to support.h if possible.
However, support.h must remain fully compatible with C90 and therefore
cannot include headers which use identifers not reserved in C90.  If
the wrappers need additional types, additional headers such as
signal.h need to be introduced.

# Test framework

The test framework provides a main program for tests, including a
timeout for hanging tests.  See README-testing.c for a minimal
example, and test-driver.c for details how to use it.  The following
header files provide related declarations:

* check.h
* temp_file.h
* test-driver.h

For tests that make use of struct timespec, the following header files
contain additional macros and helper functions:

* timespec.h