New upstream version 2.3.4
This commit is contained in:
		
							parent
							
								
									7c86d65dc2
								
							
						
					
					
						commit
						30f882762f
					
				
					 556 changed files with 90432 additions and 53391 deletions
				
			
		| 
						 | 
				
			
			@ -1,348 +0,0 @@
 | 
			
		|||
#! /bin/sh
 | 
			
		||||
# Wrapper for compilers which do not understand '-c -o'.
 | 
			
		||||
 | 
			
		||||
scriptversion=2018-03-07.03; # UTC
 | 
			
		||||
 | 
			
		||||
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
 | 
			
		||||
# Written by Tom Tromey <tromey@cygnus.com>.
 | 
			
		||||
#
 | 
			
		||||
# This program is free software; you can redistribute it and/or modify
 | 
			
		||||
# it under the terms of the GNU General Public License as published by
 | 
			
		||||
# the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
# any later version.
 | 
			
		||||
#
 | 
			
		||||
# This program is distributed in the hope that it will be useful,
 | 
			
		||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
# GNU General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU General Public License
 | 
			
		||||
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
# As a special exception to the GNU General Public License, if you
 | 
			
		||||
# distribute this file as part of a program that contains a
 | 
			
		||||
# configuration script generated by Autoconf, you may include it under
 | 
			
		||||
# the same distribution terms that you use for the rest of that program.
 | 
			
		||||
 | 
			
		||||
# This file is maintained in Automake, please report
 | 
			
		||||
# bugs to <bug-automake@gnu.org> or send patches to
 | 
			
		||||
# <automake-patches@gnu.org>.
 | 
			
		||||
 | 
			
		||||
nl='
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
# We need space, tab and new line, in precisely that order.  Quoting is
 | 
			
		||||
# there to prevent tools from complaining about whitespace usage.
 | 
			
		||||
IFS=" ""	$nl"
 | 
			
		||||
 | 
			
		||||
file_conv=
 | 
			
		||||
 | 
			
		||||
# func_file_conv build_file lazy
 | 
			
		||||
# Convert a $build file to $host form and store it in $file
 | 
			
		||||
# Currently only supports Windows hosts. If the determined conversion
 | 
			
		||||
# type is listed in (the comma separated) LAZY, no conversion will
 | 
			
		||||
# take place.
 | 
			
		||||
