Hash :
b7367c9c
        
        Author :
  
        
        Date :
2023-09-05T03:02:44
        
      
build: Add missing dash to macro title bar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
# Copyright © 2021 Guillem Jover <guillem@hadrons.org>
# LIBBSD_CHECK_COMPILER_FLAG
# --------------------------
AC_DEFUN([LIBBSD_CHECK_COMPILER_FLAG], [
  AS_VAR_PUSHDEF([libbsd_varname_cache], [libbsd_cv_cflags_$1])
  AC_CACHE_CHECK([whether $CC accepts $1], [libbsd_varname_cache], [
    m4_define([libbsd_check_flag], m4_bpatsubst([$1], [^-Wno-], [-W]))
    AS_VAR_COPY([libbsd_save_CFLAGS], [CFLAGS])
    AS_VAR_SET([CFLAGS], ["-Werror libbsd_check_flag"])
    AC_COMPILE_IFELSE([
      AC_LANG_SOURCE([[]])
    ], [
      AS_VAR_SET([libbsd_varname_cache], [yes])
    ], [
      AS_VAR_SET([libbsd_varname_cache], [no])
    ])
    AS_VAR_COPY([CFLAGS], [libbsd_save_CFLAGS])
  ])
  AS_VAR_IF([libbsd_varname_cache], [yes], [
    AS_VAR_APPEND([LIBBSD_COMPILER_FLAGS], [" $1"])
  ])
  AS_VAR_POPDEF([libbsd_varname_cache])
])
# LIBBSD_HAS_GNU_INIT_ARRAY
# -------------------------
AC_DEFUN([LIBBSD_HAS_GNU_INIT_ARRAY], [
  AC_CACHE_CHECK([for GNU .init_array section support],
    [libbsd_cv_gnu_init_array_support], [
    AC_RUN_IFELSE([
      AC_LANG_SOURCE([[
static int rc = 1;
static void init(int argc) { if (argc == 1) rc = 0; }
void (*init_func)(int argc) __attribute__((__section__(".init_array"), __used__)) = init;
int main() { return rc; }
      ]])
    ], [
      libbsd_cv_gnu_init_array_support=yes
    ], [
      libbsd_cv_gnu_init_array_support=no
    ], [
      AC_PREPROC_IFELSE([
        AC_LANG_SOURCE([[
/* Look for a known libc that supports .init_array with the GNU extension
 * to pass main() arguments to the init functions. */
#include <stdlib.h>
#if defined __GLIBC_PREREQ
#  if __GLIBC_PREREQ(2, 4)
/* glibc supports GNU .init_array since 2.4. */
#  else
#    error glibc does not support GNU .init_array
#  endif
#else
/*
 * Basic SysV ABI .init_array support, init functions do not get arguments:
 * - Bionic since its inception.
 * - uClibc since 0.9.29.
 */
#  error unknown whether libc supports GNU .init_array
#endif
        ]])
      ], [
        libbsd_cv_gnu_init_array_support=yes
      ], [
        libbsd_cv_gnu_init_array_support=no
      ])
    ])
  ])
  AM_CONDITIONAL([BUILD_LIBBSD_CTOR],
    [test "$libbsd_cv_gnu_init_array_support" = yes])
])