diff options
author | Jörg Frings-Fürst <debian@jff.email> | 2022-01-08 11:51:07 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff.email> | 2022-01-08 11:51:07 +0100 |
commit | be8efac78d067c138ad8dda03df4336e73f94887 (patch) | |
tree | 5f5254a628ba0ef72065b93d949d1c985742ea8e /gnulib-m4/semaphore.m4 | |
parent | 7b65dbd4ebade81d504cfe5e681292a58ad1fdf0 (diff) |
New upstream version 1.0upstream/1.0
Diffstat (limited to 'gnulib-m4/semaphore.m4')
-rw-r--r-- | gnulib-m4/semaphore.m4 | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/gnulib-m4/semaphore.m4 b/gnulib-m4/semaphore.m4 new file mode 100644 index 00000000..c6be7b94 --- /dev/null +++ b/gnulib-m4/semaphore.m4 @@ -0,0 +1,45 @@ +# semaphore.m4 serial 1 +dnl Copyright (C) 2019-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Sets LIB_SEMAPHORE to the library needed, in addition to $(LIBMULTITHREAD), +# for getting the <semaphore.h> functions. + +AC_DEFUN([gl_SEMAPHORE], +[ + AC_REQUIRE([gl_THREADLIB]) + dnl sem_post is + dnl - in libc on macOS, FreeBSD, AIX, IRIX, Solaris 11, Haiku, Cygwin, + dnl - in libpthread on glibc systems, OpenBSD, + dnl - in libpthread or librt on NetBSD, + dnl - in librt on HP-UX 11, OSF/1, Solaris 10. + dnl On the platforms where -lpthread is needed, it is contained in + dnl $LIBMULTITHREAD. Therefore, the only library we need to test for is -lrt. + AC_CACHE_CHECK([for library needed for semaphore functions], + [gl_cv_semaphore_lib], + [save_LIBS="$LIBS" + LIBS="$LIBS $LIBMULTITHREAD" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include <semaphore.h>]], + [[sem_post ((sem_t *)0);]])], + [gl_cv_semaphore_lib=none], + [LIBS="$LIBS -lrt" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include <semaphore.h>]], + [[sem_post ((sem_t *)0);]])], + [gl_cv_semaphore_lib='-lrt'], + [gl_cv_semaphore_lib=none]) + ]) + LIBS="$save_LIBS" + ]) + if test "x$gl_cv_semaphore_lib" = xnone; then + LIB_SEMAPHORE= + else + LIB_SEMAPHORE="$gl_cv_semaphore_lib" + fi + AC_SUBST([LIB_SEMAPHORE]) +]) |