func_file_conv ()
 | 
			
		||||
{
 | 
			
		||||
  file=$1
 | 
			
		||||
  case $file in
 | 
			
		||||
    / | /[!/]*) # absolute file, and not a UNC file
 | 
			
		||||
      if test -z "$file_conv"; then
 | 
			
		||||
	# lazily determine how to convert abs files
 | 
			
		||||
	case `uname -s` in
 | 
			
		||||
	  MINGW*)
 | 
			
		||||
	    file_conv=mingw
 | 
			
		||||
	    ;;
 | 
			
		||||
	  CYGWIN* | MSYS*)
 | 
			
		||||
	    file_conv=cygwin
 | 
			
		||||
	    ;;
 | 
			
		||||
	  *)
 | 
			
		||||
	    file_conv=wine
 | 
			
		||||
	    ;;
 | 
			
		||||
	esac
 | 
			
		||||
      fi
 | 
			
		||||
      case $file_conv/,$2, in
 | 
			
		||||
	*,$file_conv,*)
 | 
			
		||||
	  ;;
 | 
			
		||||
	mingw/*)
 | 
			
		||||
	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
 | 
			
		||||
	  ;;
 | 
			
		||||
	cygwin/* | msys/*)
 | 
			
		||||
	  file=`cygpath -m "$file" || echo "$file"`
 | 
			
		||||
	  ;;
 | 
			
		||||
	wine/*)
 | 
			
		||||
	  file=`winepath -w "$file" || echo "$file"`
 | 
			
		||||
	  ;;
 | 
			
		||||
      esac
 | 
			
		||||
      ;;
 | 
			
		||||
  esac
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# func_cl_dashL linkdir
 | 
			
		||||
# Make cl look for libraries in LINKDIR
 | 
			
		||||
func_cl_dashL ()
 | 
			
		||||
{
 | 
			
		||||
  func_file_conv "$1"
 | 
			
		||||
  if test -z "$lib_path"; then
 | 
			
		||||
    lib_path=$file
 | 
			
		||||
  else
 | 
			
		||||
    lib_path="$lib_path;$file"
 | 
			
		||||
  fi
 | 
			
		||||
  linker_opts="$linker_opts -LIBPATH:$file"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# func_cl_dashl library
 | 
			
		||||
# Do a library search-path lookup for cl
 | 
			
		||||
func_cl_dashl ()
 | 
			
		||||
{
 | 
			
		||||
  lib=$1
 | 
			
		||||
  found=no
 | 
			
		||||
  save_IFS=$IFS
 | 
			
		||||
  IFS=';'
 | 
			
		||||
  for dir in $lib_path $LIB
 | 
			
		||||
  do
 | 
			
		||||
    IFS=$save_IFS
 | 
			
		||||
    if $shared && test -f "$dir/$lib.dll.lib"; then
 | 
			
		||||
      found=yes
 | 
			
		||||
      lib=$dir/$lib.dll.lib
 | 
			
		||||
      break
 | 
			
		||||
    fi
 | 
			
		||||
    if test -f "$dir/$lib.lib"; then
 | 
			
		||||
      found=yes
 | 
			
		||||
      lib=$dir/$lib.lib
 | 
			
		||||
      break
 | 
			
		||||
    fi
 | 
			
		||||
    if test -f "$dir/lib$lib.a"; then
 | 
			
		||||
      found=yes
 | 
			
		||||
      lib=$dir/lib$lib.a
 | 
			
		||||
      break
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
  IFS=$save_IFS
 | 
			
		||||
 | 
			
		||||
  if test "$found" != yes; then
 | 
			
		||||
    lib=$lib.lib
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# func_cl_wrapper cl arg...
 | 
			
		||||
# Adjust compile command to suit cl
 | 
			
		||||
func_cl_wrapper ()
 | 
			
		||||
{
 | 
			
		||||
  # Assume a capable shell
 | 
			
		||||
  lib_path=
 | 
			
		||||
  shared=:
 | 
			
		||||
  linker_opts=
 | 
			
		||||
  for arg
 | 
			
		||||
  do
 | 
			
		||||
    if test -n "$eat"; then
 | 
			
		||||
      eat=
 | 
			
		||||
    else
 | 
			
		||||
      case $1 in
 | 
			
		||||
	-o)
 | 
			
		||||
	  # configure might choose to run compile as 'compile cc -o foo foo.c'.
 | 
			
		||||
	  eat=1
 | 
			
		||||
	  case $2 in
 | 
			
		||||
	    *.o | *.[oO][bB][jJ])
 | 
			
		||||
	      func_file_conv "$2"
 | 
			
		||||
	      set x "$@" -Fo"$file"
 | 
			
		||||
	      shift
 | 
			
		||||
	      ;;
 | 
			
		||||
	    *)
 | 
			
		||||
	      func_file_conv "$2"
 | 
			
		||||
	      set x "$@" -Fe"$file"
 | 
			
		||||
	      shift
 | 
			
		||||
	      ;;
 | 
			
		||||
	  esac
 | 
			
		||||
	  ;;
 | 
			
		||||
	-I)
 | 
			
		||||
	  eat=1
 | 
			
		||||
	  func_file_conv "$2" mingw
 | 
			
		||||
	  set x "$@" -I"$file"
 | 
			
		||||
	  shift
 | 
			
		||||
	  ;;
 | 
			
		||||
	-I*)
 | 
			
		||||
	  func_file_conv "${1#-I}" mingw
 | 
			
		||||
	  set x "$@" -I"$file"
 | 
			
		||||
	  shift
 | 
			
		||||
	  ;;
 | 
			
		||||
	-l)
 | 
			
		||||
	  eat=1
 | 
			
		||||
	  func_cl_dashl "$2"
 | 
			
		||||
	  set x "$@" "$lib"
 | 
			
		||||
	  shift
 | 
			
		||||
	  ;;
 | 
			
		||||
	-l*)
 | 
			
		||||
	  func_cl_dashl "${1#-l}"
 | 
			
		||||
	  set x "$@" "$lib"
 | 
			
		||||
	  shift
 | 
			
		||||
	  ;;
 | 
			
		||||
	-L)
 | 
			
		||||
	  eat=1
 | 
			
		||||
	  func_cl_dashL "$2"
 | 
			
		||||
	  ;;
 | 
			
		||||
	-L*)
 | 
			
		||||
	  func_cl_dashL "${1#-L}"
 | 
			
		||||
	  ;;
 | 
			
		||||
	-static)
 | 
			
		||||
	  shared=false
 | 
			
		||||
	  ;;
 | 
			
		||||
	-Wl,*)
 | 
			
		||||
	  arg=${1#-Wl,}
 | 
			
		||||
	  save_ifs="$IFS"; IFS=','
 | 
			
		||||
	  for flag in $arg; do
 | 
			
		||||
	    IFS="$save_ifs"
 | 
			
		||||
	    linker_opts="$linker_opts $flag"
 | 
			
		||||
	  done
 | 
			
		||||
	  IFS="$save_ifs"
 | 
			
		||||
	  ;;
 | 
			
		||||
	-Xlinker)
 | 
			
		||||
	  eat=1
 | 
			
		||||
	  linker_opts="$linker_opts $2"
 | 
			
		||||
	  ;;
 | 
			
		||||
	-*)
 | 
			
		||||
	  set x "$@" "$1"
 | 
			
		||||
	  shift
 | 
			
		||||
	  ;;
 | 
			
		||||
	*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
 | 
			
		||||
	  func_file_conv "$1"
 | 
			
		||||
	  set x "$@" -Tp"$file"
 | 
			
		||||
	  shift
 | 
			
		||||
	  ;;
 | 
			
		||||
	*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
 | 
			
		||||
	  func_file_conv "$1" mingw
 | 
			
		||||
	  set x "$@" "$file"
 | 
			
		||||
	  shift
 | 
			
		||||
	  ;;
 | 
			
		||||
	*)
 | 
			
		||||
	  set x "$@" "$1"
 | 
			
		||||
	  shift
 | 
			
		||||
	  ;;
 | 
			
		||||
      esac
 | 
			
		||||
    fi
 | 
			
		||||
    shift
 | 
			
		||||
  done
 | 
			
		||||
  if test -n "$linker_opts"; then
 | 
			
		||||
    linker_opts="-link$linker_opts"
 | 
			
		||||
  fi
 | 
			
		||||
  exec "$@" $linker_opts
 | 
			
		||||
  exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
eat=
 | 
			
		||||
 | 
			
		||||
case $1 in
 | 
			
		||||
  '')
 | 
			
		||||
     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
 | 
			
		||||
     exit 1;
 | 
			
		||||
     ;;
 | 
			
		||||
  -h | --h*)
 | 
			
		||||
    cat <<\EOF
 | 
			
		||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
 | 
			
		||||
 | 
			
		||||
Wrapper for compilers which do not understand '-c -o'.
 | 
			
		||||
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
 | 
			
		||||
arguments, and rename the output as expected.
 | 
			
		||||
 | 
			
		||||
If you are trying to build a whole package this is not the
 | 
			
		||||
right script to run: please start by reading the file 'INSTALL'.
 | 
			
		||||
 | 
			
		||||
Report bugs to <bug-automake@gnu.org>.
 | 
			
		||||
EOF
 | 
			
		||||
    exit $?
 | 
			
		||||
    ;;
 | 
			
		||||
  -v | --v*)
 | 
			
		||||
    echo "compile $scriptversion"
 | 
			
		||||
    exit $?
 | 
			
		||||
    ;;
 | 
			
		||||
  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
 | 
			
		||||
  icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
 | 
			
		||||
    func_cl_wrapper "$@"      # Doesn't return...
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
ofile=
 | 
			
		||||
cfile=
 | 
			
		||||
 | 
			
		||||
for arg
 | 
			
		||||
do
 | 
			
		||||
  if test -n "$eat"; then
 | 
			
		||||
    eat=
 | 
			
		||||
  else
 | 
			
		||||
    case $1 in
 | 
			
		||||
      -o)
 | 
			
		||||
	# configure might choose to run compile as 'compile cc -o foo foo.c'.
 | 
			
		||||
	# So we strip '-o arg' only if arg is an object.
 | 
			
		||||
	eat=1
 | 
			
		||||
	case $2 in
 | 
			
		||||
	  *.o | *.obj)
 | 
			
		||||
	    ofile=$2
 | 
			
		||||
	    ;;
 | 
			
		||||
	  *)
 | 
			
		||||
	    set x "$@" -o "$2"
 | 
			
		||||
	    shift
 | 
			
		||||
	    ;;
 | 
			
		||||
	esac
 | 
			
		||||
	;;
 | 
			
		||||
      *.c)
 | 
			
		||||
	cfile=$1
 | 
			
		||||
	set x "$@" "$1"
 | 
			
		||||
	shift
 | 
			
		||||
	;;
 | 
			
		||||
      *)
 | 
			
		||||
	set x "$@" "$1"
 | 
			
		||||
	shift
 | 
			
		||||
	;;
 | 
			
		||||
    esac
 | 
			
		||||
  fi
 | 
			
		||||
  shift
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
if test -z "$ofile" || test -z "$cfile"; then
 | 
			
		||||
  # If no '-o' option was seen then we might have been invoked from a
 | 
			
		||||
  # pattern rule where we don't need one.  That is ok -- this is a
 | 
			
		||||
  # normal compilation that the losing compiler can handle.  If no
 | 
			
		||||
  # '.c' file was seen then we are probably linking.  That is also
 | 
			
		||||
  # ok.
 | 
			
		||||
  exec "$@"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Name of file we expect compiler to create.
 | 
			
		||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
 | 
			
		||||
 | 
			
		||||
# Create the lock directory.
 | 
			
		||||
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
 | 
			
		||||
# that we are using for the .o file.  Also, base the name on the expected
 | 
			
		||||
# object file name, since that is what matters with a parallel build.
 | 
			
		||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
 | 
			
		||||
while true; do
 | 
			
		||||
  if mkdir "$lockdir" >/dev/null 2>&1; then
 | 
			
		||||
    break
 | 
			
		||||
  fi
 | 
			
		||||
  sleep 1
 | 
			
		||||
done
 | 
			
		||||
# FIXME: race condition here if user kills between mkdir and trap.
 | 
			
		||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
 | 
			
		||||
 | 
			
		||||
# Run the compile.
 | 
			
		||||
"$@"
 | 
			
		||||
ret=$?
 | 
			
		||||
 | 
			
		||||
if test -f "$cofile"; then
 | 
			
		||||
  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
 | 
			
		||||
elif test -f "${cofile}bj"; then
 | 
			
		||||
  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
rmdir "$lockdir"
 | 
			
		||||
exit $ret
 | 
			
		||||
 | 
			
		||||
# Local Variables:
 | 
			
		||||
# mode: shell-script
 | 
			
		||||
# sh-indentation: 2
 | 
			
		||||
# eval: (add-hook 'before-save-hook 'time-stamp)
 | 
			
		||||
# time-stamp-start: "scriptversion="
 | 
			
		||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
 | 
			
		||||
# time-stamp-time-zone: "UTC0"
 | 
			
		||||
# time-stamp-end: "; # UTC"
 | 
			
		||||
# End:
 | 
			
		||||
							
								
								
									
										1500
									
								
								build-aux/config.guess
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1500
									
								
								build-aux/config.guess
									
										
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
# Output a system dependent set of variables, describing how to set the
 | 
			
		||||
# run time search path of shared libraries in an executable.
 | 
			
		||||
#
 | 
			
		||||
#   Copyright 1996-2013 Free Software Foundation, Inc.
 | 
			
		||||
#   Copyright 1996-2023 Free Software Foundation, Inc.
 | 
			
		||||
#   Taken from GNU libtool, 2001
 | 
			
		||||
#   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 | 
			
		||||
#
 | 
			
		||||
| 
						 | 
				
			
			@ -367,15 +367,11 @@ else
 | 
			
		|||
    dgux*)
 | 
			
		||||
      hardcode_libdir_flag_spec='-L$libdir'
 | 
			
		||||
      ;;
 | 
			
		||||
    freebsd2.2*)
 | 
			
		||||
      hardcode_libdir_flag_spec='-R$libdir'
 | 
			
		||||
      hardcode_direct=yes
 | 
			
		||||
      ;;
 | 
			
		||||
    freebsd2*)
 | 
			
		||||
    freebsd2.[01]*)
 | 
			
		||||
      hardcode_direct=yes
 | 
			
		||||
      hardcode_minus_L=yes
 | 
			
		||||
      ;;
 | 
			
		||||
    freebsd* | dragonfly*)
 | 
			
		||||
    freebsd* | dragonfly* | midnightbsd*)
 | 
			
		||||
      hardcode_libdir_flag_spec='-R$libdir'
 | 
			
		||||
      hardcode_direct=yes
 | 
			
		||||
      ;;
 | 
			
		||||
| 
						 | 
				
			
			@ -548,13 +544,11 @@ case "$host_os" in
 | 
			
		|||
  dgux*)
 | 
			
		||||
    library_names_spec='$libname$shrext'
 | 
			
		||||
    ;;
 | 
			
		||||
  freebsd* | dragonfly*)
 | 
			
		||||
    case "$host_os" in
 | 
			
		||||
      freebsd[123]*)
 | 
			
		||||
        library_names_spec='$libname$shrext$versuffix' ;;
 | 
			
		||||
      *)
 | 
			
		||||
        library_names_spec='$libname$shrext' ;;
 | 
			
		||||
    esac
 | 
			
		||||
  freebsd[23].*)
 | 
			
		||||
    library_names_spec='$libname$shrext$versuffix'
 | 
			
		||||
    ;;
 | 
			
		||||
  freebsd* | dragonfly* | midnightbsd*)
 | 
			
		||||
    library_names_spec='$libname$shrext'
 | 
			
		||||
    ;;
 | 
			
		||||
  gnu*)
 | 
			
		||||
    library_names_spec='$libname$shrext'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2867
									
								
								build-aux/config.sub
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2867
									
								
								build-aux/config.sub
									
										
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
 | 
			
		||||
scriptversion=2018-03-07.03; # UTC
 | 
			
		||||
 | 
			
		||||
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
 | 
			
		||||
# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program is free software; you can redistribute it and/or modify
 | 
			
		||||
# it under the terms of the GNU General Public License as published by
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -189,7 +189,7 @@ func_basename ()
 | 
			
		|||
#             to NONDIR_REPLACEMENT.
 | 
			
		||||
#             value returned in "$func_dirname_result"
 | 
			
		||||
#   basename: Compute filename of FILE.
 | 
			
		||||
#             value retuned in "$func_basename_result"
 | 
			
		||||
#             value returned in "$func_basename_result"
 | 
			
		||||
# Implementation must be kept synchronized with func_dirname
 | 
			
		||||
# and func_basename. For efficiency, we do not delegate to
 | 
			
		||||
# those functions but instead duplicate the functionality here.
 | 
			
		||||
| 
						 | 
				
			
			@ -522,7 +522,7 @@ func_mkdir_p ()
 | 
			
		|||
      # While some portion of DIR does not yet exist...
 | 
			
		||||
      while test ! -d "$my_directory_path"; do
 | 
			
		||||
        # ...make a list in topmost first order.  Use a colon delimited
 | 
			
		||||
	# list incase some portion of path contains whitespace.
 | 
			
		||||
	# list in case some portion of path contains whitespace.
 | 
			
		||||
        my_dir_list="$my_directory_path:$my_dir_list"
 | 
			
		||||
 | 
			
		||||
        # If the last portion added has no slash in it, the list is done
 | 
			
		||||
| 
						 | 
				
			
			@ -4394,7 +4394,7 @@ EOF
 | 
			
		|||
        {
 | 
			
		||||
          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
 | 
			
		||||
             namespace, but it is not one of the ones we know about and
 | 
			
		||||
             have already dealt with, above (inluding dump-script), then
 | 
			
		||||
             have already dealt with, above (including dump-script), then
 | 
			
		||||
             report an error. Otherwise, targets might begin to believe
 | 
			
		||||
             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
 | 
			
		||||
             namespace. The first time any user complains about this, we'll
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
 | 
			
		||||
scriptversion=2018-03-07.03; # UTC
 | 
			
		||||
 | 
			
		||||
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
 | 
			
		||||
# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 | 
			
		||||
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 | 
			
		||||
 | 
			
		||||
# This program is free software; you can redistribute it and/or modify
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +0,0 @@
 | 
			
		|||
#if !defined _Noreturn && __STDC_VERSION__ < 201112
 | 
			
		||||
# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
 | 
			
		||||
      || 0x5110 <= __SUNPRO_C)
 | 
			
		||||
#  define _Noreturn __attribute__ ((__noreturn__))
 | 
			
		||||
# elif 1200 <= _MSC_VER
 | 
			
		||||
#  define _Noreturn __declspec (noreturn)
 | 
			
		||||
# else
 | 
			
		||||
#  define _Noreturn
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -1,26 +0,0 @@
 | 
			
		|||
/* A C macro for declaring that specific arguments must not be NULL.
 | 
			
		||||
   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
   This program is free software: you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published
 | 
			
		||||
   by the Free Software Foundation; either version 3 of the License, or
 | 
			
		||||
   (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   This program is distributed in the hope that it will be useful,
 | 
			
		||||
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
   General Public License for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 | 
			
		||||
 | 
			
		||||
/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
 | 
			
		||||
   that the values passed as arguments n, ..., m must be non-NULL pointers.
 | 
			
		||||
   n = 1 stands for the first argument, n = 2 for the second argument etc.  */
 | 
			
		||||
