view m4/euidaccess.m4 @ 17751:9e8d98ca3311

pthread, pthread_sigmask, threadlib: port to Ubuntu 14.04 Problem reported by Assaf Gordon in: http://lists.gnu.org/archive/html/bug-gnulib/2014-09/msg00023.html Apparently Ubuntu is doing some fancy link-time optimization that doesn't work with -lpthread but does work with -pthread. Work around the bug by preferring -pthread to -lpthread. This change affects only LIBS, not CFLAGS, which is a little weird, but it works. * m4/pthread.m4 (gl_PTHREAD_CHECK): * m4/threadlib.m4 (gl_THREADLIB_BODY): Prefer -pthread to -lpthread. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Treat -pthread like -lpthread.
author Paul Eggert <eggert@cs.ucla.edu>
date Thu, 04 Sep 2014 14:55:12 -0700
parents 344018b6e5d7
children ab58d4870664
line wrap: on
line source

# euidaccess.m4 serial 15
dnl Copyright (C) 2002-2014 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.

AC_DEFUN([gl_FUNC_NONREENTRANT_EUIDACCESS],
[
  AC_REQUIRE([gl_FUNC_EUIDACCESS])
  AC_CHECK_DECLS([setregid])
  AC_DEFINE([PREFER_NONREENTRANT_EUIDACCESS], [1],
    [Define this if you prefer euidaccess to return the correct result
     even if this would make it nonreentrant.  Define this only if your
     entire application is safe even if the uid or gid might temporarily
     change.  If your application uses signal handlers or threads it
     is probably not safe.])
])

AC_DEFUN([gl_FUNC_EUIDACCESS],
[
  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])

  dnl Persuade glibc <unistd.h> to declare euidaccess().
  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])

  AC_CHECK_FUNCS([euidaccess])
  if test $ac_cv_func_euidaccess = no; then
    HAVE_EUIDACCESS=0
  fi
])

# Prerequisites of lib/euidaccess.c.
AC_DEFUN([gl_PREREQ_EUIDACCESS], [
  dnl Prefer POSIX faccessat over non-standard euidaccess.
  AC_CHECK_FUNCS_ONCE([faccessat])
  dnl Try various other non-standard fallbacks.
  AC_CHECK_HEADERS([libgen.h])
  AC_FUNC_GETGROUPS

  # Solaris 9 and 10 need -lgen to get the eaccess function.
  # Save and restore LIBS so -lgen isn't added to it.  Otherwise, *all*
  # programs in the package would end up linked with that potentially-shared
  # library, inducing unnecessary run-time overhead.
  LIB_EACCESS=
  AC_SUBST([LIB_EACCESS])
  gl_saved_libs=$LIBS
    AC_SEARCH_LIBS([eaccess], [gen],
                   [test "$ac_cv_search_eaccess" = "none required" ||
                    LIB_EACCESS=$ac_cv_search_eaccess])
    AC_CHECK_FUNCS([eaccess])
  LIBS=$gl_saved_libs
])