#ifndef _GL_ARG_NONNULL
 | 
			
		||||
# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
 | 
			
		||||
#  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
 | 
			
		||||
# else
 | 
			
		||||
#  define _GL_ARG_NONNULL(params)
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -1,271 +0,0 @@
 | 
			
		|||
/* C++ compatible function declaration macros.
 | 
			
		||||
   Copyright (C) 2010-2013 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
   This program is free software: you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published
 | 
			
		||||
   by the Free Software Foundation; either version 3 of the License, or
 | 
			
		||||
   (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   This program is distributed in the hope that it will be useful,
 | 
			
		||||
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
   General Public License for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 | 
			
		||||
 | 
			
		||||
#ifndef _GL_CXXDEFS_H
 | 
			
		||||
#define _GL_CXXDEFS_H
 | 
			
		||||
 | 
			
		||||
/* The three most frequent use cases of these macros are:
 | 
			
		||||
 | 
			
		||||
   * For providing a substitute for a function that is missing on some
 | 
			
		||||
     platforms, but is declared and works fine on the platforms on which
 | 
			
		||||
     it exists:
 | 
			
		||||
 | 
			
		||||
       #if @GNULIB_FOO@
 | 
			
		||||
       # if !@HAVE_FOO@
 | 
			
		||||
       _GL_FUNCDECL_SYS (foo, ...);
 | 
			
		||||
       # endif
 | 
			
		||||
       _GL_CXXALIAS_SYS (foo, ...);
 | 
			
		||||
       _GL_CXXALIASWARN (foo);
 | 
			
		||||
       #elif defined GNULIB_POSIXCHECK
 | 
			
		||||
       ...
 | 
			
		||||
       #endif
 | 
			
		||||
 | 
			
		||||
   * For providing a replacement for a function that exists on all platforms,
 | 
			
		||||
     but is broken/insufficient and needs to be replaced on some platforms:
 | 
			
		||||
 | 
			
		||||
       #if @GNULIB_FOO@
 | 
			
		||||
       # if @REPLACE_FOO@
 | 
			
		||||
       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 | 
			
		||||
       #   undef foo
 | 
			
		||||
       #   define foo rpl_foo
 | 
			
		||||
       #  endif
 | 
			
		||||
       _GL_FUNCDECL_RPL (foo, ...);
 | 
			
		||||
       _GL_CXXALIAS_RPL (foo, ...);
 | 
			
		||||
       # else
 | 
			
		||||
       _GL_CXXALIAS_SYS (foo, ...);
 | 
			
		||||
       # endif
 | 
			
		||||
       _GL_CXXALIASWARN (foo);
 | 
			
		||||
       #elif defined GNULIB_POSIXCHECK
 | 
			
		||||
       ...
 | 
			
		||||
       #endif
 | 
			
		||||
 | 
			
		||||
   * For providing a replacement for a function that exists on some platforms
 | 
			
		||||
     but is broken/insufficient and needs to be replaced on some of them and
 | 
			
		||||
     is additionally either missing or undeclared on some other platforms:
 | 
			
		||||
 | 
			
		||||
       #if @GNULIB_FOO@
 | 
			
		||||
       # if @REPLACE_FOO@
 | 
			
		||||
       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 | 
			
		||||
       #   undef foo
 | 
			
		||||
       #   define foo rpl_foo
 | 
			
		||||
       #  endif
 | 
			
		||||
       _GL_FUNCDECL_RPL (foo, ...);
 | 
			
		||||
       _GL_CXXALIAS_RPL (foo, ...);
 | 
			
		||||
       # else
 | 
			
		||||
       #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@
 | 
			
		||||
       _GL_FUNCDECL_SYS (foo, ...);
 | 
			
		||||
       #  endif
 | 
			
		||||
       _GL_CXXALIAS_SYS (foo, ...);
 | 
			
		||||
       # endif
 | 
			
		||||
       _GL_CXXALIASWARN (foo);
 | 
			
		||||
       #elif defined GNULIB_POSIXCHECK
 | 
			
		||||
       ...
 | 
			
		||||
       #endif
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
/* _GL_EXTERN_C declaration;
 | 
			
		||||
   performs the declaration with C linkage.  */
 | 
			
		||||
#if defined __cplusplus
 | 
			
		||||
# define _GL_EXTERN_C extern "C"
 | 
			
		||||
#else
 | 
			
		||||
# define _GL_EXTERN_C extern
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
 | 
			
		||||
   declares a replacement function, named rpl_func, with the given prototype,
 | 
			
		||||
   consisting of return type, parameters, and attributes.
 | 
			
		||||
   Example:
 | 
			
		||||
     _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
 | 
			
		||||
                                  _GL_ARG_NONNULL ((1)));
 | 
			
		||||
 */
 | 
			
		||||
#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
 | 
			
		||||
  _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
 | 
			
		||||
#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
 | 
			
		||||
  _GL_EXTERN_C rettype rpl_func parameters_and_attributes
 | 
			
		||||
 | 
			
		||||
/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
 | 
			
		||||
   declares the system function, named func, with the given prototype,
 | 
			
		||||
   consisting of return type, parameters, and attributes.
 | 
			
		||||
   Example:
 | 
			
		||||
     _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
 | 
			
		||||
                                  _GL_ARG_NONNULL ((1)));
 | 
			
		||||
 */
 | 
			
		||||
#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
 | 
			
		||||
  _GL_EXTERN_C rettype func parameters_and_attributes
 | 
			
		||||
 | 
			
		||||
/* _GL_CXXALIAS_RPL (func, rettype, parameters);
 | 
			
		||||
   declares a C++ alias called GNULIB_NAMESPACE::func
 | 
			
		||||
   that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
 | 
			
		||||
   Example:
 | 
			
		||||
     _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
 | 
			
		||||
 */
 | 
			
		||||
#define _GL_CXXALIAS_RPL(func,rettype,parameters) \
 | 
			
		||||
  _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
 | 
			
		||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
 | 
			
		||||
# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
 | 
			
		||||
    namespace GNULIB_NAMESPACE                                \
 | 
			
		||||
    {                                                         \
 | 
			
		||||
      rettype (*const func) parameters = ::rpl_func;          \
 | 
			
		||||
    }                                                         \
 | 
			
		||||
    _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
#else
 | 
			
		||||
# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
 | 
			
		||||
    _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
 | 
			
		||||
   is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
 | 
			
		||||
   except that the C function rpl_func may have a slightly different
 | 
			
		||||
   declaration.  A cast is used to silence the "invalid conversion" error
 | 
			
		||||
   that would otherwise occur.  */
 | 
			
		||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
 | 
			
		||||
# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
 | 
			
		||||
    namespace GNULIB_NAMESPACE                                     \
 | 
			
		||||
    {                                                              \
 | 
			
		||||
      rettype (*const func) parameters =                           \
 | 
			
		||||
        reinterpret_cast<rettype(*)parameters>(::rpl_func);        \
 | 
			
		||||
    }                                                              \
 | 
			
		||||
    _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
#else
 | 
			
		||||
# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
 | 
			
		||||
    _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* _GL_CXXALIAS_SYS (func, rettype, parameters);
 | 
			
		||||
   declares a C++ alias called GNULIB_NAMESPACE::func
 | 
			
		||||
   that redirects to the system provided function func, if GNULIB_NAMESPACE
 | 
			
		||||
   is defined.
 | 
			
		||||
   Example:
 | 
			
		||||
     _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
 | 
			
		||||
 */
 | 
			
		||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
 | 
			
		||||
  /* If we were to write
 | 
			
		||||
       rettype (*const func) parameters = ::func;
 | 
			
		||||
     like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
 | 
			
		||||
     better (remove an indirection through a 'static' pointer variable),
 | 
			
		||||
     but then the _GL_CXXALIASWARN macro below would cause a warning not only
 | 
			
		||||
     for uses of ::func but also for uses of GNULIB_NAMESPACE::func.  */
 | 
			
		||||
# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
 | 
			
		||||
    namespace GNULIB_NAMESPACE                     \
 | 
			
		||||
    {                                              \
 | 
			
		||||
      static rettype (*func) parameters = ::func;  \
 | 
			
		||||
    }                                              \
 | 
			
		||||
    _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
#else
 | 
			
		||||
# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
 | 
			
		||||
    _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
 | 
			
		||||
   is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
 | 
			
		||||
   except that the C function func may have a slightly different declaration.
 | 
			
		||||
   A cast is used to silence the "invalid conversion" error that would
 | 
			
		||||
   otherwise occur.  */
 | 
			
		||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
 | 
			
		||||
# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
 | 
			
		||||
    namespace GNULIB_NAMESPACE                          \
 | 
			
		||||
    {                                                   \
 | 
			
		||||
      static rettype (*func) parameters =               \
 | 
			
		||||
        reinterpret_cast<rettype(*)parameters>(::func); \
 | 
			
		||||
    }                                                   \
 | 
			
		||||
    _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
#else
 | 
			
		||||
# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
 | 
			
		||||
    _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
 | 
			
		||||
   is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
 | 
			
		||||
   except that the C function is picked among a set of overloaded functions,
 | 
			
		||||
   namely the one with rettype2 and parameters2.  Two consecutive casts
 | 
			
		||||
   are used to silence the "cannot find a match" and "invalid conversion"
 | 
			
		||||
   errors that would otherwise occur.  */
 | 
			
		||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
 | 
			
		||||
  /* The outer cast must be a reinterpret_cast.
 | 
			
		||||
     The inner cast: When the function is defined as a set of overloaded
 | 
			
		||||
     functions, it works as a static_cast<>, choosing the designated variant.
 | 
			
		||||
     When the function is defined as a single variant, it works as a
 | 
			
		||||
     reinterpret_cast<>. The parenthesized cast syntax works both ways.  */
 | 
			
		||||
# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
 | 
			
		||||
    namespace GNULIB_NAMESPACE                                                \
 | 
			
		||||
    {                                                                         \
 | 
			
		||||
      static rettype (*func) parameters =                                     \
 | 
			
		||||
        reinterpret_cast<rettype(*)parameters>(                               \
 | 
			
		||||
          (rettype2(*)parameters2)(::func));                                  \
 | 
			
		||||
    }                                                                         \
 | 
			
		||||
    _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
#else
 | 
			
		||||
# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
 | 
			
		||||
    _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* _GL_CXXALIASWARN (func);
 | 
			
		||||
   causes a warning to be emitted when ::func is used but not when
 | 
			
		||||
   GNULIB_NAMESPACE::func is used.  func must be defined without overloaded
 | 
			
		||||
   variants.  */
 | 
			
		||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
 | 
			
		||||
# define _GL_CXXALIASWARN(func) \
 | 
			
		||||
   _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
 | 
			
		||||
# define _GL_CXXALIASWARN_1(func,namespace) \
 | 
			
		||||
   _GL_CXXALIASWARN_2 (func, namespace)
 | 
			
		||||
/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
 | 
			
		||||
   we enable the warning only when not optimizing.  */
 | 
			
		||||
# if !__OPTIMIZE__
 | 
			
		||||
#  define _GL_CXXALIASWARN_2(func,namespace) \
 | 
			
		||||
    _GL_WARN_ON_USE (func, \
 | 
			
		||||
                     "The symbol ::" #func " refers to the system function. " \
 | 
			
		||||
                     "Use " #namespace "::" #func " instead.")
 | 
			
		||||
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
 | 
			
		||||
#  define _GL_CXXALIASWARN_2(func,namespace) \
 | 
			
		||||
     extern __typeof__ (func) func
 | 
			
		||||
# else
 | 
			
		||||
#  define _GL_CXXALIASWARN_2(func,namespace) \
 | 
			
		||||
     _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
# endif
 | 
			
		||||
#else
 | 
			
		||||
# define _GL_CXXALIASWARN(func) \
 | 
			
		||||
    _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
 | 
			
		||||
   causes a warning to be emitted when the given overloaded variant of ::func
 | 
			
		||||
   is used but not when GNULIB_NAMESPACE::func is used.  */
 | 
			
		||||
#if defined __cplusplus && defined GNULIB_NAMESPACE
 | 
			
		||||
# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
 | 
			
		||||
   _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
 | 
			
		||||
                        GNULIB_NAMESPACE)
 | 
			
		||||
# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
 | 
			
		||||
   _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
 | 
			
		||||
/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
 | 
			
		||||
   we enable the warning only when not optimizing.  */
 | 
			
		||||
# if !__OPTIMIZE__
 | 
			
		||||
#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
 | 
			
		||||
    _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
 | 
			
		||||
                         "The symbol ::" #func " refers to the system function. " \
 | 
			
		||||
                         "Use " #namespace "::" #func " instead.")
 | 
			
		||||
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
 | 
			
		||||
#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
 | 
			
		||||
     extern __typeof__ (func) func
 | 
			
		||||
# else
 | 
			
		||||
#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
 | 
			
		||||
     _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
# endif
 | 
			
		||||
#else
 | 
			
		||||
# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
 | 
			
		||||
    _GL_EXTERN_C int _gl_cxxalias_dummy
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* _GL_CXXDEFS_H */
 | 
			
		||||
| 
						 | 
				
			
			@ -1,109 +0,0 @@
 | 
			
		|||
/* A C macro for emitting warnings if a function is used.
 | 
			
		||||
   Copyright (C) 2010-2013 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
   This program is free software: you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published
 | 
			
		||||
   by the Free Software Foundation; either version 3 of the License, or
 | 
			
		||||
   (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   This program is distributed in the hope that it will be useful,
 | 
			
		||||
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
   General Public License for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 | 
			
		||||
 | 
			
		||||
/* _GL_WARN_ON_USE (function, "literal string") issues a declaration
 | 
			
		||||
   for FUNCTION which will then trigger a compiler warning containing
 | 
			
		||||
   the text of "literal string" anywhere that function is called, if
 | 
			
		||||
   supported by the compiler.  If the compiler does not support this
 | 
			
		||||
   feature, the macro expands to an unused extern declaration.
 | 
			
		||||
 | 
			
		||||
   This macro is useful for marking a function as a potential
 | 
			
		||||
   portability trap, with the intent that "literal string" include
 | 
			
		||||
   instructions on the replacement function that should be used
 | 
			
		||||
   instead.  However, one of the reasons that a function is a
 | 
			
		||||
   portability trap is if it has the wrong signature.  Declaring
 | 
			
		||||
   FUNCTION with a different signature in C is a compilation error, so
 | 
			
		||||
   this macro must use the same type as any existing declaration so
 | 
			
		||||
   that programs that avoid the problematic FUNCTION do not fail to
 | 
			
		||||
   compile merely because they included a header that poisoned the
 | 
			
		||||
   function.  But this implies that _GL_WARN_ON_USE is only safe to
 | 
			
		||||
   use if FUNCTION is known to already have a declaration.  Use of
 | 
			
		||||
   this macro implies that there must not be any other macro hiding
 | 
			
		||||
   the declaration of FUNCTION; but undefining FUNCTION first is part
 | 
			
		||||
   of the poisoning process anyway (although for symbols that are
 | 
			
		||||
   provided only via a macro, the result is a compilation error rather
 | 
			
		||||
   than a warning containing "literal string").  Also note that in
 | 
			
		||||
   C++, it is only safe to use if FUNCTION has no overloads.
 | 
			
		||||
 | 
			
		||||
   For an example, it is possible to poison 'getline' by:
 | 
			
		||||
   - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
 | 
			
		||||
     [getline]) in configure.ac, which potentially defines
 | 
			
		||||
     HAVE_RAW_DECL_GETLINE
 | 
			
		||||
   - adding this code to a header that wraps the system <stdio.h>:
 | 
			
		||||
     #undef getline
 | 
			
		||||
     #if HAVE_RAW_DECL_GETLINE
 | 
			
		||||
     _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but"
 | 
			
		||||
       "not universally present; use the gnulib module getline");
 | 
			
		||||
     #endif
 | 
			
		||||
 | 
			
		||||
   It is not possible to directly poison global variables.  But it is
 | 
			
		||||
   possible to write a wrapper accessor function, and poison that
 | 
			
		||||
   (less common usage, like &environ, will cause a compilation error
 | 
			
		||||
   rather than issue the nice warning, but the end result of informing
 | 
			
		||||
   the developer about their portability problem is still achieved):
 | 
			
		||||
   #if HAVE_RAW_DECL_ENVIRON
 | 
			
		||||
   static char ***rpl_environ (void) { return &environ; }
 | 
			
		||||
   _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
 | 
			
		||||
   # undef environ
 | 
			
		||||
   # define environ (*rpl_environ ())
 | 
			
		||||
   #endif
 | 
			
		||||
   */
 | 
			
		||||
#ifndef _GL_WARN_ON_USE
 | 
			
		||||
 | 
			
		||||
# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
 | 
			
		||||
/* A compiler attribute is available in gcc versions 4.3.0 and later.  */
 | 
			
		||||
#  define _GL_WARN_ON_USE(function, message) \
 | 
			
		||||
extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
 | 
			
		||||
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
 | 
			
		||||
/* Verify the existence of the function.  */
 | 
			
		||||
#  define _GL_WARN_ON_USE(function, message) \
 | 
			
		||||
extern __typeof__ (function) function
 | 
			
		||||
# else /* Unsupported.  */
 | 
			
		||||
#  define _GL_WARN_ON_USE(function, message) \
 | 
			
		||||
_GL_WARN_EXTERN_C int _gl_warn_on_use
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
 | 
			
		||||
   is like _GL_WARN_ON_USE (function, "string"), except that the function is
 | 
			
		||||
   declared with the given prototype, consisting of return type, parameters,
 | 
			
		||||
   and attributes.
 | 
			
		||||
   This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
 | 
			
		||||
   not work in this case.  */
 | 
			
		||||
#ifndef _GL_WARN_ON_USE_CXX
 | 
			
		||||
# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
 | 
			
		||||
#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
 | 
			
		||||
extern rettype function parameters_and_attributes \
 | 
			
		||||
     __attribute__ ((__warning__ (msg)))
 | 
			
		||||
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
 | 
			
		||||
/* Verify the existence of the function.  */
 | 
			
		||||
#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
 | 
			
		||||
extern rettype function parameters_and_attributes
 | 
			
		||||
# else /* Unsupported.  */
 | 
			
		||||
#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
 | 
			
		||||
_GL_WARN_EXTERN_C int _gl_warn_on_use
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* _GL_WARN_EXTERN_C declaration;
 | 
			
		||||
   performs the declaration with C linkage.  */
 | 
			
		||||
#ifndef _GL_WARN_EXTERN_C
 | 
			
		||||
# if defined __cplusplus
 | 
			
		||||
#  define _GL_WARN_EXTERN_C extern "C"
 | 
			
		||||
# else
 | 
			
		||||
#  define _GL_WARN_EXTERN_C extern
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
 | 
			
		||||
scriptversion=2018-03-07.03; # UTC
 | 
			
		||||
 | 
			
		||||
# Copyright (C) 2011-2021 Free Software Foundation, Inc.
 | 
			
		||||
# Copyright (C) 2011-2020 Free Software Foundation, Inc.
 | 
			
		||||
#
 | 
			
		||||
# This program is free software; you can redistribute it and/or modify
 | 
			
		||||
# it under the terms of the GNU General Public License as published by
 | 
			
		||||
| 
						 | 
				
			
			@ -105,11 +105,8 @@ trap "st=130; $do_exit" 2
 | 
			
		|||
trap "st=141; $do_exit" 13
 | 
			
		||||
trap "st=143; $do_exit" 15
 | 
			
		||||
 | 
			
		||||
# Test script is run here. We create the file first, then append to it,
 | 
			
		||||
# to ameliorate tests themselves also writing to the log file. Our tests
 | 
			
		||||
# don't, but others can (automake bug#35762).
 | 
			
		||||
: >"$log_file"
 | 
			
		||||
"$@" >>"$log_file" 2>&1
 | 
			
		||||
# Test script is run here.
 | 
			
		||||
"$@" >$log_file 2>&1
 | 
			
		||||
estatus=$?
 | 
			
		||||
 | 
			
		||||
if test $enable_hard_errors = no && test $estatus -eq 99; then
 | 
			
		||||
| 
						 | 
				
			
			@ -131,7 +128,7 @@ esac
 | 
			
		|||
# know whether the test passed or failed simply by looking at the '.log'
 | 
			
		||||
# file, without the need of also peaking into the corresponding '.trs'
 | 
			
		||||
# file (automake bug#11814).
 | 
			
		||||
echo "$res $test_name (exit status: $estatus)" >>"$log_file"
 | 
			
		||||
echo "$res $test_name (exit status: $estatus)" >>$log_file
 | 
			
		||||
 | 
			
		||||
# Report outcome to console.
 | 
			
		||||
echo "${col}${res}${std}: $test_name"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue