1997-07-14 21:49:20 +00:00
#! /bin/sh
2002-10-17 23:48:55 +00:00
# Guess values for system-dependent variables and create Makefiles.
2014-09-29 14:45:59 +00:00
# Generated by GNU Autoconf 2.69 for GNU C Library (see version.h).
2002-10-19 20:07:18 +00:00
#
2017-11-16 06:19:26 +00:00
# Report bugs to <https://sourceware.org/bugzilla/>.
2002-10-17 23:48:55 +00:00
#
2010-07-10 02:25:39 +00:00
#
2014-09-29 14:45:59 +00:00
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
2010-07-10 02:25:39 +00:00
#
#
2002-10-17 23:48:55 +00:00
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
2010-07-10 02:25:39 +00:00
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
1997-07-14 21:49:20 +00:00
2007-06-08 03:17:15 +00:00
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
2010-07-10 02:25:39 +00:00
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
2002-10-17 23:48:55 +00:00
emulate sh
NULLCMD=:
2009-04-07 06:36:33 +00:00
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
2002-10-19 20:07:18 +00:00
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
2007-06-08 03:17:15 +00:00
setopt NO_GLOB_SUBST
else
2010-07-10 02:25:39 +00:00
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
2007-06-08 03:17:15 +00:00
esac
fi
2009-04-07 06:36:33 +00:00
as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
2010-07-10 02:25:39 +00:00
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
&& (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='print -r --'
as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
2009-04-07 06:36:33 +00:00
as_echo='printf %s\n'
as_echo_n='printf %s'
else
if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
as_echo_n='/usr/ucb/echo -n'
2009-04-05 18:49:28 +00:00
else
2009-04-07 06:36:33 +00:00
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
2010-07-10 02:25:39 +00:00
case $arg in #(
2009-04-07 06:36:33 +00:00
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
esac;
expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
'
export as_echo_n_body
as_echo_n='sh -c $as_echo_n_body as_echo'
2009-04-05 18:49:28 +00:00
fi
2009-04-07 06:36:33 +00:00
export as_echo_body
as_echo='sh -c $as_echo_body as_echo'
fi
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
2002-10-17 23:48:55 +00:00
fi
1997-07-14 21:49:20 +00:00
2002-10-19 20:07:18 +00:00
2007-06-08 03:17:15 +00:00
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
2011-09-11 16:14:48 +00:00
as_myself=
2010-07-10 02:25:39 +00:00
case $0 in #((
2007-06-08 03:17:15 +00:00
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
2009-04-07 06:36:33 +00:00
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
2010-07-10 02:25:39 +00:00
exit 1
2007-06-08 03:17:15 +00:00
fi
2010-07-10 02:25:39 +00:00
# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there. '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
2007-06-08 03:17:15 +00:00
done
2002-10-19 20:07:18 +00:00
PS1='$ '
PS2='> '
PS4='+ '
# NLS nuisances.
2009-04-07 06:36:33 +00:00
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
2002-10-19 20:07:18 +00:00
2010-07-10 02:25:39 +00:00
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
2014-09-29 14:45:59 +00:00
# Use a proper internal environment variable to ensure we don't fall
# into an infinite loop, continuously re-executing ourselves.
if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
_as_can_reexec=no; export _as_can_reexec;
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
as_fn_exit 255
fi
# We don't want this to propagate to other subprocesses.
{ _as_can_reexec=; unset _as_can_reexec;}
2010-07-10 02:25:39 +00:00
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
else
case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
"
as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }
exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
else
exitcode=1; echo positional parameters were not saved.
fi
2014-09-29 14:45:59 +00:00
test x\$exitcode = x0 || exit 1
test -x / || exit 1"
2010-07-10 02:25:39 +00:00
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
2015-10-15 23:30:42 +00:00
test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
2010-07-10 02:25:39 +00:00
if (eval "$as_required") 2>/dev/null; then :
as_have_required=yes
else
as_have_required=no
fi
if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
as_shell=$as_dir/$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
{ $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
CONFIG_SHELL=$as_shell as_have_required=yes
if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
break 2
fi
fi
done;;
esac
as_found=false
done
$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
{ $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
CONFIG_SHELL=$SHELL as_have_required=yes
fi; }
IFS=$as_save_IFS
if test "x$CONFIG_SHELL" != x; then :
2014-09-29 14:45:59 +00:00
export CONFIG_SHELL
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
2010-07-10 02:25:39 +00:00
fi
if test x$as_have_required = xno; then :
$as_echo "$0: This script requires a shell more modern than all"
$as_echo "$0: the shells that I found on your system."
if test x${ZSH_VERSION+set} = xset ; then
$as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
else
2011-09-11 16:14:48 +00:00
$as_echo "$0: Please tell bug-autoconf@gnu.org and
2017-11-16 06:19:26 +00:00
$0: https://sourceware.org/bugzilla/ about your system,
2011-09-11 16:14:48 +00:00
$0: including any error possibly output before this
2010-07-10 02:25:39 +00:00
$0: message. Then install a modern shell, or manually run
$0: the script under such a shell if you do have one."
fi
exit 1
fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS
## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
2010-12-25 01:14:37 +00:00
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
2010-07-10 02:25:39 +00:00
} # as_fn_mkdir_p
2014-09-29 14:45:59 +00:00
# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
test -f "$1" && test -x "$1"
} # as_fn_executable_p
2010-07-10 02:25:39 +00:00
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
2010-12-25 01:14:37 +00:00
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
2010-07-10 02:25:39 +00:00
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
2010-12-25 01:14:37 +00:00
# script with STATUS, using 1 if that was 0.
2010-07-10 02:25:39 +00:00
as_fn_error ()
{
2010-12-25 01:14:37 +00:00
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
$as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
2010-07-10 02:25:39 +00:00
fi
2010-12-25 01:14:37 +00:00
$as_echo "$as_me: error: $2" >&2
2010-07-10 02:25:39 +00:00
as_fn_exit $as_status
} # as_fn_error
2007-06-08 03:17:15 +00:00
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
2002-10-19 20:07:18 +00:00
as_expr=expr
else
as_expr=false
fi
2007-06-08 03:17:15 +00:00
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
2002-10-19 20:07:18 +00:00
as_basename=basename
else
as_basename=false
fi
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
2002-10-17 23:48:55 +00:00
2007-06-08 03:17:15 +00:00
as_me=`$as_basename -- "$0" ||
2002-10-17 23:48:55 +00:00
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
2007-06-08 03:17:15 +00:00
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
2009-04-07 06:36:33 +00:00
$as_echo X/"$0" |
2007-06-08 03:17:15 +00:00
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
2002-10-19 20:07:18 +00:00
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
as_lineno_1=$LINENO as_lineno_1a=$LINENO
as_lineno_2=$LINENO as_lineno_2a=$LINENO
eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
# Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
' <$as_myself |
sed '
s/[$]LINENO.*/&-/
t lineno
b
:lineno
N
:loop
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
t loop
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
1997-07-14 21:49:20 +00:00
2014-09-29 14:45:59 +00:00
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
# already done that, so ensure we don't try to do so again and fall
# in an infinite loop. This has already happened in practice.
_as_can_reexec=no; export _as_can_reexec
2010-07-10 02:25:39 +00:00
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
. "./$as_me.lineno"
# Exit status is that of the last command.
exit
2007-06-08 03:17:15 +00:00
}
1997-07-14 21:49:20 +00:00
2010-07-10 02:25:39 +00:00
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
Update.
1997-09-25 00:23 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-profile.c: Correct implementation.
* io/ftwtest-sh: Don't depend on TMPDIR == /tmp.
* locale/setlocale.c: Rewrite a bit for more clarity.
* math/Makefile (libm-calls): Add w_exp2.
* math/math_private.h: Add prototypes for __ieee754_exp2{,f,l}.
* sysdeps/libm-i387/s_exp2.S: Change name to __ieee754_exp2.
* sysdeps/libm-i387/s_exp2f.S: Likewise.
* sysdeps/libm-i387/s_exp2l.S: Likewise.
* sysdeps/libm-ieee754/k_standard.c: Add error cases for exp2.
* string/bits/string2.h (__strcpy_small): Optimize.
(__stpcpy_small): Likewise.
(strncpy): Use variable for dest argument since it's used more than
once.
(strncat): Likewise.
(strcmp): Add optimization for this function.
* sysdeps/i386/i486/string.h (strlen): Correctly use __builtin_strlen.
(__strcpy_small): Optimize.
(__stpcpy_small): Likewise.
(__stpcpy_c): Correctly use __mempcpy_* macros.
(__mempcpy_by2, __mempcpy_by4, __mempcpy_byn): Return pointer to
byte following last copied.
(strncat): Use variable for dest argument since it's used more than
once.
(strcmp): Add optimization for this function.
* sysdeps/i386/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE): Use
.text and .previous to select correct section.
1997-09-23 19:56 Philip Blundell <Philip.Blundell@pobox.com>
* configure.in: Add `--disable-versioning' option to suppress the
use of symbol versions even if binutils claims to support it.
1997-09-24 20:10 Philip Blundell <Philip.Blundell@pobox.com>
* csu/Makefile (before-compile): Don't try to build abi-tags.h if
not using ELF.
1997-09-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/sofini.c [HAVE_DWARF2_UNWIND_INFO]: Supply termination for
the frame unwind info section.
* elf/soinit.c [HAVE_DWARF2_UNWIND_INFO]: Register and unregister
the frame unwind info.
* config.h.in (HAVE_DWARF2_UNWIND_INFO): Add #undef.
* configure.in: Check whether gcc supports DWARF2 unwind info.
* libc.map: Export frame handling tables.
1997-09-10 06:56 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/unix/sysv/linux/powerpc/bits/kernel_termios.h:
Use the size of the kernel's termios structure for ioctls.
* sysdeps/powerpc/dl-machine.h: Prepare for library profiling.
* sysdeps/powerpc/bits/mathinline.h: Add slightly slower versions
of the C9X FP comparison macros. Delete 'fabs' and 'sqrt' inline
routines, because gcc has them as internals.
* sysdeps/powerpc/Makefile (pic-ccflags): Define this instead of
CFLAGS-.os.
* sysdeps/powerpc/bzero.S: New file.
* sysdeps/powerpc/strcat.c: New file.
* sysdeps/powerpc/strcpy.S: New file.
* sysdeps/powerpc/stpcpy.S: New file.
* math/Makefile: Add atest_exp2, test-reduce.
* math/atest_exp2.c: New file.
* math/test-reduce.c: New file.
* sysdeps/libm-ieee754/Dist: New file.
* sysdeps/libm-ieee754/s_exp2.c: New file.
* sysdeps/libm-ieee754/s_exp2f.c: New file.
* sysdeps/libm-ieee754/t_exp2.h: New file.
* sysdeps/libm-ieee754/t_exp2f.h: New file.
* math/libm-test.c (exp2_test): Add some more tests.
* Rules: Use empty.os instead of empty.o, since it gets linked into
libc.so...
* configure.in: Add --disable-static to disable building .a files.
* config.make.in: Substitute the new variable.
* Makeconfig: Don't build .o files if not building .a files.
* elf/dl-runtime.c (fixup): Factor out call to elf_machine_relplt.
(profile_fixup): Likewise.
1997-09-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/globtest.c (main): Change to directory passed as first
argument.
* posix/globtest.sh: Don't cd before running the program, instead
pass testdir as argument, so that $common_objpfx remains valid.
1997-09-23 18:01 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nis_call.c (__do_niscall2): Fix multiple Server support.
* nis/nis_findserver.c: Save latest working sockaddr_in.
1997-09-17 22:07 Zack Weinberg <zack@rabi.phys.columbia.edu>
* configure.in: Automatically determine whether as and ld are the
GNU versions.
(options): --with-gnu-{as,ld,binutils} replaced by
single option --with-binutils=PATH specifying a -B option to gcc.
* aclocal.m4: Two new macros defined, LIBC_PROG_FOO_GNU and
LIBC_PROG_BINUTILS.
* configure.in: Allow the user to force configuration for
unsupported platforms with an undocumented option.
1997-09-22 16:55 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/get_myaddr.c (get_myaddress): Avoid loopback interfaces,
return loopback address only if there is no other interface.
* nis/Makefile: Add nis_callback libnsl-routines.
* nis/nis_add.c: Use new __do_niscall* interface.
* nis/nis_cache.c: Likewise.
* nis/nis_checkpoint.c: Likewise.
* nis/nis_lookup.c: Likewise.
* nis/nis_mkdir.c: Likewise.
* nis/nis_modify.c: Likewise.
* nis/nis_ping.c: Likewise.
* nis/nis_remove.c: Likewise.
* nis/nis_rmdir.c: Likewise.
* nis/nis_server.c: Likewise.
* nis/nis_util.c: Likewise.
* nis/rpcsvc/nis.h: Make C++ safe.
* nis/nss_nisplus/nisplus-publickey.c (getsecretkey): Fix use
of variables.
* nis/nis_findserv.c: Make thread safe.
* nis/nis_call.c: Add support for callback, Fix use of variables.
* nis/nis_table.c: Add support for callback, FOLLOW_PATH and
ALL_RESULTS.
* nis/nis_callback.c: New, callback functions.
* nis/nis_intern.h: Add callback declarations.
1997-09-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h: Fix logic in preprocessor directive.
(__strsep_1c, __strsep_g): Don't declare __retval as pointing to
const, to save a cast and a possible warning.
1997-09-22 04:12 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/i486/atomicity.h (exchange_and_add): Really address
memory in xadd not %1.
1997-09-21 13:56 Ulrich Drepper <drepper@cygnus.com>
* manual/maint.texi (Supported Configurations): Add SPARC64 to
list of supported platforms.
1997-09-24 23:03:42 +00:00
2010-07-10 02:25:39 +00:00
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
2007-06-08 03:17:15 +00:00
fi
2010-07-10 02:25:39 +00:00
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
2014-09-29 14:45:59 +00:00
# In both cases, we have to default to `cp -pR'.
2010-07-10 02:25:39 +00:00
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
2014-09-29 14:45:59 +00:00
as_ln_s='cp -pR'
2010-07-10 02:25:39 +00:00
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
2014-09-29 14:45:59 +00:00
as_ln_s='cp -pR'
2010-07-10 02:25:39 +00:00
fi
2007-06-08 03:17:15 +00:00
else
2014-09-29 14:45:59 +00:00
as_ln_s='cp -pR'
2007-06-08 03:17:15 +00:00
fi
2010-07-10 02:25:39 +00:00
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
2007-06-08 03:17:15 +00:00
2010-07-10 02:25:39 +00:00
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
2007-06-08 03:17:15 +00:00
fi
2014-09-29 14:45:59 +00:00
as_test_x='test -x'
as_executable_p=as_fn_executable_p
2007-06-08 03:17:15 +00:00
2010-07-10 02:25:39 +00:00
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
2007-06-08 03:17:15 +00:00
2010-07-10 02:25:39 +00:00
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
2007-06-08 03:17:15 +00:00
2010-07-10 02:25:39 +00:00
test -n "$DJDIR" || exec 7<&0 </dev/null
exec 6>&1
1997-07-14 21:49:20 +00:00
2002-10-17 23:48:55 +00:00
# Name of the host.
2010-12-25 01:14:37 +00:00
# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
2002-10-17 23:48:55 +00:00
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
#
# Initializations.
#
1997-07-14 21:49:20 +00:00
ac_default_prefix=/usr/local
2007-06-08 03:17:15 +00:00
ac_clean_files=
2002-10-19 20:07:18 +00:00
ac_config_libobj_dir=.
2007-06-08 03:17:15 +00:00
LIBOBJS=
2002-10-17 23:48:55 +00:00
cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=
# Identity of this package.
2002-10-19 20:07:18 +00:00
PACKAGE_NAME='GNU C Library'
2011-09-11 16:14:48 +00:00
PACKAGE_TARNAME='glibc'
2002-10-19 20:07:18 +00:00
PACKAGE_VERSION='(see version.h)'
PACKAGE_STRING='GNU C Library (see version.h)'
2017-11-16 06:19:26 +00:00
PACKAGE_BUGREPORT='https://sourceware.org/bugzilla/'
2019-09-09 21:10:23 +00:00
PACKAGE_URL='https://www.gnu.org/software/glibc/'
2002-10-17 23:48:55 +00:00
ac_unique_file="include/features.h"
2009-04-07 06:36:33 +00:00
enable_option_checking=no
ac_subst_vars='LTLIBOBJS
2009-04-05 18:49:28 +00:00
LIBOBJS
2021-05-03 06:12:11 +00:00
pthread_in_libc
2009-04-07 06:36:33 +00:00
RELEASE
VERSION
mach_interface_list
DEFINES
static_nss
profile
2017-11-06 16:29:48 +00:00
libc_cv_multidir
2009-04-07 06:36:33 +00:00
shared
static
ldd_rewrite_script
use_ldconfig
libc_cv_rootsbindir
2012-06-22 17:11:07 +00:00
libc_cv_localstatedir
2009-04-07 06:36:33 +00:00
libc_cv_sysconfdir
2015-11-27 15:09:45 +00:00
libc_cv_complocaledir
2013-03-18 11:44:47 +00:00
libc_cv_rtlddir
2009-04-07 06:36:33 +00:00
libc_cv_slibdir
2012-08-22 20:31:12 +00:00
use_nscd
2009-04-07 06:36:33 +00:00
libc_cv_gcc_unwind_find_fde
2014-04-06 21:26:32 +00:00
libc_extra_cppflags
2012-05-14 23:08:25 +00:00
libc_extra_cflags
2015-10-06 19:27:55 +00:00
libc_cv_cxx_thread_local
2012-05-14 22:42:52 +00:00
CPPUNDEFS
2009-04-07 06:36:33 +00:00
have_selinux
have_libcap
have_libaudit
LIBGD
2013-06-21 00:40:55 +00:00
libc_cv_cc_loop_to_function
2009-04-07 06:36:33 +00:00
libc_cv_cc_submachine
2013-03-20 22:37:06 +00:00
libc_cv_cc_nofma
2016-07-12 13:29:54 +00:00
libc_cv_mtls_dialect_gnu2
2009-04-07 06:36:33 +00:00
fno_unit_at_a_time
2015-11-14 20:00:16 +00:00
libc_cv_has_glob_dat
2009-04-07 06:36:33 +00:00
libc_cv_hashstyle
libc_cv_fpie
libc_cv_z_execstack
libc_cv_z_combreloc
ASFLAGS_config
libc_cv_cc_with_libunwind
2017-08-04 19:17:15 +00:00
libc_cv_insert
2015-03-31 12:20:55 +00:00
libc_cv_protected_data
2009-04-07 06:36:33 +00:00
INSTALL_INFO
PERL
BASH_SHELL
2017-06-13 16:28:14 +00:00
CXX_BITS_STD_ABS_H
2016-09-21 08:45:32 +00:00
CXX_CMATH_HEADER
CXX_CSTDLIB_HEADER
2009-04-07 06:36:33 +00:00
CXX_SYSINCLUDES
SYSINCLUDES
2016-12-22 17:37:52 +00:00
PYTHON
PYTHON_PROG
2009-04-07 06:36:33 +00:00
AUTOCONF
2012-05-14 23:08:25 +00:00
NM
2017-11-30 21:21:15 +00:00
BISON
2012-09-01 23:30:18 +00:00
AWK
2009-04-07 06:36:33 +00:00
SED
MAKEINFO
MSGFMT
MAKE
LD
AS
2017-08-15 13:49:40 +00:00
GPROF
2011-06-25 07:06:42 +00:00
OBJCOPY
2009-04-07 06:36:33 +00:00
OBJDUMP
AR
LN_S
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
sysnames
submachine
2009-12-24 04:22:46 +00:00
multi_arch
Fix ifunc support with DT_TEXTREL segments (BZ#20480)
Currently, DT_TEXTREL is incompatible with IFUNC. When DT_TEXTREL or
DF_TEXTREL is seen, the dynamic linker calls __mprotect on the segments
with PROT_READ|PROT_WRITE before applying dynamic relocations. It leads
to segfault when performing IFUNC resolution (which requires PROT_EXEC
as well for the IFUNC resolver).
This patch makes it call __mprotect with extra PROT_WRITE bit, which
will keep the PROT_EXEC bit if exists, and thus fixes the segfault.
FreeBSD rtld libexec/rtld-elf/rtld.c (reloc_textrel_prot) does the same.
Checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu,
sparc64-linux-gnu, sparcv9-linux-gnu, and armv8-linux-gnueabihf.
Adam J. Richte <adam_richter2004@yahoo.com>
Adhemerval Zanella <adhemerval.zanella@linaro.org>
Fangrui Song <maskray@google.com>
[BZ #20480]
* config.h.in (CAN_TEXTREL_IFUNC): New define.
* configure.ac: Add check if linker supports textrel relocation with
ifunc.
* elf/dl-reloc.c (_dl_relocate_object): Use all required flags on
DT_TEXTREL segments, not only PROT_READ and PROT_WRITE.
* elf/Makefile (ifunc-pie-tests): Add tst-ifunc-textrel.
(CFLAGS-tst-ifunc-textrel.c): New rule.
* elf/tst-ifunc-textrel.c: New file.
2018-08-27 19:16:43 +00:00
libc_cv_textrel_ifunc
2016-12-26 09:08:18 +00:00
no_stack_protector
stack_protector
libc_cv_ssp
Remove --with-fp / --without-fp.
There is a configure option --without-fp that specifies that nofpu
sysdeps directories should be used instead of fpu directories.
For most glibc configurations, this option is of no use: either there
is no valid nofpu variant of that configuration, or there are no fpu
or nofpu sysdeps directories for that processor and so the option does
nothing. For a few configurations, if you are using a soft-float
compiler this option is required, and failing to use it generally
results in compilation errors from inline asm using unavailable
floating-point instructions.
We're moving away from --with-cpu to configuring glibc based on how
the compiler generates code, and it is natural to do so for
--without-fp as well; in most cases the soft-float and hard-float ABIs
are incompatible so you have no hope of building a working glibc with
an inappropriately configured compiler or libgcc.
This patch eliminates --without-fp, replacing it entirely by automatic
configuration based on the compiler. Configurations for which this is
relevant (coldfire / mips / powerpc32 / sh) define a variable
with_fp_cond in their preconfigure fragments (under the same
conditions under which those fragments do anything); this is a
preprocessor conditional which the toplevel configure script then uses
in a test to determine which sysdeps directories to use.
The config.make with-fp variable remains. It's used only by powerpc
(sysdeps/powerpc/powerpc32/Makefile) to add -mhard-float to various
flags variables. For powerpc, -mcpu= options can imply use of
soft-float. That could be an issue if you want to build for
e.g. 476fp, but are using --with-cpu=476 because there isn't a 476fp
sysdeps directory. If in future we eliminate --with-cpu and replace
it entirely by testing the compiler, it would be natural at that point
to eliminate that code as well (as the user should then just use a
compiler defaulting to 476fp and the 476 sysdeps directory would be
used automatically).
Tested for x86_64, and tested with build-many-glibcs.py that installed
shared libraries are unchanged by this patch.
* configure.ac (--with-fp): Remove configure option.
(with_fp_cond): New variable.
(libc_cv_with_fp): New configure test. Use this variable instead
of with_fp.
* configure: Regenerated.
* config.make.in (with-fp): Use @libc_cv_with_fp@.
* manual/install.texi (Configuring and compiling): Remove
--without-fp.
* INSTALL: Regenerated.
* sysdeps/m68k/preconfigure (with_fp_cond): Define for ColdFire.
* sysdeps/mips/preconfigure (with_fp_cond): Define.
* sysdeps/powerpc/preconfigure (with_fp_cond): Define for 32-bit.
* sysdeps/sh/preconfigure (with_fp_cond): Define.
* scripts/build-many-glibcs.py (Context.add_all_configs): Do not
use --without-fp to configure glibc.
2017-12-12 13:56:47 +00:00
libc_cv_with_fp
2009-04-07 06:36:33 +00:00
base_machine
2016-12-31 18:02:17 +00:00
have_tunables
2013-07-19 06:42:03 +00:00
build_pt_chown
2012-08-22 20:35:55 +00:00
build_nscd
2016-12-02 20:39:09 +00:00
libc_cv_static_nss_crypt
2009-04-07 06:36:33 +00:00
libc_cv_nss_crypt
2018-06-29 14:53:47 +00:00
build_crypt
2020-12-21 15:03:03 +00:00
memory_tagging
2017-07-06 17:37:30 +00:00
experimental_malloc
Use -Werror by default, add --disable-werror.
As discussed starting at
<https://sourceware.org/ml/libc-alpha/2014-11/msg00323.html>, this
patch makes the glibc build use -Werror by default to avoid
accidentally adding new warnings to the build. The configure option
--disable-werror can be used to disable this.
-Wno-error=undef is temporarily used because the build isn't clean
regarding -Wundef warnings. The idea is that once the remaining
-Wundef warnings have been cleaned up (in at least one configuration),
-Wno-error=undef will be removed.
I get a clean build and test on x86_64 (GCC 4.9 branch) with this
patch. The expectation is that this may well break the build for some
other configurations, and people seeing such breakage should make
appropriate fixes to fix or suppress the warnings for their
configurations. In some cases that may involve using pragmas as the
right fix (I think that will be right for the -Wno-inline issue for
MIPS I referred to in
<https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, for
example), in some cases -Wno-error in sysdeps makefiles (__restore_rt
in MIPS sigaction, for example), in some cases substantive fixes for
the warnings.
Note that if, with a view to listing all the warnings then fixing them
all, you just look for "warning:" in output from building and testing
with --disable-werror, you'll see lots of warnings from the linker
about functions such as tmpnam. Those warnings can be ignored - only
compiler warnings are relevant to -Werror, not linker warnings.
* configure.ac (--disable-werror): New configure option.
(enable_werror): New AC_SUBST.
* configure: Regenerated.
* config.make.in (enable-werror): New variable.
* Makeconfig [$(enable-werror) = yes] (+gccwarn): Add -Werror
-Wno-error=undef.
(+gccwarn-c): Do not use -Werror=implicit-function-declaration.
* manual/install.texi (Configuring and compiling): Document
--disable-werror.
* INSTALL: Regenerated.
* debug/Makefile (CFLAGS-tst-chk1.c): Add -Wno-error.
(CFLAGS-tst-chk2.c): Likewise.
(CFLAGS-tst-chk3.c): Likewise.
(CFLAGS-tst-chk4.cc): Likewise.
(CFLAGS-tst-chk5.cc): Likewise.
(CFLAGS-tst-chk6.cc): Likewise.
(CFLAGS-tst-lfschk1.c): Likewise.
(CFLAGS-tst-lfschk2.c): Likewise.
(CFLAGS-tst-lfschk3.c): Likewise.
(CFLAGS-tst-lfschk4.cc): Likewise.
(CFLAGS-tst-lfschk5.cc): Likewise.
(CFLAGS-tst-lfschk6.cc): Likewise.
2014-12-10 01:14:48 +00:00
enable_werror
2009-04-07 06:36:33 +00:00
all_warnings
force_install
bindnow
2013-01-11 15:14:18 +00:00
hardcoded_path_in_tests
2015-09-18 18:00:05 +00:00
enable_timezone_tools
2022-01-14 19:16:05 +00:00
rtld_early_cflags
2018-08-17 09:44:39 +00:00
extra_nonshared_cflags
2011-06-11 11:16:49 +00:00
use_default_link
2012-08-17 21:05:53 +00:00
sysheaders
2009-04-07 06:36:33 +00:00
ac_ct_CXX
CXXFLAGS
CXX
2015-03-04 21:52:45 +00:00
READELF
2009-04-07 06:36:33 +00:00
CPP
cross_compiling
BUILD_CC
OBJEXT
ac_ct_CC
CPPFLAGS
LDFLAGS
CFLAGS
CC
2009-05-31 23:54:28 +00:00
host_os
host_vendor
host_cpu
host
build_os
build_vendor
build_cpu
build
2009-09-15 21:14:42 +00:00
subdirs
2012-11-09 22:13:45 +00:00
REPORT_BUGS_TEXI
REPORT_BUGS_TO
PKGVERSION_TEXI
PKGVERSION
2009-04-07 06:36:33 +00:00
target_alias
host_alias
build_alias
LIBS
ECHO_T
ECHO_N
ECHO_C
DEFS
mandir
localedir
libdir
psdir
pdfdir
dvidir
htmldir
infodir
docdir
oldincludedir
includedir
localstatedir
sharedstatedir
sysconfdir
datadir
datarootdir
libexecdir
sbindir
bindir
program_transform_name
prefix
exec_prefix
2010-07-10 02:25:39 +00:00
PACKAGE_URL
2009-04-07 06:36:33 +00:00
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
SHELL'
2009-04-05 18:49:28 +00:00
ac_subst_files=''
2009-04-07 06:36:33 +00:00
ac_user_opts='
enable_option_checking
2012-11-09 22:13:45 +00:00
with_pkgversion
with_bugurl
2009-04-07 06:36:33 +00:00
with_gd
with_gd_include
with_gd_lib
with_binutils
with_selinux
with_headers
2011-06-11 11:16:49 +00:00
with_default_link
2018-08-17 09:44:39 +00:00
with_nonshared_cflags
2022-01-14 19:16:05 +00:00
with_rtld_early_cflags
2021-12-04 19:25:53 +00:00
with_timeoutfactor
2009-04-07 06:36:33 +00:00
enable_sanity_checks
enable_shared
enable_profile
2021-12-08 05:51:26 +00:00
enable_default_pie
2015-09-18 18:00:05 +00:00
enable_timezone_tools
2013-01-11 15:14:18 +00:00
enable_hardcoded_path_in_tests
2009-04-07 06:36:33 +00:00
enable_hidden_plt
enable_bind_now
2016-12-26 09:08:18 +00:00
enable_stack_protector
2009-04-07 06:36:33 +00:00
enable_static_nss
enable_force_install
2013-12-16 01:25:04 +00:00
enable_maintainer_mode
2009-04-07 06:36:33 +00:00
enable_kernel
enable_all_warnings
Use -Werror by default, add --disable-werror.
As discussed starting at
<https://sourceware.org/ml/libc-alpha/2014-11/msg00323.html>, this
patch makes the glibc build use -Werror by default to avoid
accidentally adding new warnings to the build. The configure option
--disable-werror can be used to disable this.
-Wno-error=undef is temporarily used because the build isn't clean
regarding -Wundef warnings. The idea is that once the remaining
-Wundef warnings have been cleaned up (in at least one configuration),
-Wno-error=undef will be removed.
I get a clean build and test on x86_64 (GCC 4.9 branch) with this
patch. The expectation is that this may well break the build for some
other configurations, and people seeing such breakage should make
appropriate fixes to fix or suppress the warnings for their
configurations. In some cases that may involve using pragmas as the
right fix (I think that will be right for the -Wno-inline issue for
MIPS I referred to in
<https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, for
example), in some cases -Wno-error in sysdeps makefiles (__restore_rt
in MIPS sigaction, for example), in some cases substantive fixes for
the warnings.
Note that if, with a view to listing all the warnings then fixing them
all, you just look for "warning:" in output from building and testing
with --disable-werror, you'll see lots of warnings from the linker
about functions such as tmpnam. Those warnings can be ignored - only
compiler warnings are relevant to -Werror, not linker warnings.
* configure.ac (--disable-werror): New configure option.
(enable_werror): New AC_SUBST.
* configure: Regenerated.
* config.make.in (enable-werror): New variable.
* Makeconfig [$(enable-werror) = yes] (+gccwarn): Add -Werror
-Wno-error=undef.
(+gccwarn-c): Do not use -Werror=implicit-function-declaration.
* manual/install.texi (Configuring and compiling): Document
--disable-werror.
* INSTALL: Regenerated.
* debug/Makefile (CFLAGS-tst-chk1.c): Add -Wno-error.
(CFLAGS-tst-chk2.c): Likewise.
(CFLAGS-tst-chk3.c): Likewise.
(CFLAGS-tst-chk4.cc): Likewise.
(CFLAGS-tst-chk5.cc): Likewise.
(CFLAGS-tst-chk6.cc): Likewise.
(CFLAGS-tst-lfschk1.c): Likewise.
(CFLAGS-tst-lfschk2.c): Likewise.
(CFLAGS-tst-lfschk3.c): Likewise.
(CFLAGS-tst-lfschk4.cc): Likewise.
(CFLAGS-tst-lfschk5.cc): Likewise.
(CFLAGS-tst-lfschk6.cc): Likewise.
2014-12-10 01:14:48 +00:00
enable_werror
2009-04-07 06:36:33 +00:00
enable_multi_arch
2017-07-06 17:37:30 +00:00
enable_experimental_malloc
2020-12-21 15:03:03 +00:00
enable_memory_tagging
2018-06-29 14:53:47 +00:00
enable_crypt
2009-04-07 06:36:33 +00:00
enable_nss_crypt
2012-05-25 20:40:20 +00:00
enable_systemtap
2012-08-22 20:35:55 +00:00
enable_build_nscd
2012-08-22 20:31:12 +00:00
enable_nscd
2013-07-19 06:42:03 +00:00
enable_pt_chown
2016-12-31 18:02:17 +00:00
enable_tunables
2015-05-14 14:28:06 +00:00
enable_mathvec
x86: Support IBT and SHSTK in Intel CET [BZ #21598]
Intel Control-flow Enforcement Technology (CET) instructions:
https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-en
forcement-technology-preview.pdf
includes Indirect Branch Tracking (IBT) and Shadow Stack (SHSTK).
GNU_PROPERTY_X86_FEATURE_1_IBT is added to GNU program property to
indicate that all executable sections are compatible with IBT when
ENDBR instruction starts each valid target where an indirect branch
instruction can land. Linker sets GNU_PROPERTY_X86_FEATURE_1_IBT on
output only if it is set on all relocatable inputs.
On an IBT capable processor, the following steps should be taken:
1. When loading an executable without an interpreter, enable IBT and
lock IBT if GNU_PROPERTY_X86_FEATURE_1_IBT is set on the executable.
2. When loading an executable with an interpreter, enable IBT if
GNU_PROPERTY_X86_FEATURE_1_IBT is set on the interpreter.
a. If GNU_PROPERTY_X86_FEATURE_1_IBT isn't set on the executable,
disable IBT.
b. Lock IBT.
3. If IBT is enabled, when loading a shared object without
GNU_PROPERTY_X86_FEATURE_1_IBT:
a. If legacy interwork is allowed, then mark all pages in executable
PT_LOAD segments in legacy code page bitmap. Failure of legacy code
page bitmap allocation causes an error.
b. If legacy interwork isn't allowed, it causes an error.
GNU_PROPERTY_X86_FEATURE_1_SHSTK is added to GNU program property to
indicate that all executable sections are compatible with SHSTK where
return address popped from shadow stack always matches return address
popped from normal stack. Linker sets GNU_PROPERTY_X86_FEATURE_1_SHSTK
on output only if it is set on all relocatable inputs.
On a SHSTK capable processor, the following steps should be taken:
1. When loading an executable without an interpreter, enable SHSTK if
GNU_PROPERTY_X86_FEATURE_1_SHSTK is set on the executable.
2. When loading an executable with an interpreter, enable SHSTK if
GNU_PROPERTY_X86_FEATURE_1_SHSTK is set on interpreter.
a. If GNU_PROPERTY_X86_FEATURE_1_SHSTK isn't set on the executable
or any shared objects loaded via the DT_NEEDED tag, disable SHSTK.
b. Otherwise lock SHSTK.
3. After SHSTK is enabled, it is an error to load a shared object
without GNU_PROPERTY_X86_FEATURE_1_SHSTK.
To enable CET support in glibc, --enable-cet is required to configure
glibc. When CET is enabled, both compiler and assembler must support
CET. Otherwise, it is a configure-time error.
To support CET run-time control,
1. _dl_x86_feature_1 is added to the writable ld.so namespace to indicate
if IBT or SHSTK are enabled at run-time. It should be initialized by
init_cpu_features.
2. For dynamic executables:
a. A l_cet field is added to struct link_map to indicate if IBT or
SHSTK is enabled in an ELF module. _dl_process_pt_note or
_rtld_process_pt_note is called to process PT_NOTE segment for
GNU program property and set l_cet.
b. _dl_open_check is added to check IBT and SHSTK compatibilty when
dlopening a shared object.
3. Replace i386 _dl_runtime_resolve and _dl_runtime_profile with
_dl_runtime_resolve_shstk and _dl_runtime_profile_shstk, respectively if
SHSTK is enabled.
CET run-time control can be changed via GLIBC_TUNABLES with
$ export GLIBC_TUNABLES=glibc.tune.x86_shstk=[permissive|on|off]
$ export GLIBC_TUNABLES=glibc.tune.x86_ibt=[permissive|on|off]
1. permissive: SHSTK is disabled when dlopening a legacy ELF module.
2. on: IBT or SHSTK are always enabled, regardless if there are IBT or
SHSTK bits in GNU program property.
3. off: IBT or SHSTK are always disabled, regardless if there are IBT or
SHSTK bits in GNU program property.
<cet.h> from CET-enabled GCC is automatically included by assembly codes
to add GNU_PROPERTY_X86_FEATURE_1_IBT and GNU_PROPERTY_X86_FEATURE_1_SHSTK
to GNU program property. _CET_ENDBR is added at the entrance of all
assembly functions whose address may be taken. _CET_NOTRACK is used to
insert NOTRACK prefix with indirect jump table to support IBT. It is
defined as notrack when _CET_NOTRACK is defined in <cet.h>.
[BZ #21598]
* configure.ac: Add --enable-cet.
* configure: Regenerated.
* elf/Makefille (all-built-dso): Add a comment.
* elf/dl-load.c (filebuf): Moved before "dynamic-link.h".
Include <dl-prop.h>.
(_dl_map_object_from_fd): Call _dl_process_pt_note on PT_NOTE
segment.
* elf/dl-open.c: Include <dl-prop.h>.
(dl_open_worker): Call _dl_open_check.
* elf/rtld.c: Include <dl-prop.h>.
(dl_main): Call _rtld_process_pt_note on PT_NOTE segment. Call
_rtld_main_check.
* sysdeps/generic/dl-prop.h: New file.
* sysdeps/i386/dl-cet.c: Likewise.
* sysdeps/unix/sysv/linux/x86/cpu-features.c: Likewise.
* sysdeps/unix/sysv/linux/x86/dl-cet.h: Likewise.
* sysdeps/x86/cet-tunables.h: Likewise.
* sysdeps/x86/check-cet.awk: Likewise.
* sysdeps/x86/configure: Likewise.
* sysdeps/x86/configure.ac: Likewise.
* sysdeps/x86/dl-cet.c: Likewise.
* sysdeps/x86/dl-procruntime.c: Likewise.
* sysdeps/x86/dl-prop.h: Likewise.
* sysdeps/x86/libc-start.h: Likewise.
* sysdeps/x86/link_map.h: Likewise.
* sysdeps/i386/dl-trampoline.S (_dl_runtime_resolve): Add
_CET_ENDBR.
(_dl_runtime_profile): Likewise.
(_dl_runtime_resolve_shstk): New.
(_dl_runtime_profile_shstk): Likewise.
* sysdeps/linux/x86/Makefile (sysdep-dl-routines): Add dl-cet
if CET is enabled.
(CFLAGS-.o): Add -fcf-protection if CET is enabled.
(CFLAGS-.os): Likewise.
(CFLAGS-.op): Likewise.
(CFLAGS-.oS): Likewise.
(asm-CPPFLAGS): Add -fcf-protection -include cet.h if CET
is enabled.
(tests-special): Add $(objpfx)check-cet.out.
(cet-built-dso): New.
(+$(cet-built-dso:=.note)): Likewise.
(common-generated): Add $(cet-built-dso:$(common-objpfx)%=%.note).
($(objpfx)check-cet.out): New.
(generated): Add check-cet.out.
* sysdeps/x86/cpu-features.c: Include <dl-cet.h> and
<cet-tunables.h>.
(TUNABLE_CALLBACK (set_x86_ibt)): New prototype.
(TUNABLE_CALLBACK (set_x86_shstk)): Likewise.
(init_cpu_features): Call get_cet_status to check CET status
and update dl_x86_feature_1 with CET status. Call
TUNABLE_CALLBACK (set_x86_ibt) and TUNABLE_CALLBACK
(set_x86_shstk). Disable and lock CET in libc.a.
* sysdeps/x86/cpu-tunables.c: Include <cet-tunables.h>.
(TUNABLE_CALLBACK (set_x86_ibt)): New function.
(TUNABLE_CALLBACK (set_x86_shstk)): Likewise.
* sysdeps/x86/sysdep.h (_CET_NOTRACK): New.
(_CET_ENDBR): Define if not defined.
(ENTRY): Add _CET_ENDBR.
* sysdeps/x86/dl-tunables.list (glibc.tune): Add x86_ibt and
x86_shstk.
* sysdeps/x86_64/dl-trampoline.h (_dl_runtime_resolve): Add
_CET_ENDBR.
(_dl_runtime_profile): Likewise.
2018-07-16 21:08:15 +00:00
enable_cet
2021-04-09 17:47:27 +00:00
enable_scv
2009-04-07 06:36:33 +00:00
with_cpu
'
2009-04-05 18:49:28 +00:00
ac_precious_vars='build_alias
host_alias
target_alias
CC
CFLAGS
LDFLAGS
LIBS
CPPFLAGS
CPP
CXX
CXXFLAGS
CCC'
Remove add-ons mechanism.
glibc has an add-ons mechanism to allow additional software to be
integrated into the glibc build. Such add-ons may be within the glibc
source tree, or outside it at a path passed to the --enable-add-ons
configure option.
localedata and crypt were once add-ons, distributed in separate
release tarballs, but long since stopped using that mechanism.
Linuxthreads was always an add-on. Ports spent some time as an add-on
with separate release tarballs, then was first moved into the glibc
source tree, then had its sysdeps files moved into the main sysdeps
hierarchy so the add-ons mechanism was no longer used. NPTL spent
some time as an add-on in the main glibc tree before stopping using
the add-on mechanism. libidn used to have separate release tarballs
but no longer does so, but still uses the add-ons mechanism within the
glibc source tree. Various other software has supported building with
the add-ons mechanism at times in the past, but I don't think any is
still widely used.
Add-ons involve significant, little-used complexity in the glibc build
system, and make it hard to understand what the space of possible
glibc configurations is. This patch removes the add-ons mechanism.
libidn is now built via the Subdirs mechanism to cause any
configuration using sysdeps/unix/inet to build libidn; HAVE_LIBIDN
(which effectively means shared libraries are available) is now
defined via sysdeps/unix/inet/configure. Various references to
add-ons around the source tree are removed (in the case of maint.texi,
the example list of sysdeps directories is still very out of date).
Externally maintained ports should now put their files in the normal
sysdeps directory structure rather than being arranged as add-ons;
they probably need to change e.g. elf.h anyway, rather than actually
being able to work just as a drop-in subtree. Hurd libpthread should
be arranged similarly to NPTL, so some files might go in a
hurd-pthreads (or similar) top-level directory in glibc, while sysdeps
files should go in the normal sysdeps directory structure (possibly in
hurd or hurd-pthreads subdirectories, just as there are nptl
subdirectories in the sysdeps tree).
Tested for x86_64, and with build-many-glibcs.py.
* configure.ac (--enable-add-ons): Remove option.
(machine): Do not mention add-ons in comment.
(LIBC_PRECONFIGURE): Likewise.
(add_ons): Remove variable and sanity checks and logic to locate
add-ons.
(add_ons_automatic): Remove variable.
(configured_add_ons): Likewise.
(add_ons_sfx): Likewise.
(add_ons_pfx): Likewise.
(add_on_subdirs): Likewise.
(sysnames_add_ons): Likewise. Remove loop over add-ons and
consideration of add-ons in Implies handling.
(sysdeps_add_ons): Likewise.
* configure: Regenerated.
* libidn/configure.ac: Remove.
* libidn/configure: Likewise.
* sysdeps/unix/inet/configure.ac: New file.
* sysdeps/unix/inet/configure: New generated file.
* sysdeps/unix/inet/Subdirs: Add libidn.
* Makeconfig (sysdeps-srcdirs): Remove variable.
(+sysdep_dirs): Do not include $(sysdeps-srcdirs).
($(common-objpfx)config.status): Do not depend on add-on files.
($(common-objpfx)shlib-versions.v.i): Do not mention add-ons in
comment.
(all-subdirs): Do not include $(add-on-subdirs).
* Makefile (dist-prepare): Do not use $(sysdeps-add-ons).
* config.make.in (add-ons): Remove variable.
(add-on-subdirs): Likewise.
(sysdeps-add-ons): Likewise.
* manual/Makefile (add-chapters): Remove.
($(objpfx)texis): Do not depend on $(add-chapters).
(nonexamples): Do not handle $(add-chapters).
(examples): Do not handle $(add-ons).
(chapters.% top-menu.%): Do not pass '$(add-chapters)' to
libc-texinfo.sh.
* manual/install.texi (Installation): Do not mention add-ons.
(--enable-add-ons): Do not document configure option.
* INSTALL: Regenerated.
* manual/libc-texinfo.sh: Do not handle $2 add-ons argument.
* manual/maint.texi (Hierarchy Conventions): Do not mention
add-ons.
* scripts/build-many-glibcs.py (Glibc.build_glibc): Do not use
--enable-add-ons.
* scripts/gen-sorted.awk: Do not handle Subdirs files from
add-ons.
* scripts/test-installation.pl: Do not handle glibc-compat add-on.
* sysdeps/nptl/Makeconfig: Do not mention add-ons in comment.
2017-10-05 15:58:13 +00:00
ac_subdirs_all=''
2009-04-05 18:49:28 +00:00
# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
2009-04-07 06:36:33 +00:00
ac_unrecognized_opts=
ac_unrecognized_sep=
2009-04-05 18:49:28 +00:00
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE
# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
2007-06-08 03:17:15 +00:00
dvidir='${docdir}'
pdfdir='${docdir}'
psdir='${docdir}'
libdir='${exec_prefix}/lib'
localedir='${datarootdir}/locale'
mandir='${datarootdir}/man'
1997-07-14 21:49:20 +00:00
ac_prev=
2007-06-08 03:17:15 +00:00
ac_dashdash=
1997-07-14 21:49:20 +00:00
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
2007-06-08 03:17:15 +00:00
eval $ac_prev=\$ac_option
1997-07-14 21:49:20 +00:00
ac_prev=
continue
fi
2007-06-08 03:17:15 +00:00
case $ac_option in
2011-09-11 16:14:48 +00:00
*=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
*=) ac_optarg= ;;
*) ac_optarg=yes ;;
2007-06-08 03:17:15 +00:00
esac
1997-07-14 21:49:20 +00:00
# Accept the important Cygnus configure options, so we can diagnose typos.
2007-06-08 03:17:15 +00:00
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
1997-07-14 21:49:20 +00:00
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
2002-10-17 23:48:55 +00:00
bindir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-build | --build | --buil | --bui | --bu)
2002-10-17 23:48:55 +00:00
ac_prev=build_alias ;;
1997-07-14 21:49:20 +00:00
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
2002-10-17 23:48:55 +00:00
build_alias=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
2002-10-17 23:48:55 +00:00
cache_file=$ac_optarg ;;
--config-cache | -C)
cache_file=config.cache ;;
1997-07-14 21:49:20 +00:00
2007-06-08 03:17:15 +00:00
-datadir | --datadir | --datadi | --datad)
1997-07-14 21:49:20 +00:00
ac_prev=datadir ;;
2007-06-08 03:17:15 +00:00
-datadir=* | --datadir=* | --datadi=* | --datad=*)
2002-10-17 23:48:55 +00:00
datadir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
2007-06-08 03:17:15 +00:00
-datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
| --dataroo | --dataro | --datar)
ac_prev=datarootdir ;;
-datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
| --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
datarootdir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-disable-* | --disable-*)
2009-04-07 06:36:33 +00:00
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1997-07-14 21:49:20 +00:00
# Reject names that are not valid shell variable names.
2009-04-07 06:36:33 +00:00
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
2010-12-25 01:14:37 +00:00
as_fn_error $? "invalid feature name: $ac_useropt"
2009-04-07 06:36:33 +00:00
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=no ;;
2007-06-08 03:17:15 +00:00
-docdir | --docdir | --docdi | --doc | --do)
ac_prev=docdir ;;
-docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
docdir=$ac_optarg ;;
-dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
ac_prev=dvidir ;;
-dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
dvidir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-enable-* | --enable-*)
2009-04-07 06:36:33 +00:00
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1997-07-14 21:49:20 +00:00
# Reject names that are not valid shell variable names.
2009-04-07 06:36:33 +00:00
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
2010-12-25 01:14:37 +00:00
as_fn_error $? "invalid feature name: $ac_useropt"
2009-04-07 06:36:33 +00:00
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=\$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
| --exec | --exe | --ex)
ac_prev=exec_prefix ;;
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
2002-10-17 23:48:55 +00:00
exec_prefix=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
with_gas=yes ;;
2002-10-17 23:48:55 +00:00
-help | --help | --hel | --he | -h)
ac_init_help=long ;;
-help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
ac_init_help=recursive ;;
-help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
ac_init_help=short ;;
1997-07-14 21:49:20 +00:00
-host | --host | --hos | --ho)
2002-10-17 23:48:55 +00:00
ac_prev=host_alias ;;
1997-07-14 21:49:20 +00:00
-host=* | --host=* | --hos=* | --ho=*)
2002-10-17 23:48:55 +00:00
host_alias=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
2007-06-08 03:17:15 +00:00
-htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
ac_prev=htmldir ;;
-htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
| --ht=*)
htmldir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
2002-10-17 23:48:55 +00:00
includedir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
2002-10-17 23:48:55 +00:00
infodir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
2002-10-17 23:48:55 +00:00
libdir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
2002-10-17 23:48:55 +00:00
libexecdir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
2007-06-08 03:17:15 +00:00
-localedir | --localedir | --localedi | --localed | --locale)
ac_prev=localedir ;;
-localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
localedir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-localstatedir | --localstatedir | --localstatedi | --localstated \
2007-06-08 03:17:15 +00:00
| --localstate | --localstat | --localsta | --localst | --locals)
1997-07-14 21:49:20 +00:00
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
2007-06-08 03:17:15 +00:00
| --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
2002-10-17 23:48:55 +00:00
localstatedir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
2002-10-17 23:48:55 +00:00
mandir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
with_fp=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
2002-10-17 23:48:55 +00:00
| --no-cr | --no-c | -n)
1997-07-14 21:49:20 +00:00
no_create=yes ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
no_recursion=yes ;;
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
| --oldin | --oldi | --old | --ol | --o)
ac_prev=oldincludedir ;;
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
2002-10-17 23:48:55 +00:00
oldincludedir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
2002-10-17 23:48:55 +00:00
prefix=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
2002-10-17 23:48:55 +00:00
program_prefix=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
2002-10-17 23:48:55 +00:00
program_suffix=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
| --program-transform-n | --program-transform- \
| --program-transform | --program-transfor \
| --program-transfo | --program-transf \
| --program-trans | --program-tran \
| --progr-tra | --program-tr | --program-t)
ac_prev=program_transform_name ;;
-program-transform-name=* | --program-transform-name=* \
| --program-transform-nam=* | --program-transform-na=* \
| --program-transform-n=* | --program-transform-=* \
| --program-transform=* | --program-transfor=* \
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
2002-10-17 23:48:55 +00:00
program_transform_name=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
2007-06-08 03:17:15 +00:00
-pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
ac_prev=pdfdir ;;
-pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
pdfdir=$ac_optarg ;;
-psdir | --psdir | --psdi | --psd | --ps)
ac_prev=psdir ;;
-psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
psdir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
2002-10-17 23:48:55 +00:00
sbindir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
| --sharedst | --shareds | --shared | --share | --shar \
| --sha | --sh)
ac_prev=sharedstatedir ;;
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
2002-10-17 23:48:55 +00:00
sharedstatedir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
2002-10-17 23:48:55 +00:00
site=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
2002-10-17 23:48:55 +00:00
srcdir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
2002-10-17 23:48:55 +00:00
sysconfdir=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-target | --target | --targe | --targ | --tar | --ta | --t)
2002-10-17 23:48:55 +00:00
ac_prev=target_alias ;;
1997-07-14 21:49:20 +00:00
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
2002-10-17 23:48:55 +00:00
target_alias=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-v | -verbose | --verbose | --verbos | --verbo | --verb)
verbose=yes ;;
2002-10-17 23:48:55 +00:00
-version | --version | --versio | --versi | --vers | -V)
ac_init_version=: ;;
1997-07-14 21:49:20 +00:00
-with-* | --with-*)
2009-04-07 06:36:33 +00:00
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1997-07-14 21:49:20 +00:00
# Reject names that are not valid shell variable names.
2009-04-07 06:36:33 +00:00
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
2010-12-25 01:14:37 +00:00
as_fn_error $? "invalid package name: $ac_useropt"
2009-04-07 06:36:33 +00:00
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=\$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-without-* | --without-*)
2009-04-07 06:36:33 +00:00
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1997-07-14 21:49:20 +00:00
# Reject names that are not valid shell variable names.
2009-04-07 06:36:33 +00:00
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
2010-12-25 01:14:37 +00:00
as_fn_error $? "invalid package name: $ac_useropt"
2009-04-07 06:36:33 +00:00
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=no ;;
1997-07-14 21:49:20 +00:00
--x)
# Obsolete; use --with-x.
with_x=yes ;;
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
2002-10-17 23:48:55 +00:00
x_includes=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
2002-10-17 23:48:55 +00:00
x_libraries=$ac_optarg ;;
1997-07-14 21:49:20 +00:00
2010-12-25 01:14:37 +00:00
-*) as_fn_error $? "unrecognized option: \`$ac_option'
Try \`$0 --help' for more information"
1997-07-14 21:49:20 +00:00
;;
2002-10-17 23:48:55 +00:00
*=*)
ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
# Reject names that are not valid shell variable names.
2010-07-10 02:25:39 +00:00
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
2010-12-25 01:14:37 +00:00
as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
2010-07-10 02:25:39 +00:00
esac
2007-06-08 03:17:15 +00:00
eval $ac_envvar=\$ac_optarg
2002-10-17 23:48:55 +00:00
export $ac_envvar ;;
1997-07-14 21:49:20 +00:00
*)
2002-10-17 23:48:55 +00:00
# FIXME: should be removed in autoconf 3.0.
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
2002-10-17 23:48:55 +00:00
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
2011-09-11 16:14:48 +00:00
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
1997-07-14 21:49:20 +00:00
;;
esac
done
if test -n "$ac_prev"; then
2002-10-17 23:48:55 +00:00
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
2010-12-25 01:14:37 +00:00
as_fn_error $? "missing argument to $ac_option"
1997-07-14 21:49:20 +00:00
fi
2009-04-07 06:36:33 +00:00
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
2010-12-25 01:14:37 +00:00
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
2009-04-07 06:36:33 +00:00
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
# Check all directory arguments for consistency.
2007-06-08 03:17:15 +00:00
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir
1997-07-14 21:49:20 +00:00
do
2007-06-08 03:17:15 +00:00
eval ac_val=\$$ac_var
2009-04-07 06:36:33 +00:00
# Remove trailing slashes.
case $ac_val in
*/ )
ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
eval $ac_var=\$ac_val;;
esac
# Be sure to have absolute directory names.
2002-10-17 23:48:55 +00:00
case $ac_val in
2007-06-08 03:17:15 +00:00
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1997-07-14 21:49:20 +00:00
esac
2010-12-25 01:14:37 +00:00
as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
1997-07-14 21:49:20 +00:00
done
2002-10-17 23:48:55 +00:00
# There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias
# FIXME: To remove some day.
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
fi
1997-07-14 21:49:20 +00:00
2002-10-17 23:48:55 +00:00
ac_tool_prefix=
test -n "$host_alias" && ac_tool_prefix=$host_alias-
test "$silent" = yes && exec 6>/dev/null
1997-07-14 21:49:20 +00:00
2007-06-08 03:17:15 +00:00
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
2010-12-25 01:14:37 +00:00
as_fn_error $? "working directory cannot be determined"
2007-06-08 03:17:15 +00:00
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
2010-12-25 01:14:37 +00:00
as_fn_error $? "pwd does not report name of working directory"
2007-06-08 03:17:15 +00:00
1997-07-14 21:49:20 +00:00
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
2007-06-08 03:17:15 +00:00
# Try the directory containing this script, then the parent directory.
2009-04-07 06:36:33 +00:00
ac_confdir=`$as_dirname -- "$as_myself" ||
$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_myself" |
2007-06-08 03:17:15 +00:00
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
1997-07-14 21:49:20 +00:00
srcdir=$ac_confdir
2007-06-08 03:17:15 +00:00
if test ! -r "$srcdir/$ac_unique_file"; then
1997-07-14 21:49:20 +00:00
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
2007-06-08 03:17:15 +00:00
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
2010-12-25 01:14:37 +00:00
as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
1997-07-14 21:49:20 +00:00
fi
2007-06-08 03:17:15 +00:00
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
2010-12-25 01:14:37 +00:00
cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
2007-06-08 03:17:15 +00:00
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
srcdir=.
fi
# Remove unnecessary trailing slashes from srcdir.
# Double slashes in file names in object file debugging info
# mess up M-x gdb in Emacs.
case $srcdir in
*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
esac
for ac_var in $ac_precious_vars; do
eval ac_env_${ac_var}_set=\${${ac_var}+set}
eval ac_env_${ac_var}_value=\$${ac_var}
eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
eval ac_cv_env_${ac_var}_value=\$${ac_var}
done
2002-10-17 23:48:55 +00:00
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
2002-10-19 20:07:18 +00:00
\`configure' configures GNU C Library (see version.h) to adapt to many kinds of systems.
2002-10-17 23:48:55 +00:00
Usage: $0 [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
2010-12-25 01:14:37 +00:00
-q, --quiet, --silent do not print \`checking ...' messages
2002-10-17 23:48:55 +00:00
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or \`..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
2009-04-07 06:36:33 +00:00
[$ac_default_prefix]
2002-10-17 23:48:55 +00:00
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
2009-04-07 06:36:33 +00:00
[PREFIX]
2002-10-17 23:48:55 +00:00
By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
an installation prefix other than \`$ac_default_prefix' using \`--prefix',
for instance \`--prefix=\$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
2009-04-07 06:36:33 +00:00
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
2011-09-11 16:14:48 +00:00
--docdir=DIR documentation root [DATAROOTDIR/doc/glibc]
2009-04-07 06:36:33 +00:00
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
2002-10-17 23:48:55 +00:00
_ACEOF
cat <<\_ACEOF
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi
1997-07-14 21:49:20 +00:00
2002-10-17 23:48:55 +00:00
if test -n "$ac_init_help"; then
2002-10-19 20:07:18 +00:00
case $ac_init_help in
short | recursive ) echo "Configuration of GNU C Library (see version.h):";;
esac
2002-10-17 23:48:55 +00:00
cat <<\_ACEOF
Optional Features:
2009-04-07 06:36:33 +00:00
--disable-option-checking ignore unrecognized --enable/--with options
2002-10-17 23:48:55 +00:00
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
2002-10-20 00:21:33 +00:00
--disable-sanity-checks really do not use threads (should not be used except
in special situations) [default=yes]
2012-01-08 05:45:01 +00:00
--enable-shared build shared library [default=yes if GNU ld]
[BZ #2510, BZ #2830, BZ #3137, BZ #3313, BZ #3426, BZ #3465, BZ #3480, BZ #3483, BZ #3493, BZ #3514, BZ #3515, BZ #3664, BZ #3673, BZ #3674]
2007-01-11 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/soft-fp/sfp-machine.h: Remove.
* sysdeps/x86_64/soft-fp/sfp-machine.h: Likewise.
2007-01-10 Ulrich Drepper <drepper@redhat.com>
* io/fts.c: Make sure fts_cur is always valid after return from
fts_read.
Patch by Miloslav Trmac <mitr@redhat.com>.
2006-10-27 Richard Sandiford <richard@codesourcery.com>
* elf/elf.h (R_MIPS_GLOB_DAT): Define.
(R_MIPS_NUM): Bump by 1.
2007-01-03 Jakub Jelinek <jakub@redhat.com>
* posix/execvp.c: Include alloca.h.
(allocate_scripts_argv): Renamed to...
(scripts_argv): ... this. Don't allocate buffer here nor count
arguments.
(execvp): Use alloca if possible.
* posix/Makefile: Add rules to build and run tst-vfork3 test.
* posix/tst-vfork3.c: New test.
* stdlib/Makefile (tst-strtod3-ENV): Define.
2007-01-02 Ulrich Drepper <drepper@redhat.com>
* posix/getconf.c: Update copyright year.
* nss/getent.c: Likewise.
* iconv/iconvconfig.c: Likewise.
* iconv/iconv_prog.c: Likewise.
* elf/ldconfig.c: Likewise.
* catgets/gencat.c: Likewise.
* csu/version.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/sprof.c (print_version): Likewise.
* locale/programs/locale.c: Likewise.
* locale/programs/localedef.c: Likewise.
* nscd/nscd.c (print_version): Likewise.
* debug/xtrace.sh: Likewise.
* malloc/memusage.sh: Likewise.
* malloc/mtrace.pl: Likewise.
* debug/catchsegv.sh: Likewise.
2006-12-24 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (sYSMALLOc): Remove some unnecessary alignment
attempts.
2006-12-23 Ulrich Drepper <drepper@redhat.com>
* posix/wordexp.c: Remove some unnecessary tests.
2006-12-20 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
* sysdeps/unix/sysv/linux/sh/bits/shm.h: New file.
* nss/getXXbyYY_r.c: Include atomic.h.
(INTERNAL (REENTRANT_NAME)): Write startp after start_fct,
add atomic_write_barrier () in between.
2006-11-28 Jakub Jelinek <jakub@redhat.com>
* elf/dl-support.c: Include dl-procinfo.h.
* sysdeps/powerpc/dl-procinfo.h (PPC_PLATFORM_POWER4,
PPC_PLATFORM_PPC970, PPC_PLATFORM_POWER5, PPC_PLATFORM_POWER5_PLUS,
PPC_PLATFORM_POWER6, PPC_PLATFORM_CELL_BE, PPC_PLATFORM_POWER6X):
Define.
(_dl_string_platform): Use PPC_PLATFORM_* macros instead of
hardcoded constants.
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platform): Use
PPC_PLATFORM_* macros for array designators.
2006-11-11 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add 3 new cap
names to the beginning.
(_dl_powerpc_platforms): Add "power6x".
* sysdeps/powerpc/dl-procinfo.h (_DL_HWCAP_FIRST): Decrease.
(HWCAP_IMPORTANT): Add PPC_FEATURE_HAS_DFP.
(_DL_PLATFORMS_COUNT): Increase.
(_dl_string_platform): Handle power6x case.
* sysdeps/powerpc/sysdep.h (PPC_FEATURE_PA6T, PPC_FEATURE_HAS_DFP,
PPC_FEATURE_POWER6_EXT): Define.
(PPC_FEATURE_POWER5, PPC_FEATURE_POWER5_PLUS): Correct Comment.
[-2^31 .. 2^31) range.
* sysdeps/unix/sysv/linux/bits/statvfs.h: Define ST_RELATIME.
* sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
Handle relatime mount option.
2006-12-13 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Include
kernel-features.h.
2006-12-11 Ulrich Drepper <drepper@redhat.com>
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Parse thousand
separators also if no non-zero digits found.
* stdlib/Makefile (tests): Add tst-strtod3.
[BZ #3664]
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix test to recognize
empty parsed strings.
* stdlib/Makefile (tests): Add tst-strtod2.
* stdlib/tst-strtod2.c: New file.
[BZ #3673]
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix exp_limit
computation.
* stdlib/Makefile (tests): Add tst-atof2.
* stdlib/tst-atof2.c: New file.
[BZ #3674]
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Adjust exponent value
correctly if removing trailing zero of hex-float.
* stdlib/Makefile (tests): Add tst-atof1.
* stdlib/tst-atof1.c: New file.
* misc/mntent_r.c (__hasmntopt): Check p[optlen] even when p == rest.
Start searching for next comma at p rather than rest.
* misc/Makefile (tests): Add tst-mntent2.
* misc/tst-mntent2.c: New test.
2006-12-08 Ulrich Drepper <drepper@redhat.com>
* malloc/memusage.c: Handle realloc with new size of zero and
non-NULL pointer correctly.
(me): Really write first record twice.
(struct entry): Make format bi-arch safe.
(dest): Write out more realloc statistics.
* malloc/memusagestat.c (struct entry): Make format bi-arch safe.
2006-12-05 Jakub Jelinek <jakub@redhat.com>
* nis/nis_subr.c (nis_getnames): Revert last change.
2006-12-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/unix/sysv/linux/sh/sys/io.h: Removed.
2006-11-30 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/i386/i686/memcmp.S: Use jump table as the base of
jump table entries.
2006-11-30 Jan Kratochvil <jan.kratochvil@redhat.com>
* sysdeps/unix/sysv/linux/i386/clone.S: Provide CFI for the outermost
`clone' function to ensure proper unwinding stop of gdb.
* sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
2006-12-01 Ulrich Drepper <drepper@redhat.com>
* nscd/nscd.init: Remove obsolete and commented-out -S option
handling.
2006-11-23 Jakub Jelinek <jakub@redhat.com>
[BZ #3514]
* manual/string.texi (strncmp): Fix pastos from wcscmp description.
[BZ #3515]
* manual/string.texi (strtok): Remove duplicate paragraph.
2006-12-01 Jan Kratochvil <jan.kratochvil@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Fix compatibility with
libgcc not supporting `rflags' unwinding (register # >= 17).
2006-11-30 Jakub Jelinek <jakub@redhat.com>
* sunrpc/svc_run.c (svc_run): Set my_pollfd to new_pollfd if realloc
succeeded.
2006-11-29 Daniel Jacobowitz <dan@codesourcery.com>
Jakub Jelinek <jakub@redhat.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sigaction.c (restore_rt): Add correct
unwind information.
* sysdeps/unix/sysv/linux/x86_64/Makefile: Provide symbols for
'restore_rt' even in the 'signal' directory.
* sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym: Extend the regs list.
malloc crashed. Don't allocate memory unnecessarily in each
loop.
2006-10-21 Jakub Jelinek <jakub@redhat.com>
* resolv/mapv4v6addr.h (map_v4v6_address): Fix last change.
2006-11-20 Ulrich Drepper <drepper@redhat.com>
* resolv/mapv4v6addr.h (map_v4v6_address): Optimize a bit.
2006-11-18 Bruno Haible <bruno@clisp.org>
* sysdeps/unix/sysv/linux/i386/getgroups.c (__getgroups): Invoke
__sysconf only after having tried to call getgroups32.
2006-11-19 Ulrich Drepper <drepper@redhat.com>
* nss/nss_files/files-hosts.c (LINE_PARSER): Support IPv6-style
addresses for IPv4 queries if they can be mapped.
2006-11-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/x86_64/fpu/s_copysignf.S (__copysignf): Switch to .text.
* sysdeps/x86_64/fpu/s_copysign.S (__copysign): Likewise.
(signmask): Add .size directive.
(othermask): Add .type directive.
2006-11-14 Ulrich Drepper <drepper@redhat.com>
* po/nl.po: Update from translation team.
* timezone/zdump.c: Redo fix for BZ #3137.
2006-11-14 Jakub Jelinek <jakub@redhat.com>
* nss/nss_files/files-alias.c (get_next_alias): Set line back
to first_unused after parsing :include: file.
* timezone/africa: Update from tzdata2006o.
* timezone/antarctica: Likewise.
* timezone/asia: Likewise.
* timezone/australasia: Likewise.
* timezone/backward: Likewise.
* timezone/europe: Likewise.
* timezone/iso3166.tab: Likewise.
* timezone/northamerica: Likewise.
* timezone/southamerica: Likewise.
* timezone/zone.tab: Likewise.
* time/tzfile.c (__tzfile_read): Extend to handle new file format
on machines with 64-bit time_t.
* timezone/checktab.awk: Update from tzcode2006o.
* timezone/ialloc.c: Likewise.
* timezone/private.h: Likewise.
* timezone/scheck.c: Likewise.
* timezone/tzfile.h: Likewise.
* timezone/tzselect.ksh: Likewise.
* timezone/zdump.c: Likewise.
* timezone/zic.c: Likewise.
[BZ #3483]
* elf/ldconfig.c (main): Call setlocale and textdomain.
Patch mostly by Benno Schulenberg <bensberg@justemail.net>.
[BZ #3480]
* manual/argp.texi: Fix typos.
* manual/charset.texi: Likewise.
* manual/errno.texi: Likewise.
* manual/filesys.texi: Likewise.
* manual/lang.texi: Likewise.
* manual/maint.texi: Likewise.
* manual/memory.texi: Likewise.
* manual/message.texi: Likewise.
* manual/resource.texi: Likewise.
* manual/search.texi: Likewise.
* manual/signal.texi: Likewise.
* manual/startup.texi: Likewise.
* manual/stdio.texi: Likewise.
* manual/sysinfo.texi: Likewise.
* manual/syslog.texi: Likewise.
* manual/time.texi: Likewise.
Patch by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
[BZ #3465]
* sunrpc/clnt_raw.c: Minimal message improvements.
* sunrpc/pm_getmaps.c: Likewise.
* nis/nss_nisplus/nisplus-publickey.c: Likewise.
* nis/nis_print_group_entry.c: Likewise.
* locale/programs/repertoire.c: Likewise.
* locale/programs/charmap.c: Likewise.
* malloc/memusage.sh: Likewise.
* elf/dl-deps.c: Likewise.
* locale/programs/ld-collate.c: Likewise.
* libio/vswprintf.c: Likewise.
* malloc/memusagestat.c: Likewise.
* sunrpc/auth_unix.c: Likewise.
* sunrpc/rpc_main.c: Likewise.
* nscd/cache.c: Likewise.
* locale/programs/repertoire.c: Unify output messages.
* locale/programs/charmap.c: Likewise.
* locale/programs/ld-ctype.c: Likewise.
* locale/programs/ld-monetary.c: Likewise.
* locale/programs/ld-numeric.c: Likewise.
* locale/programs/ld-time.c: Likewise.
* elf/ldconfig.c: Likewise.
* nscd/selinux.c: Likewise.
* elf/cache.c: Likewise.
Patch mostly by Benno Schulenberg <bensberg@justemail.net>.
2006-11-10 Jakub Jelinek <jakub@redhat.com>
* string/strxfrm_l.c (STRXFRM): Fix trailing \1 optimization
if N is one bigger than return value.
* string/tst-strxfrm2.c (do_test): Also test strxfrm with l1 + 1
and l1 last arguments, if buf is defined, verify the return value
equals to strlen (buf) and verify no byte beyond passed length
is modified.
2006-11-10 Ulrich Drepper <drepper@redhat.com>
* po/sv.po: Update from translation team.
* sysdeps/gnu/siglist.c (__old_sys_siglist, __old_sys_sigabbrev):
Use __new_sys_siglist instead of _sys_siglist_internal as
second macro argument.
(_old_sys_siglist): Use declare_symbol_alias macro instead of
strong_alias.
2006-11-09 Ulrich Drepper <drepper@redhat.com>
[BZ #3493]
* posix/unistd.h (sysconf): Remove const attribute.
* sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix test for
temporary or deprecated addresses.
Patch by Sridhar Samudrala <sri@us.ibm.com>.
* string/Makefile (tests): Add tst-strxfrm2.
* string/tst-strxfrm2.c: New file.
2006-10-09 Jakub Jelinek <jakub@redhat.com>
* elf/dl-debug.c (_dl_debug_initialize): Check r->r_map for 0
rather than r->r_brk.
* string/strxfrm_l.c (STRXFRM): Do the trailing \1 removal
optimization even if needed > n.
2006-11-07 Jakub Jelinek <jakub@redhat.com>
* include/libc-symbols.h (declare_symbol): Rename to...
(declare_symbol_alias): ... this. Add ORIGINAL argument, imply
strong_alias (ORIGINAL, SYMBOL) in asm to make sure it preceedes
.size directive.
* sysdeps/gnu/errlist-compat.awk: Adjust for declare_symbol_alias
changes.
* sysdeps/gnu/siglist.c: Likewise.
2006-11-03 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/fpu/bits/mathinline.h
[__LIBC_INTERNAL_MATH_INLINES]: Moved to ...
* sysdeps/powerpc/fpu/math_private.h: ...here. New file.
2006-11-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word):
Update handling of cache descriptor 0x49 for new models.
* sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word):
Likewise.
2006-11-02 Ulrich Drepper <drepper@redhat.com>
* configure.in: Work around ld --help change and avoid -z relro
test completely if the architecture doesn't care about security.
2006-11-01 Ulrich Drepper <drepper@redhat.com>
* po/sv.po: Update from translation team.
2006-10-31 Ulrich Drepper <drepper@redhat.com>
* stdlib/atexit.c (atexit): Don't mark as hidden when used to
generate compatibility version.
2006-10-29 Ulrich Drepper <drepper@redhat.com>
* configure.in: Relax -z relro requirement a bit.
* po/sv.po: Update from translation team.
2006-10-29 Jakub Jelinek <jakub@redhat.com>
* elf/dl-sym.c (do_sym): Use RTLD_SINGLE_THREAD_P.
* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Likewise.
* elf/dl-close.c (_dl_close_worker): Likewise.
* elf/dl-open.c (_dl_open_worker): Likewise.
* sysdeps/generic/sysdep-cancel.h (RTLD_SINGLE_THREAD_P): Define.
* configure.in: Require assembler support for visibility, compiler
support for visibility and aliases, linker support for various -z
options.
* Makeconfig: Remove conditional code which now is unnecessary.
* config.h.in: Likewise.
* config.make.in: Likewise.
* dlfcn/Makefile: Likewise.
* elf/Makefile: Likewise.
* elf/dl-load.c: Likewise.
* elf/rtld.c: Likewise.
* include/libc-symbols.h: Likewise.
* include/stdio.h: Likewise.
* io/Makefile: Likewise.
* io/fstat.c: Likewise.
* io/fstat64.c: Likewise.
* io/fstatat.c: Likewise.
* io/fstatat64.c: Likewise.
* io/lstat.c: Likewise.
* io/lstat64.c: Likewise.
* io/mknod.c: Likewise.
* io/mknodat.c: Likewise.
* io/stat.c: Likewise.
* io/stat64.c: Likewise.
* libio/stdio.c: Likewise.
* nscd/Makefile: Likewise.
* stdlib/Makefile: Likewise.
* stdlib/atexit.c: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
* sysdeps/i386/sysdep.h: Likewise.
* sysdeps/i386/i686/memcmp.S: Likewise.
* sysdeps/powerpc/powerpc32/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
* Makerules: USE_TLS support is now default.
* tls.make.c: Likewise.
* csu/Versions: Likewise.
* csu/libc-start.c: Likewise.
* csu/libc-tls.c: Likewise.
* csu/version.c: Likewise.
* dlfcn/dlinfo.c: Likewise.
* elf/dl-addr.c: Likewise.
* elf/dl-cache.c: Likewise.
* elf/dl-close.c: Likewise.
* elf/dl-iteratephdr.c: Likewise.
* elf/dl-load.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/dl-open.c: Likewise.
* elf/dl-reloc.c: Likewise.
* elf/dl-support.c: Likewise.
* elf/dl-sym.c: Likewise.
* elf/dl-sysdep.c: Likewise.
* elf/dl-tls.c: Likewise.
* elf/ldconfig.c: Likewise.
* elf/rtld.c: Likewise.
* elf/tst-tls-dlinfo.c: Likewise.
* elf/tst-tls1.c: Likewise.
* elf/tst-tls10.h: Likewise.
* elf/tst-tls14.c: Likewise.
* elf/tst-tls2.c: Likewise.
* elf/tst-tls3.c: Likewise.
* elf/tst-tls4.c: Likewise.
* elf/tst-tls5.c: Likewise.
* elf/tst-tls6.c: Likewise.
* elf/tst-tls7.c: Likewise.
* elf/tst-tls8.c: Likewise.
* elf/tst-tls9.c: Likewise.
* elf/tst-tlsmod1.c: Likewise.
* elf/tst-tlsmod13.c: Likewise.
* elf/tst-tlsmod13a.c: Likewise.
* elf/tst-tlsmod14a.c: Likewise.
* elf/tst-tlsmod2.c: Likewise.
* elf/tst-tlsmod3.c: Likewise.
* elf/tst-tlsmod4.c: Likewise.
* elf/tst-tlsmod5.c: Likewise.
* elf/tst-tlsmod6.c: Likewise.
* include/errno.h: Likewise.
* include/link.h: Likewise.
* include/tls.h: Likewise.
* locale/global-locale.c: Likewise.
* locale/localeinfo.h: Likewise.
* malloc/arena.c: Likewise.
* malloc/hooks.c: Likewise.
* malloc/malloc.c: Likewise.
* resolv/Versions: Likewise.
* sysdeps/alpha/dl-machine.h: Likewise.
* sysdeps/alpha/libc-tls.c: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.
* sysdeps/generic/tls.h: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
* sysdeps/ia64/dl-machine.h: Likewise.
* sysdeps/ia64/libc-tls.c: Likewise.
* sysdeps/mach/hurd/fork.c: Likewise.
* sysdeps/mach/hurd/i386/tls.h: Likewise.
* sysdeps/powerpc/powerpc32/dl-machine.c: Likwise.
* sysdeps/powerpc/powerpc32/dl-machine.h: Likewise.
* sysdeps/powerpc/powerpc64/dl-machine.h: Likewise.
* sysdeps/s390/libc-tls.c: Likewise.
* sysdeps/s390/s390-32/dl-machine.h: Likewise.
* sysdeps/s390/s390-64/dl-machine.h: Likewise.
* sysdeps/sh/dl-machine.h: Likewise.
* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
* sysdeps/x86_64/dl-machine.h: Likewise.
[BZ #3426]
* stdlib/stdlib.h: Adjust comment for canonicalize_file_name to
reality.
2006-10-27 Jakub Jelinek <jakub@redhat.com>
* elf/dl-lookup.c (_dl_debug_bindings): Remove unused symbol_scope
argument.
(_dl_lookup_symbol_x): Adjust caller.
* sysdeps/generic/ldsodefs.h (struct link_namespaces): Remove
_ns_global_scope.
* elf/rtld.c (dl_main): Don't initialize _ns_global_scope.
* elf/dl-libc.c: Revert l_scope name changes.
* elf/dl-load.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/rtld.c: Likewise.
* elf/dl-close.c (_dl_close): Likewise.
* elf/dl-open.c (dl_open_worker): Likewise. If not SINGLE_THREAD_P,
always use __rtld_mrlock_{change,done}. Always free old scope list
here if not l_scope_mem.
* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Revert l_scope name
change. Never free scope list here. Just __rtld_mrlock_lock before
the lookup and __rtld_mrlock_unlock it after the lookup.
* elf/dl-sym.c: Likewise.
* include/link.h (struct r_scoperec): Remove.
(struct link_map): Replace l_scoperec with l_scope, l_scoperec_mem
with l_scope_mem and l_scoperec_lock with l_scope_lock.
2006-10-25 Ulrich Drepper <drepper@redhat.com>
* sysdeps/gnu/netinet/tcp.h: Define TCP_CONGESTION.
2006-10-18 Ulrich Drepper <drepper@redhat.com>
* configure.in: Disable building profile libraries by default.
2006-10-18 Ulrich Drepper <drepper@redhat.com>
* elf/dl-lookup.c (_dl_lookup_symbol_x): Add warning to
_dl_lookup_symbol_x code.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
* elf/dl-runtime.c: Include sysdep-cancel.h.
(_dl_fixup, _dl_profile_fixup): Use __rtld_mrlock_* and
scoperec->nusers only if !SINGLE_THREAD_P. Use atomic_*
instead of catomic_* macros.
* elf/dl-sym.c: Include sysdep-cancel.h.
(do_sym): Use __rtld_mrlock_* and scoperec->nusers only
if !SINGLE_THREAD_P. Use atomic_* instead of catomic_* macros.
* elf/dl-close.c: Include sysdep-cancel.h.
(_dl_close): Use __rtld_mrlock_* and scoperec->nusers only
if !SINGLE_THREAD_P. Use atomic_* instead of catomic_* macros.
* elf/dl-open.c: Include sysdep-cancel.h.
(dl_open_worker): Use __rtld_mrlock_* and scoperec->nusers only
if !SINGLE_THREAD_P. Use atomic_* instead of catomic_* macros.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
[BZ #3313]
* malloc/malloc.c (malloc_consolidate): Set maxfb to address of last
fastbin rather than end of fastbin array.
2006-10-18 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/i486/bits/atomic.h (catomic_decrement): Use correct
body macro.
* sysdeps/x86_64/bits/atomic.h
(__arch_c_compare_and_exchange_val_64_acq): Add missing casts.
(catomic_decrement): Use correct body macro.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
* include/atomic.h: Add a unique prefix to all local variables
in macros.
* csu/tst-atomic.c (do_test): Test also catomic_* macros.
2006-10-14 Ulrich Drepper <drepper@redhat.com>
* resolv/arpa/nameser.h: Document that ns_t_a6 is deprecated.
[BZ #3313]
* malloc/malloc.c (malloc_consolidate): Don't use get_fast_max to
determine highest fast bin to consolidate, always look into all of
them.
(do_check_malloc_state): Only require for empty bins for large
sizes in main arena.
* libio/stdio.h: Add more __wur attributes.
2006-11-12 Andreas Jaeger <aj@suse.de>
[BZ #2510]
* manual/search.texi (Hash Search Function): Clarify.
(Array Search Function): Clarify.
2006-11-12 Joseph Myers <joseph@codesourcery.com>
[BZ #2830]
* math/atest-exp.c (main): Cast hex value to mp_limb_t before
shifting.
* math/atest-exp2.c (read_mpn_hex): Likewise.
* math/atest-sincos.c (main): Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Add epoll_pwait.
* sysdeps/unix/sysv/linux/sys/epoll.h: Declare epoll_pwait.
* sysdeps/unix/sysv/linux/Versions (libc): Add epoll_pwait for
version GLIBC_2.6.
* Versions.def: Add GLIBC_2.6 for libc.
* sysdeps/i386/i486/bits/atomic.h: Add catomic_* support.
2006-10-11 Jakub Jelinek <jakub@redhat.com>
* malloc/malloc.c (_int_malloc): Remove unused any_larger variable.
* nis/nis_defaults.c (__nis_default_access): Don't call getenv twice.
* nis/nis_subr.c (nis_getnames): Use __secure_getenv instead of getenv.
* sysdeps/generic/unsecvars.h: Add NIS_PATH.
2006-10-11 Ulrich Drepper <drepper@redhat.com>
* include/atomic.c: Define catomic_* operations.
* sysdeps/x86_64/bits/atomic.h: Likewise. Fix a few minor problems.
* stdlib/cxa_finalize.c: Use catomic_* operations instead of atomic_*.
* malloc/memusage.c: Likewise.
* gmon/mcount.c: Likewise.
* elf/dl-close.c: Likewise.
* elf/dl-open.c: Likewise.
* elf/dl-profile.c: Likewise.
* elf/dl-sym.c: Likewise.
* elf/dl-runtime.c: Likewise.
* elf/dl-fptr.c: Likewise.
* resolv/res_libc.c: Likewise.
2006-10-10 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/utimes.c: Use a union to avoid an improper cast.
* sysdeps/mach/hurd/futimes.c: Likewise.
* sysdeps/mach/hurd/lutimes.c: Likewise.
2006-10-09 Ulrich Drepper <drepper@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Implement reference counting of scope records.
* elf/dl-close.c (_dl_close): Remove all scopes from removed objects
from the list in objects which remain. Always allocate new scope
record.
* elf/dl-open.c (dl_open_worker): When growing array for scopes,
don't resize, allocate a new one.
* elf/dl-runtime.c: Update reference counters before using a scope
array.
* elf/dl-sym.c: Likewise.
* elf/dl-libc.c: Adjust for l_scope name change.
* elf/dl-load.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/rtld.c: Likewise.
* include/link.h: Include <rtld-lowlevel.h>. Define struct
r_scoperec. Replace r_scope with pointer to r_scoperec structure.
Add l_scoperec_lock.
* sysdeps/generic/ldsodefs.h: Include <rtld-lowlevel.h>.
* sysdeps/generic/rtld-lowlevel.h: New file.
* include/atomic.h: Rename atomic_and to atomic_and_val and
atomic_or to atomic_or_val. Define new macros atomic_and and
atomic_or which do not return values.
* sysdeps/x86_64/bits/atomic.h: Define atomic_and and atomic_or.
Various cleanups.
* sysdeps/i386/i486/bits/atomic.h: Likewise.
* po/sv.po: Update from translation team.
2006-10-07 Ulrich Drepper <drepper@redhat.com>
* Versions.def: Add GLIBC_2.6 to libpthread.
* include/shlib-compat.h (SHLIB_COMPAT): Expand parameters before use.
(versioned_symbol): Likewise.
(compat_symbol): Likewise.
* po/tr.po: Update from translation team.
* nis/Banner: Removed. It's been integral part forever and the
author info is incomplete anyway.
* libio/Banner: Likewise.
2006-10-06 Ulrich Drepper <drepper@redhat.com>
* version.h (VERSION): Bump to 2.5.90 for new development tree.
2007-01-11 21:51:07 +00:00
--enable-profile build profiled library [default=no]
2021-12-08 05:51:26 +00:00
--disable-default-pie Do not build glibc programs and the testsuite as PIE
[default=no]
2015-09-18 18:00:05 +00:00
--disable-timezone-tools
2015-10-19 18:12:03 +00:00
do not install timezone tools [default=install]
2013-01-11 15:14:18 +00:00
--enable-hardcoded-path-in-tests
hardcode newly built glibc path in tests
[default=no]
2002-10-17 23:48:55 +00:00
--disable-hidden-plt do not hide internal function calls to avoid PLT
2004-03-06 09:51:56 +00:00
--enable-bind-now disable lazy relocations in DSOs
2016-12-26 09:08:18 +00:00
--enable-stack-protector=[yes|no|all|strong]
Use -fstack-protector[-all|-strong] to detect glibc
buffer overflows
2002-10-20 00:21:33 +00:00
--enable-static-nss build static NSS modules [default=no]
2002-10-17 23:48:55 +00:00
--disable-force-install don't force installation of files from this package,
2002-10-20 00:21:33 +00:00
even if they are older than the installed files
2013-12-16 01:25:04 +00:00
--enable-maintainer-mode
enable make rules and dependencies not useful (and
sometimes confusing) to the casual installer
2002-10-20 00:21:33 +00:00
--enable-kernel=VERSION compile for compatibility with kernel not older than
VERSION
2002-10-17 23:48:55 +00:00
--enable-all-warnings enable all useful warnings gcc can issue
Use -Werror by default, add --disable-werror.
As discussed starting at
<https://sourceware.org/ml/libc-alpha/2014-11/msg00323.html>, this
patch makes the glibc build use -Werror by default to avoid
accidentally adding new warnings to the build. The configure option
--disable-werror can be used to disable this.
-Wno-error=undef is temporarily used because the build isn't clean
regarding -Wundef warnings. The idea is that once the remaining
-Wundef warnings have been cleaned up (in at least one configuration),
-Wno-error=undef will be removed.
I get a clean build and test on x86_64 (GCC 4.9 branch) with this
patch. The expectation is that this may well break the build for some
other configurations, and people seeing such breakage should make
appropriate fixes to fix or suppress the warnings for their
configurations. In some cases that may involve using pragmas as the
right fix (I think that will be right for the -Wno-inline issue for
MIPS I referred to in
<https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, for
example), in some cases -Wno-error in sysdeps makefiles (__restore_rt
in MIPS sigaction, for example), in some cases substantive fixes for
the warnings.
Note that if, with a view to listing all the warnings then fixing them
all, you just look for "warning:" in output from building and testing
with --disable-werror, you'll see lots of warnings from the linker
about functions such as tmpnam. Those warnings can be ignored - only
compiler warnings are relevant to -Werror, not linker warnings.
* configure.ac (--disable-werror): New configure option.
(enable_werror): New AC_SUBST.
* configure: Regenerated.
* config.make.in (enable-werror): New variable.
* Makeconfig [$(enable-werror) = yes] (+gccwarn): Add -Werror
-Wno-error=undef.
(+gccwarn-c): Do not use -Werror=implicit-function-declaration.
* manual/install.texi (Configuring and compiling): Document
--disable-werror.
* INSTALL: Regenerated.
* debug/Makefile (CFLAGS-tst-chk1.c): Add -Wno-error.
(CFLAGS-tst-chk2.c): Likewise.
(CFLAGS-tst-chk3.c): Likewise.
(CFLAGS-tst-chk4.cc): Likewise.
(CFLAGS-tst-chk5.cc): Likewise.
(CFLAGS-tst-chk6.cc): Likewise.
(CFLAGS-tst-lfschk1.c): Likewise.
(CFLAGS-tst-lfschk2.c): Likewise.
(CFLAGS-tst-lfschk3.c): Likewise.
(CFLAGS-tst-lfschk4.cc): Likewise.
(CFLAGS-tst-lfschk5.cc): Likewise.
(CFLAGS-tst-lfschk6.cc): Likewise.
2014-12-10 01:14:48 +00:00
--disable-werror do not build with -Werror
2009-03-13 23:53:18 +00:00
--enable-multi-arch enable single DSO with optimizations for multiple
architectures
2017-07-06 17:37:30 +00:00
--disable-experimental-malloc
disable experimental malloc features
2020-12-21 15:03:03 +00:00
--enable-memory-tagging enable memory tagging if supported by the
architecture [default=no]
2018-06-29 14:53:47 +00:00
--disable-crypt do not build nor install the passphrase hashing
library, libcrypt
2009-04-02 17:00:46 +00:00
--enable-nss-crypt enable libcrypt to use nss
2012-05-25 20:40:20 +00:00
--enable-systemtap enable systemtap static probe points [default=no]
2012-08-22 20:35:55 +00:00
--disable-build-nscd disable building and installing the nscd daemon
2012-08-22 20:31:12 +00:00
--disable-nscd library functions will not contact the nscd daemon
2013-07-19 06:42:03 +00:00
--enable-pt_chown Enable building and installing pt_chown
2016-12-31 18:04:04 +00:00
--enable-tunables Enable tunables support. Known values are 'yes',
'no' and 'valstring'
2015-05-14 14:28:06 +00:00
--enable-mathvec Enable building and installing mathvec [default
depends on architecture]
x86: Support IBT and SHSTK in Intel CET [BZ #21598]
Intel Control-flow Enforcement Technology (CET) instructions:
https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-en
forcement-technology-preview.pdf
includes Indirect Branch Tracking (IBT) and Shadow Stack (SHSTK).
GNU_PROPERTY_X86_FEATURE_1_IBT is added to GNU program property to
indicate that all executable sections are compatible with IBT when
ENDBR instruction starts each valid target where an indirect branch
instruction can land. Linker sets GNU_PROPERTY_X86_FEATURE_1_IBT on
output only if it is set on all relocatable inputs.
On an IBT capable processor, the following steps should be taken:
1. When loading an executable without an interpreter, enable IBT and
lock IBT if GNU_PROPERTY_X86_FEATURE_1_IBT is set on the executable.
2. When loading an executable with an interpreter, enable IBT if
GNU_PROPERTY_X86_FEATURE_1_IBT is set on the interpreter.
a. If GNU_PROPERTY_X86_FEATURE_1_IBT isn't set on the executable,
disable IBT.
b. Lock IBT.
3. If IBT is enabled, when loading a shared object without
GNU_PROPERTY_X86_FEATURE_1_IBT:
a. If legacy interwork is allowed, then mark all pages in executable
PT_LOAD segments in legacy code page bitmap. Failure of legacy code
page bitmap allocation causes an error.
b. If legacy interwork isn't allowed, it causes an error.
GNU_PROPERTY_X86_FEATURE_1_SHSTK is added to GNU program property to
indicate that all executable sections are compatible with SHSTK where
return address popped from shadow stack always matches return address
popped from normal stack. Linker sets GNU_PROPERTY_X86_FEATURE_1_SHSTK
on output only if it is set on all relocatable inputs.
On a SHSTK capable processor, the following steps should be taken:
1. When loading an executable without an interpreter, enable SHSTK if
GNU_PROPERTY_X86_FEATURE_1_SHSTK is set on the executable.
2. When loading an executable with an interpreter, enable SHSTK if
GNU_PROPERTY_X86_FEATURE_1_SHSTK is set on interpreter.
a. If GNU_PROPERTY_X86_FEATURE_1_SHSTK isn't set on the executable
or any shared objects loaded via the DT_NEEDED tag, disable SHSTK.
b. Otherwise lock SHSTK.
3. After SHSTK is enabled, it is an error to load a shared object
without GNU_PROPERTY_X86_FEATURE_1_SHSTK.
To enable CET support in glibc, --enable-cet is required to configure
glibc. When CET is enabled, both compiler and assembler must support
CET. Otherwise, it is a configure-time error.
To support CET run-time control,
1. _dl_x86_feature_1 is added to the writable ld.so namespace to indicate
if IBT or SHSTK are enabled at run-time. It should be initialized by
init_cpu_features.
2. For dynamic executables:
a. A l_cet field is added to struct link_map to indicate if IBT or
SHSTK is enabled in an ELF module. _dl_process_pt_note or
_rtld_process_pt_note is called to process PT_NOTE segment for
GNU program property and set l_cet.
b. _dl_open_check is added to check IBT and SHSTK compatibilty when
dlopening a shared object.
3. Replace i386 _dl_runtime_resolve and _dl_runtime_profile with
_dl_runtime_resolve_shstk and _dl_runtime_profile_shstk, respectively if
SHSTK is enabled.
CET run-time control can be changed via GLIBC_TUNABLES with
$ export GLIBC_TUNABLES=glibc.tune.x86_shstk=[permissive|on|off]
$ export GLIBC_TUNABLES=glibc.tune.x86_ibt=[permissive|on|off]
1. permissive: SHSTK is disabled when dlopening a legacy ELF module.
2. on: IBT or SHSTK are always enabled, regardless if there are IBT or
SHSTK bits in GNU program property.
3. off: IBT or SHSTK are always disabled, regardless if there are IBT or
SHSTK bits in GNU program property.
<cet.h> from CET-enabled GCC is automatically included by assembly codes
to add GNU_PROPERTY_X86_FEATURE_1_IBT and GNU_PROPERTY_X86_FEATURE_1_SHSTK
to GNU program property. _CET_ENDBR is added at the entrance of all
assembly functions whose address may be taken. _CET_NOTRACK is used to
insert NOTRACK prefix with indirect jump table to support IBT. It is
defined as notrack when _CET_NOTRACK is defined in <cet.h>.
[BZ #21598]
* configure.ac: Add --enable-cet.
* configure: Regenerated.
* elf/Makefille (all-built-dso): Add a comment.
* elf/dl-load.c (filebuf): Moved before "dynamic-link.h".
Include <dl-prop.h>.
(_dl_map_object_from_fd): Call _dl_process_pt_note on PT_NOTE
segment.
* elf/dl-open.c: Include <dl-prop.h>.
(dl_open_worker): Call _dl_open_check.
* elf/rtld.c: Include <dl-prop.h>.
(dl_main): Call _rtld_process_pt_note on PT_NOTE segment. Call
_rtld_main_check.
* sysdeps/generic/dl-prop.h: New file.
* sysdeps/i386/dl-cet.c: Likewise.
* sysdeps/unix/sysv/linux/x86/cpu-features.c: Likewise.
* sysdeps/unix/sysv/linux/x86/dl-cet.h: Likewise.
* sysdeps/x86/cet-tunables.h: Likewise.
* sysdeps/x86/check-cet.awk: Likewise.
* sysdeps/x86/configure: Likewise.
* sysdeps/x86/configure.ac: Likewise.
* sysdeps/x86/dl-cet.c: Likewise.
* sysdeps/x86/dl-procruntime.c: Likewise.
* sysdeps/x86/dl-prop.h: Likewise.
* sysdeps/x86/libc-start.h: Likewise.
* sysdeps/x86/link_map.h: Likewise.
* sysdeps/i386/dl-trampoline.S (_dl_runtime_resolve): Add
_CET_ENDBR.
(_dl_runtime_profile): Likewise.
(_dl_runtime_resolve_shstk): New.
(_dl_runtime_profile_shstk): Likewise.
* sysdeps/linux/x86/Makefile (sysdep-dl-routines): Add dl-cet
if CET is enabled.
(CFLAGS-.o): Add -fcf-protection if CET is enabled.
(CFLAGS-.os): Likewise.
(CFLAGS-.op): Likewise.
(CFLAGS-.oS): Likewise.
(asm-CPPFLAGS): Add -fcf-protection -include cet.h if CET
is enabled.
(tests-special): Add $(objpfx)check-cet.out.
(cet-built-dso): New.
(+$(cet-built-dso:=.note)): Likewise.
(common-generated): Add $(cet-built-dso:$(common-objpfx)%=%.note).
($(objpfx)check-cet.out): New.
(generated): Add check-cet.out.
* sysdeps/x86/cpu-features.c: Include <dl-cet.h> and
<cet-tunables.h>.
(TUNABLE_CALLBACK (set_x86_ibt)): New prototype.
(TUNABLE_CALLBACK (set_x86_shstk)): Likewise.
(init_cpu_features): Call get_cet_status to check CET status
and update dl_x86_feature_1 with CET status. Call
TUNABLE_CALLBACK (set_x86_ibt) and TUNABLE_CALLBACK
(set_x86_shstk). Disable and lock CET in libc.a.
* sysdeps/x86/cpu-tunables.c: Include <cet-tunables.h>.
(TUNABLE_CALLBACK (set_x86_ibt)): New function.
(TUNABLE_CALLBACK (set_x86_shstk)): Likewise.
* sysdeps/x86/sysdep.h (_CET_NOTRACK): New.
(_CET_ENDBR): Define if not defined.
(ENTRY): Add _CET_ENDBR.
* sysdeps/x86/dl-tunables.list (glibc.tune): Add x86_ibt and
x86_shstk.
* sysdeps/x86_64/dl-trampoline.h (_dl_runtime_resolve): Add
_CET_ENDBR.
(_dl_runtime_profile): Likewise.
2018-07-16 21:08:15 +00:00
--enable-cet enable Intel Control-flow Enforcement Technology
(CET), x86 only
2021-04-09 17:47:27 +00:00
--disable-scv syscalls will not use scv instruction, even if the
kernel supports it, powerpc only
2002-10-17 23:48:55 +00:00
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
2012-11-09 22:13:45 +00:00
--with-pkgversion=PKG Use PKG in the version string in place of "GNU libc"
--with-bugurl=URL Direct users to URL to report a bug
2002-10-17 23:48:55 +00:00
--with-gd=DIR find libgd include dir and library with prefix DIR
--with-gd-include=DIR find libgd include files in DIR
--with-gd-lib=DIR find libgd library files in DIR
2002-10-20 00:21:33 +00:00
--with-binutils=PATH specify location of binutils (as and ld)
2004-09-17 00:04:18 +00:00
--with-selinux if building with SELinux support
2002-10-20 00:21:33 +00:00
--with-headers=PATH location of system headers to use (for example
2007-06-08 03:17:15 +00:00
/usr/src/linux/include) [default=compiler default]
2011-06-11 12:14:37 +00:00
--with-default-link do not use explicit linker scripts
2018-08-17 09:44:39 +00:00
--with-nonshared-cflags=CFLAGS
build nonshared libraries with additional CFLAGS
2022-01-14 19:16:05 +00:00
--with-rtld-early-cflags=CFLAGS
build early initialization with additional CFLAGS
2021-12-04 19:25:53 +00:00
--with-timeoutfactor=NUM
specify an integer to scale the timeout
2005-11-08 01:21:32 +00:00
--with-cpu=CPU select code for CPU variant
2002-10-17 23:48:55 +00:00
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
2007-06-08 03:17:15 +00:00
LIBS libraries to pass to the linker, e.g. -l<library>
2010-07-10 02:25:39 +00:00
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
2007-06-08 03:17:15 +00:00
you have headers in a nonstandard directory <include dir>
2002-10-17 23:48:55 +00:00
CPP C preprocessor
2003-04-24 23:45:17 +00:00
CXX C++ compiler command
CXXFLAGS C++ compiler flags
2002-10-17 23:48:55 +00:00
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
2017-11-16 06:19:26 +00:00
Report bugs to <https://sourceware.org/bugzilla/>.
2019-09-09 21:10:23 +00:00
GNU C Library home page: <https://www.gnu.org/software/glibc/>.
2010-07-10 02:25:39 +00:00
General help using GNU software: <http://www.gnu.org/gethelp/>.
2002-10-17 23:48:55 +00:00
_ACEOF
2007-06-08 03:17:15 +00:00
ac_status=$?
2002-10-17 23:48:55 +00:00
fi
if test "$ac_init_help" = "recursive"; then
# If there are subdirs, report their specific --help.
for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
2009-04-07 06:36:33 +00:00
test -d "$ac_dir" ||
{ cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
continue
2002-10-17 23:48:55 +00:00
ac_builddir=.
2007-06-08 03:17:15 +00:00
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
2009-04-07 06:36:33 +00:00
ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
2007-06-08 03:17:15 +00:00
# A ".." for each directory in $ac_dir_suffix.
2009-04-07 06:36:33 +00:00
ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
2007-06-08 03:17:15 +00:00
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
2002-10-17 23:48:55 +00:00
case $srcdir in
2007-06-08 03:17:15 +00:00
.) # We are building in place.
2002-10-17 23:48:55 +00:00
ac_srcdir=.
2007-06-08 03:17:15 +00:00
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
2002-10-17 23:48:55 +00:00
ac_srcdir=$srcdir$ac_dir_suffix;
2007-06-08 03:17:15 +00:00
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
2002-10-17 23:48:55 +00:00
esac
2007-06-08 03:17:15 +00:00
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir" || { ac_status=$?; continue; }
# Check for guested configure.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
elif test -f "$ac_srcdir/configure"; then
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
2002-10-17 23:48:55 +00:00
else
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
2007-06-08 03:17:15 +00:00
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
2002-10-17 23:48:55 +00:00
done
fi
2007-06-08 03:17:15 +00:00
test -n "$ac_init_help" && exit $ac_status
2002-10-17 23:48:55 +00:00
if $ac_init_version; then
cat <<\_ACEOF
2002-10-19 20:07:18 +00:00
GNU C Library configure (see version.h)
2014-09-29 14:45:59 +00:00
generated by GNU Autoconf 2.69
2002-10-17 23:48:55 +00:00
2014-09-29 14:45:59 +00:00
Copyright (C) 2012 Free Software Foundation, Inc.
2002-10-17 23:48:55 +00:00
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
2007-06-08 03:17:15 +00:00
exit
2002-10-17 23:48:55 +00:00
fi
2010-07-10 02:25:39 +00:00
## ------------------------ ##
## Autoconf initialization. ##
## ------------------------ ##
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
# ac_fn_c_try_compile LINENO
# --------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
2002-10-17 23:48:55 +00:00
{
2010-07-10 02:25:39 +00:00
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
ac_retval=1
fi
2011-09-11 16:14:48 +00:00
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2010-07-10 02:25:39 +00:00
as_fn_set_status $ac_retval
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
} # ac_fn_c_try_compile
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
# ac_fn_cxx_try_compile LINENO
# ----------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_cxx_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_cxx_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
2011-09-11 16:14:48 +00:00
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2010-07-10 02:25:39 +00:00
as_fn_set_status $ac_retval
} # ac_fn_cxx_try_compile
2015-03-04 21:52:45 +00:00
# ac_fn_cxx_try_link LINENO
# -------------------------
# Try to link conftest.$ac_ext, and return whether this succeeded.
ac_fn_cxx_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_cxx_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
test -x conftest$ac_exeext
}; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
# Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
# created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
# interfere with the next link command; also delete a directory that is
# left behind by Apple's compiler. We do this before executing the actions.
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_cxx_try_link
2010-07-10 02:25:39 +00:00
# ac_fn_c_try_link LINENO
# -----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
2014-09-29 14:45:59 +00:00
test -x conftest$ac_exeext
2010-07-10 02:25:39 +00:00
}; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
# Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
# created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
# interfere with the next link command; also delete a directory that is
# left behind by Apple's compiler. We do this before executing the actions.
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
2011-09-11 16:14:48 +00:00
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2010-07-10 02:25:39 +00:00
as_fn_set_status $ac_retval
} # ac_fn_c_try_link
2021-05-22 02:42:48 +00:00
# ac_fn_c_try_cpp LINENO
# ----------------------
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_cpp ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if { { ac_try="$ac_cpp conftest.$ac_ext"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
}; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_cpp
2010-07-10 02:25:39 +00:00
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by GNU C Library $as_me (see version.h), which was
2014-09-29 14:45:59 +00:00
generated by GNU Autoconf 2.69. Invocation command line was
2010-07-10 02:25:39 +00:00
$ $0 $@
_ACEOF
exec 5>>config.log
{
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##
hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
_ASUNAME
2002-10-17 23:48:55 +00:00
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
$as_echo "PATH: $as_dir"
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
2002-10-17 23:48:55 +00:00
} >&5
cat >&5 <<_ACEOF
## ----------- ##
## Core tests. ##
## ----------- ##
_ACEOF
# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
2003-09-23 12:07:26 +00:00
# Strip out --silent because we don't want to record it for future runs.
2002-10-17 23:48:55 +00:00
# Also quote any args containing shell meta-characters.
2003-09-23 12:07:26 +00:00
# Make two passes to allow for proper duplicate-argument suppression.
2002-10-17 23:48:55 +00:00
ac_configure_args=
2003-09-23 12:07:26 +00:00
ac_configure_args0=
ac_configure_args1=
ac_must_keep_next=false
for ac_pass in 1 2
2002-10-17 23:48:55 +00:00
do
2003-09-23 12:07:26 +00:00
for ac_arg
do
case $ac_arg in
-no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
continue ;;
2007-06-08 03:17:15 +00:00
*\'*)
2009-04-07 06:36:33 +00:00
ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2003-09-23 12:07:26 +00:00
esac
case $ac_pass in
2010-07-10 02:25:39 +00:00
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
2003-09-23 12:07:26 +00:00
2)
2010-07-10 02:25:39 +00:00
as_fn_append ac_configure_args1 " '$ac_arg'"
2003-09-23 12:07:26 +00:00
if test $ac_must_keep_next = true; then
2004-08-05 03:34:45 +00:00
ac_must_keep_next=false # Got value, back to normal.
2003-09-23 12:07:26 +00:00
else
2004-08-05 03:34:45 +00:00
case $ac_arg in
*=* | --config-cache | -C | -disable-* | --disable-* \
| -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
| -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
| -with-* | --with-* | -without-* | --without-* | --x)
case "$ac_configure_args0 " in
"$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
esac
;;
-* ) ac_must_keep_next=true ;;
esac
2003-09-23 12:07:26 +00:00
fi
2010-07-10 02:25:39 +00:00
as_fn_append ac_configure_args " '$ac_arg'"
2003-09-23 12:07:26 +00:00
;;
esac
done
2002-10-17 23:48:55 +00:00
done
2010-07-10 02:25:39 +00:00
{ ac_configure_args0=; unset ac_configure_args0;}
{ ac_configure_args1=; unset ac_configure_args1;}
2002-10-17 23:48:55 +00:00
# When interrupted or exit'd, cleanup temporary files, and complete
# config.log. We remove comments because anyway the quotes in there
# would cause problems or look ugly.
2007-06-08 03:17:15 +00:00
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
2002-10-17 23:48:55 +00:00
trap 'exit_status=$?
# Save into config.log some information that might help in debugging.
{
echo
2002-10-19 20:07:18 +00:00
2010-12-25 01:14:37 +00:00
$as_echo "## ---------------- ##
2002-10-17 23:48:55 +00:00
## Cache variables. ##
2010-12-25 01:14:37 +00:00
## ---------------- ##"
2002-10-17 23:48:55 +00:00
echo
# The following way of writing the cache mishandles newlines in values,
2007-06-08 03:17:15 +00:00
(
for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
2010-07-10 02:25:39 +00:00
*_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2007-06-08 03:17:15 +00:00
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
2009-04-07 06:36:33 +00:00
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
2010-07-10 02:25:39 +00:00
*) { eval $ac_var=; unset $ac_var;} ;;
2007-06-08 03:17:15 +00:00
esac ;;
esac
done
2002-10-17 23:48:55 +00:00
(set) 2>&1 |
2007-06-08 03:17:15 +00:00
case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
2002-10-17 23:48:55 +00:00
sed -n \
2007-06-08 03:17:15 +00:00
"s/'\''/'\''\\\\'\'''\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
;; #(
2002-10-17 23:48:55 +00:00
*)
2007-06-08 03:17:15 +00:00
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
2002-10-17 23:48:55 +00:00
;;
2007-06-08 03:17:15 +00:00
esac |
sort
)
2002-10-17 23:48:55 +00:00
echo
2002-10-19 20:07:18 +00:00
2010-12-25 01:14:37 +00:00
$as_echo "## ----------------- ##
2002-10-19 20:07:18 +00:00
## Output variables. ##
2010-12-25 01:14:37 +00:00
## ----------------- ##"
2002-10-19 20:07:18 +00:00
echo
for ac_var in $ac_subst_vars
do
2007-06-08 03:17:15 +00:00
eval ac_val=\$$ac_var
case $ac_val in
2009-04-07 06:36:33 +00:00
*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
2007-06-08 03:17:15 +00:00
esac
2009-04-07 06:36:33 +00:00
$as_echo "$ac_var='\''$ac_val'\''"
2002-10-19 20:07:18 +00:00
done | sort
echo
if test -n "$ac_subst_files"; then
2010-12-25 01:14:37 +00:00
$as_echo "## ------------------- ##
2007-06-08 03:17:15 +00:00
## File substitutions. ##
2010-12-25 01:14:37 +00:00
## ------------------- ##"
2002-10-19 20:07:18 +00:00
echo
for ac_var in $ac_subst_files
do
2007-06-08 03:17:15 +00:00
eval ac_val=\$$ac_var
case $ac_val in
2009-04-07 06:36:33 +00:00
*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
2007-06-08 03:17:15 +00:00
esac
2009-04-07 06:36:33 +00:00
$as_echo "$ac_var='\''$ac_val'\''"
2002-10-19 20:07:18 +00:00
done | sort
echo
fi
2002-10-17 23:48:55 +00:00
if test -s confdefs.h; then
2010-12-25 01:14:37 +00:00
$as_echo "## ----------- ##
2002-10-17 23:48:55 +00:00
## confdefs.h. ##
2010-12-25 01:14:37 +00:00
## ----------- ##"
2002-10-17 23:48:55 +00:00
echo
2007-06-08 03:17:15 +00:00
cat confdefs.h
2002-10-17 23:48:55 +00:00
echo
fi
test "$ac_signal" != 0 &&
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: caught signal $ac_signal"
$as_echo "$as_me: exit $exit_status"
2002-10-17 23:48:55 +00:00
} >&5
2007-06-08 03:17:15 +00:00
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
2002-10-17 23:48:55 +00:00
exit $exit_status
2007-06-08 03:17:15 +00:00
' 0
2002-10-17 23:48:55 +00:00
for ac_signal in 1 2 13 15; do
2010-07-10 02:25:39 +00:00
trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
2002-10-17 23:48:55 +00:00
done
ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
2007-06-08 03:17:15 +00:00
rm -f -r conftest* confdefs.h
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
$as_echo "/* confdefs.h */" > confdefs.h
2002-10-17 23:48:55 +00:00
# Predefined preprocessor variables.
cat >>confdefs.h <<_ACEOF
#define PACKAGE_NAME "$PACKAGE_NAME"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_VERSION "$PACKAGE_VERSION"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_STRING "$PACKAGE_STRING"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
_ACEOF
2010-07-10 02:25:39 +00:00
cat >>confdefs.h <<_ACEOF
#define PACKAGE_URL "$PACKAGE_URL"
_ACEOF
2002-10-17 23:48:55 +00:00
# Let the site file select an alternate cache file if it wants to.
2009-04-07 06:36:33 +00:00
# Prefer an explicitly selected file to automatically selected ones.
ac_site_file1=NONE
ac_site_file2=NONE
2007-06-08 03:17:15 +00:00
if test -n "$CONFIG_SITE"; then
2010-12-25 01:14:37 +00:00
# We do not want a PATH search for config.site.
case $CONFIG_SITE in #((
-*) ac_site_file1=./$CONFIG_SITE;;
*/*) ac_site_file1=$CONFIG_SITE;;
*) ac_site_file1=./$CONFIG_SITE;;
esac
2007-06-08 03:17:15 +00:00
elif test "x$prefix" != xNONE; then
2009-04-07 06:36:33 +00:00
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
2007-06-08 03:17:15 +00:00
else
2009-04-07 06:36:33 +00:00
ac_site_file1=$ac_default_prefix/share/config.site
ac_site_file2=$ac_default_prefix/etc/config.site
1997-07-14 21:49:20 +00:00
fi
2009-04-07 06:36:33 +00:00
for ac_site_file in "$ac_site_file1" "$ac_site_file2"
2007-06-08 03:17:15 +00:00
do
2009-04-07 06:36:33 +00:00
test "x$ac_site_file" = xNONE && continue
2010-07-10 02:25:39 +00:00
if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
2002-10-17 23:48:55 +00:00
sed 's/^/| /' "$ac_site_file" >&5
2010-12-25 01:14:37 +00:00
. "$ac_site_file" \
|| { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
1997-07-14 21:49:20 +00:00
fi
done
if test -r "$cache_file"; then
2010-07-10 02:25:39 +00:00
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: loading cache $cache_file" >&6;}
2002-10-17 23:48:55 +00:00
case $cache_file in
2007-06-08 03:17:15 +00:00
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
2002-10-17 23:48:55 +00:00
esac
fi
1997-07-14 21:49:20 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: creating cache $cache_file" >&6;}
2002-10-17 23:48:55 +00:00
>$cache_file
fi
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
2007-06-08 03:17:15 +00:00
for ac_var in $ac_precious_vars; do
2002-10-17 23:48:55 +00:00
eval ac_old_set=\$ac_cv_env_${ac_var}_set
eval ac_new_set=\$ac_env_${ac_var}_set
2007-06-08 03:17:15 +00:00
eval ac_old_val=\$ac_cv_env_${ac_var}_value
eval ac_new_val=\$ac_env_${ac_var}_value
2002-10-17 23:48:55 +00:00
case $ac_old_set,$ac_new_set in
set,)
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
2002-10-17 23:48:55 +00:00
ac_cache_corrupted=: ;;
,set)
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
2002-10-17 23:48:55 +00:00
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
2009-04-07 06:36:33 +00:00
# differences in whitespace do not lead to failure.
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
2002-10-17 23:48:55 +00:00
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
2009-04-07 06:36:33 +00:00
*\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
2002-10-17 23:48:55 +00:00
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
*" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
2010-07-10 02:25:39 +00:00
*) as_fn_append ac_configure_args " '$ac_arg'" ;;
2002-10-17 23:48:55 +00:00
esac
fi
done
if $ac_cache_corrupted; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
2010-12-25 01:14:37 +00:00
as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
1997-07-14 21:49:20 +00:00
fi
2010-07-10 02:25:39 +00:00
## -------------------- ##
## Main body of script. ##
## -------------------- ##
1997-07-14 21:49:20 +00:00
2010-07-10 02:25:39 +00:00
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
2002-10-17 23:48:55 +00:00
1997-07-14 21:49:20 +00:00
2010-07-10 02:25:39 +00:00
ac_config_headers="$ac_config_headers config.h"
1998-04-02 17:42:53 +00:00
2010-07-10 02:25:39 +00:00
ac_aux_dir=
for ac_dir in scripts "$srcdir"/scripts; do
2010-12-25 01:14:37 +00:00
if test -f "$ac_dir/install-sh"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install-sh -c"
break
elif test -f "$ac_dir/install.sh"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install.sh -c"
break
elif test -f "$ac_dir/shtool"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/shtool install -c"
break
fi
2010-07-10 02:25:39 +00:00
done
if test -z "$ac_aux_dir"; then
2010-12-25 01:14:37 +00:00
as_fn_error $? "cannot find install-sh, install.sh, or shtool in scripts \"$srcdir\"/scripts" "$LINENO" 5
2010-07-10 02:25:39 +00:00
fi
2007-06-08 03:17:15 +00:00
# These three variables are undocumented and unsupported,
# and are intended to be withdrawn in a future Autoconf release.
# They can cause serious problems if a builder's source tree is in a directory
# whose full name contains unusual characters.
ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
1998-05-08 23:54:11 +00:00
1997-07-14 21:49:20 +00:00
2012-11-09 22:13:45 +00:00
# Check whether --with-pkgversion was given.
if test "${with_pkgversion+set}" = set; then :
withval=$with_pkgversion; case "$withval" in
yes) as_fn_error $? "package version not specified" "$LINENO" 5 ;;
no) PKGVERSION= ;;
*) PKGVERSION="($withval) " ;;
esac
else
PKGVERSION="(GNU libc) "
fi
PKGVERSION_TEXI=`echo "$PKGVERSION" | sed 's/@/@@/g'`
# Check whether --with-bugurl was given.
if test "${with_bugurl+set}" = set; then :
withval=$with_bugurl; case "$withval" in
yes) as_fn_error $? "bug URL not specified" "$LINENO" 5 ;;
no) BUGURL=
;;
*) BUGURL="$withval"
;;
esac
else
Prefer https to http for gnu.org and fsf.org URLs
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:
sed -ri '
s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
$(find $(git ls-files) -prune -type f \
! -name '*.po' \
! -name 'ChangeLog*' \
! -path COPYING ! -path COPYING.LIB \
! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
! -path manual/texinfo.tex ! -path scripts/config.guess \
! -path scripts/config.sub ! -path scripts/install-sh \
! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
! -path INSTALL ! -path locale/programs/charmap-kw.h \
! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
! '(' -name configure \
-execdir test -f configure.ac -o -f configure.in ';' ')' \
! '(' -name preconfigure \
-execdir test -f preconfigure.ac ';' ')' \
-print)
and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:
chmod a+x sysdeps/unix/sysv/linux/riscv/configure
# Omit irrelevant whitespace and comment-only changes,
# perhaps from a slightly-different Autoconf version.
git checkout -f \
sysdeps/csky/configure \
sysdeps/hppa/configure \
sysdeps/riscv/configure \
sysdeps/unix/sysv/linux/csky/configure
# Omit changes that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
git checkout -f \
sysdeps/powerpc/powerpc64/ppc-mcount.S \
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
# Omit change that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 05:40:42 +00:00
BUGURL="https://www.gnu.org/software/libc/bugs.html"
2012-11-09 22:13:45 +00:00
fi
case ${BUGURL} in
"")
REPORT_BUGS_TO=
REPORT_BUGS_TEXI=
;;
*)
REPORT_BUGS_TO="<$BUGURL>"
REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`}
;;
esac;
cat >>confdefs.h <<_ACEOF
#define PKGVERSION "$PKGVERSION"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define REPORT_BUGS_TO "$REPORT_BUGS_TO"
_ACEOF
2012-05-25 21:16:19 +00:00
# Glibc should not depend on any header files
2013-01-25 11:33:19 +00:00
# We require GCC, and by default use its preprocessor. Override AC_PROG_CPP
# here to work around the Autoconf issue discussed in
2017-11-16 06:19:26 +00:00
# <https://sourceware.org/ml/libc-alpha/2013-01/msg00721.html>.
2013-01-25 11:33:19 +00:00
# AC_PROG_CPP
2013-01-25 11:44:45 +00:00
# We require GCC. Override _AC_PROG_CC_C89 here to work around the Autoconf
# issue discussed in
2017-11-16 06:19:26 +00:00
# <https://sourceware.org/ml/libc-alpha/2013-01/msg00757.html>.
2013-01-25 11:44:45 +00:00
2009-09-15 21:14:42 +00:00
subdirs="$subdirs "
2009-05-31 23:54:28 +00:00
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
2010-12-25 01:14:37 +00:00
as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
2009-05-31 23:54:28 +00:00
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
2009-05-31 23:54:28 +00:00
$as_echo_n "checking build system type... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_build+:} false; then :
2009-05-31 23:54:28 +00:00
$as_echo_n "(cached) " >&6
else
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
2010-12-25 01:14:37 +00:00
as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
2009-05-31 23:54:28 +00:00
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
2010-12-25 01:14:37 +00:00
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
2009-05-31 23:54:28 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
2009-05-31 23:54:28 +00:00
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
2010-12-25 01:14:37 +00:00
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
2009-05-31 23:54:28 +00:00
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_build
shift
build_cpu=$1
build_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
build_os=$*
IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
2009-05-31 23:54:28 +00:00
$as_echo_n "checking host system type... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_host+:} false; then :
2009-05-31 23:54:28 +00:00
$as_echo_n "(cached) " >&6
else
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
2010-12-25 01:14:37 +00:00
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
2009-05-31 23:54:28 +00:00
fi
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
2009-05-31 23:54:28 +00:00
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
2010-12-25 01:14:37 +00:00
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
2009-05-31 23:54:28 +00:00
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_host
shift
host_cpu=$1
host_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
host_os=$*
IFS=$ac_save_IFS
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
2009-04-05 18:49:28 +00:00
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_CC+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2009-04-05 18:49:28 +00:00
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2009-04-05 18:49:28 +00:00
ac_cv_prog_CC="${ac_tool_prefix}gcc"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2009-04-05 18:49:28 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2009-04-05 18:49:28 +00:00
IFS=$as_save_IFS
1999-10-04 04:37:58 +00:00
2007-06-08 03:17:15 +00:00
fi
fi
2009-04-05 18:49:28 +00:00
CC=$ac_cv_prog_CC
if test -n "$CC"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$CC" >&6; }
2009-04-05 18:49:28 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2007-06-08 03:17:15 +00:00
fi
1999-10-05 00:36:41 +00:00
fi
2009-04-05 18:49:28 +00:00
if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_ac_ct_CC+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
1997-07-14 21:49:20 +00:00
else
2009-04-05 18:49:28 +00:00
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
Update.
1997-09-30 18:03 Ulrich Drepper <drepper@cygnus.com>
* Makerules: Undo last change.
* csu/Makefile: Define before-compile at the right place.
* aclocal.m4: Remove a.out file created by assembler test.
* set-init.c: Find set-hooks.h using <...>.
Update to db 2.3.10.
* db2/Makefile: Update.
* db2/db.h: Likewise.
* db2/db_185.h: Likewise.
* db2/db_int.h: Likewise.
* db2/btree/bt_close.c: Likewise.
* db2/btree/bt_conv.c: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/clib/getlong.c: Likewise.
* db2/db/db.c: Likewise.
* db2/db/db_auto.c: Likewise.
* db2/db/db_conv.c: Likewise.
* db2/db/db_pr.c: Likewise.
* db2/db/db_ret.c: Likewise.
* db2/db/db_thread.c: Likewise.
* db2/hash/hash.c: Likewise.
* db2/hash/hash_auto.c: Likewise.
* db2/hash/hash_conv.c: Likewise.
* db2/hash/hash_dup.c: Likewise.
* db2/hash/hash_func.c: Likewise.
* db2/hash/hash_page.c: Likewise.
* db2/hash/hash_rec.c: Likewise.
* db2/include/btree.h: Likewise.
* db2/include/btree_ext.h: Likewise.
* db2/include/db.h.src: Likewise.
* db2/include/db_185.h.src: Likewise.
* db2/include/db_cxx.h: Likewise.
* db2/include/db_ext.h: Likewise.
* db2/include/db_int.h.src: Likewise.
* db2/include/db_page.h: Likewise.
* db2/include/db_shash.h: Likewise.
* db2/include/lock.h: Likewise.
* db2/include/log.h: Likewise.
* db2/include/log_ext.h: Likewise.
* db2/include/mp.h: Likewise.
* db2/include/shqueue.h: Likewise.
* db2/include/txn.h: Likewise.
* db2/lock/lock.c: Likewise.
* db2/lock/lock_deadlock.c: Likewise.
* db2/log/log.c: Likewise.
* db2/log/log_archive.c: Likewise.
* db2/log/log_auto.c: Likewise.
* db2/log/log_get.c: Likewise.
* db2/log/log_put.c: Likewise.
* db2/log/log_register.c: Likewise.
* db2/mp/mp_bh.c: Likewise.
* db2/mp/mp_fget.c: Likewise.
* db2/mp/mp_fopen.c: Likewise.
* db2/mp/mp_fput.c: Likewise.
* db2/mp/mp_fset.c: Likewise.
* db2/mp/mp_open.c: Likewise.
* db2/mutex/mutex.c: Likewise.
* db2/os/db_os_dir.c: Likewise.
* db2/progs/db_checkpoint/db_checkpoint.c: Likewise.
* db2/progs/db_deadlock/db_deadlock.c: Likewise.
* db2/progs/db_dump185/db_dump185.c: Likewise.
* db2/progs/db_load/db_load.c: Likewise.
* db2/progs/db_recover/db_recover.c: Likewise.
* db2/txn/txn.c: Likewise.
* db2/txn/txn_auto.c: Likewise.
* elf/link.h: Define struct libname_list outside struct link_map
to not confuse C++ compilers.
* include/features.h: Recognize _XOPEN_SOURCE == 500 and set
__USE_UNIX98.
* manual/creature.texi: Explain this.
* libc.map: Add new functions.
* libio/Makefile (routines): Add fseeko and ftello.
* libio/ftello.c: New file.
* libio/fseeko.c: New file.
* libio/stdio.h: Add prototypes for new functions.
* manual/stdio.texi: Document fseeko and ftello.
* posix/Makefile (routines): Add pread and pwrite.
* sysdeps/posix/pread.c: New file.
* sysdeps/posix/pwrite.c: New file.
* sysdeps/stub/pread.c: New file.
* sysdeps/stub/pwrite.c: New file.
* posix/unistd.h: Add prototypes for pread and pwrite.
Pretty print header.
Define gid_t, uid_t, off_t, pid_t if __USE_UNIX98.
Declare ctermid and cuserid if __USE_UNIX98.
(swab): Change to take void * arguments.
* string/swab.c: Change parameter to void *.
* posix/sys/types: Define gid_t, uid_t, off_t, pid_t only if not
already happened.
* manual/llio.texi: Document pread and pwrite.
* string/strings.h: Don't simply include string.h. Define BSD
functions according to Unix98.
* stdlib/tst-strtol.c: Include <string.h> not <strings.h>.
* sunrpc/clnt_simp.c: Likewise.
* malloc/Makefile (aux): Add set-freeres.
* malloc/mtrace.c: Define function release_libc_mem which calls the
__libc_subfreeres handler.
(mtrace): Register release_libc_mem.
* malloc/set-freeres.c: New file.
* intl/dcgettext.c: Define free_mem function and add to
__libc_subfreeres list.
* intl/finddomain.c: Likewise.
* intl/gettextP.h (struct loaded_domain): Add new fields use_mmap
and mmap_size. Add prototype for _nl_unloaded_domain.
* intl/loadmsgcat.c: Define new function _nl_unload_domain.
(_nl_load_domain): Store informaiton about mmap use and file size.
* intl/localealias.c (read_alias_file): Optimize locale alias file
reading by avoid frequen mallocs.
Define free_mem function and add to __libc_subfreeres list.
* locale/localeinfo.h: Make a difference between MAX_USAGE_COUNT and
undeletable.
Add prototype for _nl_unload_locale.
* locale/C-collate: Mark data as undeletable by using UNDELETABLE.
* locale/C-ctype: Likewise.
* locale/C-messages: Likewise.
* locale/C-monetary: Likewise.
* locale/C-numeric: Likewise.
* locale/C-time: Likewise.
* locale/findlocale.c (_nl_find_locale, _nl_remove_locale): Handle
MAX_USAGE_COUNT and UNDELETABLE.
(free_mem): New function. Add it to __libc_subfreeres list.
* locale/loadlocale.c: Define _nl_unload_locale function.
* misc/hsearch.c: Register hdestroy in __libc_subfreeres list.
* stdlib/fmtmsg.c (addseverity): Handle illegal severity arguments
correctly
Define free_mem function and add to __libc_subfreeres list.
* locale/programs/localedef.c (options): short form os verbose is v.
Reported by Andreas Jaeger.
* misc/sys/select.h: Define pselect only is __USE_POSIX since this
header is used in some others as well for historical reasons.
* resolv/resolv.h: Include <netinet/in.h> to make self-contained.
* string/bits/string2.h: Add missing braces and optimize strcmp a
bit more.
* sysdeps/i386/i486/bits/string.h: Likewise.
* sunrpc/rpc/auth_des.h: Include rpc/auth.h to be self-contained.
Pretty print.
* sysdeps/mach/hurd/cthreads.c: Add copyright text.
* sysdeps/unix/sysv/linux/syscalls.list: Correct prctl entry.
* sysdeps/unix/sysv/linux/sys/mman.h: Get definition of size_t.
* time/time.h: Pretty print.
1997-09-29 Paul Eggert <eggert@twinsun.com>
* time/strftime.c: Synchronize with GNU Emacs strftime.c.
(HAVE_MEMCPY): Define if emacs is defined and HAVE_BCOPY isn't.
(gmtime_r, localtime_r): Undef before defining.
(iso_week_days): Use __inline__, not inline.
1997-09-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/bits/mathinline.h: Rename exp2{,l,f} to
__ieee754_exp2{,l,f}.
* sysdeps/m68k/fpu/s_exp2.c: Likewise.
* sysdeps/m68k/fpu/s_exp2l.c: Likewise.
* sysdeps/m68k/fpu/s_exp2f.c: Likewise.
1997-09-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/soinit.c (__EH_FRAME_BEGIN__): Don't make the .eh_frame
section read-only, it contains relocations.
* elf/sofini.c (__FRAME_END__): Likewise.
1997-09-29 03:08 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/i486/bits/string.h [__PIC__] (__strspn_cg, __strcspn_cg,
__strpbrk_cg, __strstr_cg): Optimize even more. No spill register
needed. Patch by NIIBE Yutaka <gniibe@mri.co.jp>.
1997-09-28 08:27 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nis_call.c (__do_niscall2): Fix return code, add missing
break in switch case.
* nis/nis_mkdir.c: Fix return codes to match Solaris version.
* nis/nis_rmdir.c: Likewise.
* nis/rpcsvc/yp_prot.h: Rename struct keydat to struct keydat_t
for C++.
1997-09-28 04:32 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Fix typo.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-09-25 20:14 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/scsi/sg.h: New file.
* sysdeps/unix/sysv/linux/Makefile: Install <scsi/sg.h>.
1997-09-30 17:10:40 +00:00
else
2009-04-05 18:49:28 +00:00
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2009-04-05 18:49:28 +00:00
ac_cv_prog_ac_ct_CC="gcc"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2009-04-05 18:49:28 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2009-04-05 18:49:28 +00:00
IFS=$as_save_IFS
1997-07-14 21:49:20 +00:00
2009-04-05 18:49:28 +00:00
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_ct_CC" >&6; }
1997-07-14 21:49:20 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2007-06-08 03:17:15 +00:00
fi
2009-04-05 18:49:28 +00:00
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
2009-04-05 18:49:28 +00:00
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
2004-09-17 00:04:18 +00:00
else
2009-04-05 18:49:28 +00:00
CC="$ac_cv_prog_CC"
2007-06-08 03:17:15 +00:00
fi
2009-04-05 18:49:28 +00:00
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_CC+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2009-04-05 18:49:28 +00:00
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2009-04-05 18:49:28 +00:00
ac_cv_prog_CC="${ac_tool_prefix}cc"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2009-04-05 18:49:28 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2009-04-05 18:49:28 +00:00
IFS=$as_save_IFS
2004-09-17 00:04:18 +00:00
2009-04-05 18:49:28 +00:00
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$CC" >&6; }
2001-08-03 23:04:10 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2007-06-08 03:17:15 +00:00
fi
2001-08-03 23:04:10 +00:00
2009-04-05 18:49:28 +00:00
fi
2007-06-08 03:17:15 +00:00
fi
2009-04-05 18:49:28 +00:00
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_CC+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2009-04-05 18:49:28 +00:00
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
ac_prog_rejected=no
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2009-04-05 18:49:28 +00:00
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2009-04-05 18:49:28 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2009-04-05 18:49:28 +00:00
IFS=$as_save_IFS
2007-06-08 03:17:15 +00:00
2009-04-05 18:49:28 +00:00
if test $ac_prog_rejected = yes; then
# We found a bogon in the path, so make sure we never use it.
set dummy $ac_cv_prog_CC
shift
if test $# != 0; then
# We chose a different compiler from the bogus one.
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
2000-12-01 20:14:07 +00:00
fi
2000-11-01 16:33:25 +00:00
fi
2007-06-08 03:17:15 +00:00
fi
fi
2009-04-05 18:49:28 +00:00
CC=$ac_cv_prog_CC
if test -n "$CC"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$CC" >&6; }
2003-03-26 01:15:07 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2007-06-08 03:17:15 +00:00
fi
2003-03-26 01:15:07 +00:00
2007-06-08 03:17:15 +00:00
fi
2009-04-05 18:49:28 +00:00
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
for ac_prog in cl.exe
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_CC+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
1997-07-14 21:49:20 +00:00
else
2009-04-05 18:49:28 +00:00
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
1997-07-14 21:49:20 +00:00
else
2009-04-05 18:49:28 +00:00
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2009-04-05 18:49:28 +00:00
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2009-04-05 18:49:28 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2009-04-05 18:49:28 +00:00
IFS=$as_save_IFS
2007-06-08 03:17:15 +00:00
fi
2009-04-05 18:49:28 +00:00
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$CC" >&6; }
Update.
1997-09-25 00:23 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-profile.c: Correct implementation.
* io/ftwtest-sh: Don't depend on TMPDIR == /tmp.
* locale/setlocale.c: Rewrite a bit for more clarity.
* math/Makefile (libm-calls): Add w_exp2.
* math/math_private.h: Add prototypes for __ieee754_exp2{,f,l}.
* sysdeps/libm-i387/s_exp2.S: Change name to __ieee754_exp2.
* sysdeps/libm-i387/s_exp2f.S: Likewise.
* sysdeps/libm-i387/s_exp2l.S: Likewise.
* sysdeps/libm-ieee754/k_standard.c: Add error cases for exp2.
* string/bits/string2.h (__strcpy_small): Optimize.
(__stpcpy_small): Likewise.
(strncpy): Use variable for dest argument since it's used more than
once.
(strncat): Likewise.
(strcmp): Add optimization for this function.
* sysdeps/i386/i486/string.h (strlen): Correctly use __builtin_strlen.
(__strcpy_small): Optimize.
(__stpcpy_small): Likewise.
(__stpcpy_c): Correctly use __mempcpy_* macros.
(__mempcpy_by2, __mempcpy_by4, __mempcpy_byn): Return pointer to
byte following last copied.
(strncat): Use variable for dest argument since it's used more than
once.
(strcmp): Add optimization for this function.
* sysdeps/i386/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE): Use
.text and .previous to select correct section.
1997-09-23 19:56 Philip Blundell <Philip.Blundell@pobox.com>
* configure.in: Add `--disable-versioning' option to suppress the
use of symbol versions even if binutils claims to support it.
1997-09-24 20:10 Philip Blundell <Philip.Blundell@pobox.com>
* csu/Makefile (before-compile): Don't try to build abi-tags.h if
not using ELF.
1997-09-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/sofini.c [HAVE_DWARF2_UNWIND_INFO]: Supply termination for
the frame unwind info section.
* elf/soinit.c [HAVE_DWARF2_UNWIND_INFO]: Register and unregister
the frame unwind info.
* config.h.in (HAVE_DWARF2_UNWIND_INFO): Add #undef.
* configure.in: Check whether gcc supports DWARF2 unwind info.
* libc.map: Export frame handling tables.
1997-09-10 06:56 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/unix/sysv/linux/powerpc/bits/kernel_termios.h:
Use the size of the kernel's termios structure for ioctls.
* sysdeps/powerpc/dl-machine.h: Prepare for library profiling.
* sysdeps/powerpc/bits/mathinline.h: Add slightly slower versions
of the C9X FP comparison macros. Delete 'fabs' and 'sqrt' inline
routines, because gcc has them as internals.
* sysdeps/powerpc/Makefile (pic-ccflags): Define this instead of
CFLAGS-.os.
* sysdeps/powerpc/bzero.S: New file.
* sysdeps/powerpc/strcat.c: New file.
* sysdeps/powerpc/strcpy.S: New file.
* sysdeps/powerpc/stpcpy.S: New file.
* math/Makefile: Add atest_exp2, test-reduce.
* math/atest_exp2.c: New file.
* math/test-reduce.c: New file.
* sysdeps/libm-ieee754/Dist: New file.
* sysdeps/libm-ieee754/s_exp2.c: New file.
* sysdeps/libm-ieee754/s_exp2f.c: New file.
* sysdeps/libm-ieee754/t_exp2.h: New file.
* sysdeps/libm-ieee754/t_exp2f.h: New file.
* math/libm-test.c (exp2_test): Add some more tests.
* Rules: Use empty.os instead of empty.o, since it gets linked into
libc.so...
* configure.in: Add --disable-static to disable building .a files.
* config.make.in: Substitute the new variable.
* Makeconfig: Don't build .o files if not building .a files.
* elf/dl-runtime.c (fixup): Factor out call to elf_machine_relplt.
(profile_fixup): Likewise.
1997-09-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/globtest.c (main): Change to directory passed as first
argument.
* posix/globtest.sh: Don't cd before running the program, instead
pass testdir as argument, so that $common_objpfx remains valid.
1997-09-23 18:01 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nis_call.c (__do_niscall2): Fix multiple Server support.
* nis/nis_findserver.c: Save latest working sockaddr_in.
1997-09-17 22:07 Zack Weinberg <zack@rabi.phys.columbia.edu>
* configure.in: Automatically determine whether as and ld are the
GNU versions.
(options): --with-gnu-{as,ld,binutils} replaced by
single option --with-binutils=PATH specifying a -B option to gcc.
* aclocal.m4: Two new macros defined, LIBC_PROG_FOO_GNU and
LIBC_PROG_BINUTILS.
* configure.in: Allow the user to force configuration for
unsupported platforms with an undocumented option.
1997-09-22 16:55 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/get_myaddr.c (get_myaddress): Avoid loopback interfaces,
return loopback address only if there is no other interface.
* nis/Makefile: Add nis_callback libnsl-routines.
* nis/nis_add.c: Use new __do_niscall* interface.
* nis/nis_cache.c: Likewise.
* nis/nis_checkpoint.c: Likewise.
* nis/nis_lookup.c: Likewise.
* nis/nis_mkdir.c: Likewise.
* nis/nis_modify.c: Likewise.
* nis/nis_ping.c: Likewise.
* nis/nis_remove.c: Likewise.
* nis/nis_rmdir.c: Likewise.
* nis/nis_server.c: Likewise.
* nis/nis_util.c: Likewise.
* nis/rpcsvc/nis.h: Make C++ safe.
* nis/nss_nisplus/nisplus-publickey.c (getsecretkey): Fix use
of variables.
* nis/nis_findserv.c: Make thread safe.
* nis/nis_call.c: Add support for callback, Fix use of variables.
* nis/nis_table.c: Add support for callback, FOLLOW_PATH and
ALL_RESULTS.
* nis/nis_callback.c: New, callback functions.
* nis/nis_intern.h: Add callback declarations.
1997-09-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h: Fix logic in preprocessor directive.
(__strsep_1c, __strsep_g): Don't declare __retval as pointing to
const, to save a cast and a possible warning.
1997-09-22 04:12 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/i486/atomicity.h (exchange_and_add): Really address
memory in xadd not %1.
1997-09-21 13:56 Ulrich Drepper <drepper@cygnus.com>
* manual/maint.texi (Supported Configurations): Add SPARC64 to
list of supported platforms.
1997-09-24 23:03:42 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2007-06-08 03:17:15 +00:00
fi
1997-07-14 21:49:20 +00:00
2009-04-05 18:49:28 +00:00
test -n "$CC" && break
done
2007-06-08 03:17:15 +00:00
fi
2009-04-05 18:49:28 +00:00
if test -z "$CC"; then
ac_ct_CC=$CC
for ac_prog in cl.exe
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_ac_ct_CC+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2000-12-05 00:41:57 +00:00
else
2009-04-05 18:49:28 +00:00
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2009-04-05 18:49:28 +00:00
ac_cv_prog_ac_ct_CC="$ac_prog"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2009-04-05 18:49:28 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2009-04-05 18:49:28 +00:00
IFS=$as_save_IFS
2000-12-05 00:41:57 +00:00
fi
2009-04-05 18:49:28 +00:00
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_ct_CC" >&6; }
2005-06-26 18:14:26 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2007-06-08 03:17:15 +00:00
fi
2005-06-26 18:14:26 +00:00
2009-04-05 18:49:28 +00:00
test -n "$ac_ct_CC" && break
done
2005-06-26 18:14:26 +00:00
2009-04-05 18:49:28 +00:00
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
2009-04-05 18:49:28 +00:00
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
2007-06-08 03:17:15 +00:00
fi
1997-07-14 21:49:20 +00:00
2007-06-08 03:17:15 +00:00
fi
2002-02-07 06:38:57 +00:00
2010-07-10 02:25:39 +00:00
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2010-12-25 01:14:37 +00:00
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
2007-06-08 03:17:15 +00:00
2009-04-05 18:49:28 +00:00
# Provide some information about the compiler.
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
2009-04-07 06:36:33 +00:00
set X $ac_compile
ac_compiler=$2
2010-07-10 02:25:39 +00:00
for ac_option in --version -v -V -qversion; do
{ { ac_try="$ac_compiler $ac_option >&5"
2009-04-05 18:49:28 +00:00
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
2010-07-10 02:25:39 +00:00
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
2009-04-05 18:49:28 +00:00
ac_status=$?
2010-07-10 02:25:39 +00:00
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
2007-06-08 03:17:15 +00:00
2009-04-05 18:49:28 +00:00
EXEEXT=
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for suffix of object files... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_objext+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2002-10-01 08:45:44 +00:00
else
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2009-04-05 18:49:28 +00:00
/* end confdefs.h. */
2002-10-01 08:45:44 +00:00
2009-04-05 18:49:28 +00:00
int
main ()
{
2002-10-01 08:45:44 +00:00
2009-04-05 18:49:28 +00:00
;
return 0;
}
_ACEOF
rm -f conftest.o conftest.obj
2010-07-10 02:25:39 +00:00
if { { ac_try="$ac_compile"
2009-04-05 18:49:28 +00:00
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
2010-07-10 02:25:39 +00:00
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
2009-04-05 18:49:28 +00:00
(eval "$ac_compile") 2>&5
ac_status=$?
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then :
2009-04-05 18:49:28 +00:00
for ac_file in conftest.o conftest.obj conftest.*; do
test -f "$ac_file" || continue;
case $ac_file in
2009-04-07 06:36:33 +00:00
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
2009-04-05 18:49:28 +00:00
*) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
break;;
esac
done
2004-03-06 09:51:56 +00:00
else
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: failed program was:" >&5
2009-04-05 18:49:28 +00:00
sed 's/^/| /' conftest.$ac_ext >&5
2007-06-08 03:17:15 +00:00
2010-07-10 02:25:39 +00:00
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2010-12-25 01:14:37 +00:00
as_fn_error $? "cannot compute suffix of object files: cannot compile
See \`config.log' for more details" "$LINENO" 5; }
2007-06-08 03:17:15 +00:00
fi
2009-04-05 18:49:28 +00:00
rm -f conftest.$ac_cv_objext conftest.$ac_ext
1997-07-14 21:49:20 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_cv_objext" >&6; }
2009-04-05 18:49:28 +00:00
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_c_compiler_gnu+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
1998-04-09 10:14:17 +00:00
else
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2009-04-05 18:49:28 +00:00
/* end confdefs.h. */
1998-04-09 10:14:17 +00:00
2009-04-05 18:49:28 +00:00
int
main ()
{
#ifndef __GNUC__
choke me
#endif
1998-04-09 10:14:17 +00:00
2009-04-05 18:49:28 +00:00
;
return 0;
}
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_c_try_compile "$LINENO"; then :
2009-04-05 18:49:28 +00:00
ac_compiler_gnu=yes
else
2010-07-10 02:25:39 +00:00
ac_compiler_gnu=no
2007-06-08 03:17:15 +00:00
fi
2009-04-05 18:49:28 +00:00
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
1999-05-26 23:37:38 +00:00
2007-06-08 03:17:15 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_cv_c_compiler_gnu" >&6; }
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
2009-04-05 18:49:28 +00:00
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking whether $CC accepts -g... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_cc_g+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2009-04-05 18:49:28 +00:00
else
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2009-04-05 18:49:28 +00:00
/* end confdefs.h. */
2007-06-08 03:17:15 +00:00
2009-04-05 18:49:28 +00:00
int
main ()
{
1999-05-26 23:37:38 +00:00
2009-04-05 18:49:28 +00:00
;
return 0;
}
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_c_try_compile "$LINENO"; then :
2009-04-05 18:49:28 +00:00
ac_cv_prog_cc_g=yes
2009-03-13 23:53:18 +00:00
else
2010-07-10 02:25:39 +00:00
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2009-04-05 18:49:28 +00:00
/* end confdefs.h. */
2009-03-13 23:53:18 +00:00
2009-04-05 18:49:28 +00:00
int
main ()
{
2009-03-13 23:53:18 +00:00
2009-04-05 18:49:28 +00:00
;
return 0;
}
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_c_try_compile "$LINENO"; then :
2009-03-13 23:53:18 +00:00
2010-07-10 02:25:39 +00:00
else
ac_c_werror_flag=$ac_save_c_werror_flag
2009-04-05 18:49:28 +00:00
CFLAGS="-g"
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2009-04-05 18:49:28 +00:00
/* end confdefs.h. */
2009-03-13 23:53:18 +00:00
2009-04-05 18:49:28 +00:00
int
main ()
{
2009-03-13 23:53:18 +00:00
2009-04-05 18:49:28 +00:00
;
return 0;
}
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_c_try_compile "$LINENO"; then :
2009-04-05 18:49:28 +00:00
ac_cv_prog_cc_g=yes
2009-04-02 17:00:46 +00:00
fi
2009-04-05 18:49:28 +00:00
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2009-04-02 17:00:46 +00:00
fi
2009-04-05 18:49:28 +00:00
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
2009-04-02 17:00:46 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_cv_prog_cc_g" >&6; }
2009-04-05 18:49:28 +00:00
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-g"
fi
2009-04-02 17:00:46 +00:00
else
2009-04-05 18:49:28 +00:00
if test "$GCC" = yes; then
CFLAGS="-O2"
else
CFLAGS=
2009-04-02 17:00:46 +00:00
fi
fi
2009-04-05 18:49:28 +00:00
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test $host != $build; then
for ac_prog in gcc cc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_BUILD_CC+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2009-04-02 17:00:46 +00:00
else
2009-04-05 18:49:28 +00:00
if test -n "$BUILD_CC"; then
ac_cv_prog_BUILD_CC="$BUILD_CC" # Let the user override the test.
2009-04-02 17:00:46 +00:00
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2009-04-05 18:49:28 +00:00
ac_cv_prog_BUILD_CC="$ac_prog"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2009-04-02 17:00:46 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2009-04-02 17:00:46 +00:00
IFS=$as_save_IFS
fi
fi
2009-04-05 18:49:28 +00:00
BUILD_CC=$ac_cv_prog_BUILD_CC
if test -n "$BUILD_CC"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_CC" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$BUILD_CC" >&6; }
2009-04-02 17:00:46 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2009-04-02 17:00:46 +00:00
fi
2009-04-05 18:49:28 +00:00
test -n "$BUILD_CC" && break
2009-04-02 17:00:46 +00:00
done
fi
2009-04-05 18:49:28 +00:00
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
2009-04-02 17:00:46 +00:00
fi
2009-04-05 18:49:28 +00:00
if test -z "$CPP"; then
2013-01-25 11:33:19 +00:00
CPP="$CC -E"
2009-04-02 17:00:46 +00:00
fi
2009-04-05 18:49:28 +00:00
2015-03-04 21:52:45 +00:00
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
set dummy ${ac_tool_prefix}readelf; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_READELF+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$READELF"; then
ac_cv_prog_READELF="$READELF" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_READELF="${ac_tool_prefix}readelf"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
READELF=$ac_cv_prog_READELF
if test -n "$READELF"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
$as_echo "$READELF" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_READELF"; then
ac_ct_READELF=$READELF
# Extract the first word of "readelf", so it can be a program name with args.
set dummy readelf; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_READELF+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_READELF"; then
ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_READELF="readelf"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
if test -n "$ac_ct_READELF"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5
$as_echo "$ac_ct_READELF" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_ct_READELF" = x; then
READELF="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
READELF=$ac_ct_READELF
fi
else
READELF="$ac_cv_prog_READELF"
fi
2009-04-05 18:49:28 +00:00
# We need the C++ compiler only for testing.
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
if test -z "$CXX"; then
if test -n "$CCC"; then
CXX=$CCC
else
if test -n "$ac_tool_prefix"; then
for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_CXX+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2009-04-05 18:49:28 +00:00
else
if test -n "$CXX"; then
ac_cv_prog_CXX="$CXX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2009-04-05 18:49:28 +00:00
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2009-04-05 18:49:28 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2009-04-05 18:49:28 +00:00
IFS=$as_save_IFS
fi
fi
CXX=$ac_cv_prog_CXX
if test -n "$CXX"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$CXX" >&6; }
2009-04-05 18:49:28 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2009-04-05 18:49:28 +00:00
fi
test -n "$CXX" && break
done
fi
if test -z "$CXX"; then
ac_ct_CXX=$CXX
for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_ac_ct_CXX+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2009-04-05 18:49:28 +00:00
else
if test -n "$ac_ct_CXX"; then
ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2009-04-05 18:49:28 +00:00
ac_cv_prog_ac_ct_CXX="$ac_prog"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2009-04-05 18:49:28 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2009-04-05 18:49:28 +00:00
IFS=$as_save_IFS
fi
fi
ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
if test -n "$ac_ct_CXX"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_ct_CXX" >&6; }
2009-04-05 18:49:28 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2009-04-05 18:49:28 +00:00
fi
test -n "$ac_ct_CXX" && break
done
if test "x$ac_ct_CXX" = x; then
CXX="g++"
else
case $cross_compiling:$ac_tool_warned in
yes:)
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
2009-04-05 18:49:28 +00:00
ac_tool_warned=yes ;;
esac
CXX=$ac_ct_CXX
fi
fi
fi
fi
# Provide some information about the compiler.
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
2009-04-07 06:36:33 +00:00
set X $ac_compile
ac_compiler=$2
2010-07-10 02:25:39 +00:00
for ac_option in --version -v -V -qversion; do
{ { ac_try="$ac_compiler $ac_option >&5"
2009-04-05 18:49:28 +00:00
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
2010-07-10 02:25:39 +00:00
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
2009-04-05 18:49:28 +00:00
ac_status=$?
2010-07-10 02:25:39 +00:00
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
2009-04-05 18:49:28 +00:00
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_cxx_compiler_gnu+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2009-04-05 18:49:28 +00:00
else
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2009-04-02 17:00:46 +00:00
/* end confdefs.h. */
int
main ()
{
2009-04-05 18:49:28 +00:00
#ifndef __GNUC__
choke me
#endif
2009-04-02 17:00:46 +00:00
;
return 0;
}
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_cxx_try_compile "$LINENO"; then :
2009-04-05 18:49:28 +00:00
ac_compiler_gnu=yes
2009-04-02 17:00:46 +00:00
else
2010-07-10 02:25:39 +00:00
ac_compiler_gnu=no
2009-04-02 17:00:46 +00:00
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2009-04-05 18:49:28 +00:00
ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
2009-04-02 17:00:46 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
if test $ac_compiler_gnu = yes; then
GXX=yes
else
GXX=
fi
2009-04-05 18:49:28 +00:00
ac_test_CXXFLAGS=${CXXFLAGS+set}
ac_save_CXXFLAGS=$CXXFLAGS
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking whether $CXX accepts -g... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_cxx_g+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2009-04-02 17:00:46 +00:00
else
2009-04-05 18:49:28 +00:00
ac_save_cxx_werror_flag=$ac_cxx_werror_flag
ac_cxx_werror_flag=yes
ac_cv_prog_cxx_g=no
CXXFLAGS="-g"
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2009-04-02 17:00:46 +00:00
/* end confdefs.h. */
int
main ()
{
2009-04-05 18:49:28 +00:00
2009-04-02 17:00:46 +00:00
;
return 0;
}
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_cxx_try_compile "$LINENO"; then :
2009-04-05 18:49:28 +00:00
ac_cv_prog_cxx_g=yes
2009-04-02 17:00:46 +00:00
else
2010-07-10 02:25:39 +00:00
CXXFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2009-04-05 18:49:28 +00:00
/* end confdefs.h. */
2009-04-02 17:00:46 +00:00
2009-04-05 18:49:28 +00:00
int
main ()
{
2009-04-02 17:00:46 +00:00
2009-04-05 18:49:28 +00:00
;
return 0;
}
2009-04-02 17:00:46 +00:00
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_cxx_try_compile "$LINENO"; then :
2009-04-02 17:00:46 +00:00
2010-07-10 02:25:39 +00:00
else
ac_cxx_werror_flag=$ac_save_cxx_werror_flag
2009-04-05 18:49:28 +00:00
CXXFLAGS="-g"
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2009-04-02 17:00:46 +00:00
/* end confdefs.h. */
2009-04-05 18:49:28 +00:00
2009-04-02 17:00:46 +00:00
int
main ()
{
2009-04-05 18:49:28 +00:00
2009-04-02 17:00:46 +00:00
;
return 0;
}
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_cxx_try_compile "$LINENO"; then :
2009-04-05 18:49:28 +00:00
ac_cv_prog_cxx_g=yes
2009-04-02 17:00:46 +00:00
fi
2009-04-05 18:49:28 +00:00
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cxx_werror_flag=$ac_save_cxx_werror_flag
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_cv_prog_cxx_g" >&6; }
2009-04-05 18:49:28 +00:00
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS=$ac_save_CXXFLAGS
elif test $ac_cv_prog_cxx_g = yes; then
if test "$GXX" = yes; then
CXXFLAGS="-g -O2"
else
CXXFLAGS="-g"
fi
2002-10-17 23:48:55 +00:00
else
2009-04-05 18:49:28 +00:00
if test "$GXX" = yes; then
CXXFLAGS="-O2"
else
CXXFLAGS=
fi
2002-10-17 23:48:55 +00:00
fi
2009-04-05 18:49:28 +00:00
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
2007-06-08 03:17:15 +00:00
2015-03-04 21:52:45 +00:00
# It's useless to us if it can't link programs (e.g. missing -lstdc++).
2012-10-23 03:40:42 +00:00
2015-03-04 21:52:45 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX can link programs" >&5
$as_echo_n "checking whether $CXX can link programs... " >&6; }
if ${libc_cv_cxx_link_ok+:} false; then :
$as_echo_n "(cached) " >&6
2012-10-23 03:40:42 +00:00
else
2015-03-04 21:52:45 +00:00
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
2012-10-23 03:40:42 +00:00
2015-10-26 08:41:10 +00:00
# Default, dynamic case.
2015-03-04 21:52:45 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
2012-10-23 03:40:42 +00:00
2015-03-04 21:52:45 +00:00
int
main ()
{
2012-10-23 03:40:42 +00:00
2015-03-04 21:52:45 +00:00
;
return 0;
}
_ACEOF
if ac_fn_cxx_try_link "$LINENO"; then :
libc_cv_cxx_link_ok=yes
2012-10-23 03:40:42 +00:00
else
2015-03-04 21:52:45 +00:00
libc_cv_cxx_link_ok=no
2012-10-23 03:40:42 +00:00
fi
2015-03-04 21:52:45 +00:00
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
2015-10-26 08:41:10 +00:00
# Static case.
old_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -static"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <iostream>
int
main()
{
std::cout << "Hello, world!";
return 0;
}
_ACEOF
if ac_fn_cxx_try_link "$LINENO"; then :
else
libc_cv_cxx_link_ok=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS="$old_LDFLAGS"
2015-03-04 21:52:45 +00:00
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
2012-10-23 03:40:42 +00:00
fi
2015-03-04 21:52:45 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cxx_link_ok" >&5
$as_echo "$libc_cv_cxx_link_ok" >&6; }
if test $libc_cv_cxx_link_ok != yes; then :
CXX=
fi
2007-06-08 03:17:15 +00:00
2015-12-03 04:58:15 +00:00
if test "`cd $srcdir; pwd -P`" = "`pwd -P`"; then
2010-12-25 01:14:37 +00:00
as_fn_error $? "you must configure in a separate build directory" "$LINENO" 5
2007-06-08 03:17:15 +00:00
fi
2002-10-17 23:48:55 +00:00
2009-04-05 18:49:28 +00:00
# This will get text that should go into config.make.
config_vars=
# Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
# Check whether --with-gd was given.
2010-07-10 02:25:39 +00:00
if test "${with_gd+set}" = set; then :
2009-04-05 18:49:28 +00:00
withval=$with_gd; case "$with_gd" in
yes|''|no) ;;
*) libgd_include="-I$withval/include"
libgd_ldflags="-L$withval/lib" ;;
2007-06-08 03:17:15 +00:00
esac
1997-07-14 21:49:20 +00:00
2009-04-05 18:49:28 +00:00
fi
1997-07-14 21:49:20 +00:00
2009-04-05 18:49:28 +00:00
# Check whether --with-gd-include was given.
2010-07-10 02:25:39 +00:00
if test "${with_gd_include+set}" = set; then :
2009-04-05 18:49:28 +00:00
withval=$with_gd_include; case "$with_gd_include" in
''|no) ;;
*) libgd_include="-I$withval" ;;
1997-07-14 21:49:20 +00:00
esac
2009-04-05 18:49:28 +00:00
fi
1997-07-14 21:49:20 +00:00
2000-09-05 18:56:16 +00:00
2009-04-05 18:49:28 +00:00
# Check whether --with-gd-lib was given.
2010-07-10 02:25:39 +00:00
if test "${with_gd_lib+set}" = set; then :
2009-04-05 18:49:28 +00:00
withval=$with_gd_lib; case "$with_gd_lib" in
''|no) ;;
*) libgd_ldflags="-L$withval" ;;
1997-07-14 21:49:20 +00:00
esac
2000-02-28 21:16:38 +00:00
fi
2002-10-19 20:07:18 +00:00
2009-04-05 18:49:28 +00:00
if test -n "$libgd_include"; then
config_vars="$config_vars
CFLAGS-memusagestat.c = $libgd_include"
fi
if test -n "$libgd_ldflags"; then
config_vars="$config_vars
libgd-LDFLAGS = $libgd_ldflags"
fi
2005-11-08 01:21:32 +00:00
2009-04-05 18:49:28 +00:00
# Check whether --with-binutils was given.
2010-07-10 02:25:39 +00:00
if test "${with_binutils+set}" = set; then :
2009-04-05 18:49:28 +00:00
withval=$with_binutils; path_binutils=$withval
else
path_binutils=''
fi
2009-04-02 17:00:46 +00:00
2009-04-05 18:49:28 +00:00
# Check whether --with-selinux was given.
2010-07-10 02:25:39 +00:00
if test "${with_selinux+set}" = set; then :
2009-04-05 18:49:28 +00:00
withval=$with_selinux; with_selinux=$withval
else
with_selinux=auto
fi
* Makefile (subdir-target-args): New variable.
($(all-subdirs-targets)): Use it in place of -C option.
* Rules: Use $(..) instead of ../ if it's already defined.
* Makeconfig (subdir-srcdirs): New variable.
* csu/Makefile (all-Banner-files): Use it.
* configure.in (--enable-add-ons): Set to "yes" by default.
Handle absolute add-on directory names when looking for configure
fragments. Also look for sysdeps/*/preconfigure fragments in add-ons.
Require add-on configure to set $libc_add_on_canonical, use
that in $add_ons_sfx. Substitute add_on_subdirs with computed list
of subdir names each add-on configure set in libc_add_on_subdirs.
* configure: Regenerated.
* Makefile (%/preconfigure: %/preconfigure.in): New pattern rule.
* config.make.in (add-on-subdirs): New substituted variable.
* Makeconfig (all-subdirs): Include $(add-on-subdirs).
Remove $(add-ons), $(sysdep-subdirs).
Don't filter out $(sysdep-inhibit-subdirs).
($(common-objpfx)sysd-dirs): Target removed. Don't include it.
($(common-objpfx)sysd-sorted): Rewritten to feed Depend and Subdirs
files together to gen-sorted.awk, and $(subdirs) via -v.
(subdirs): Remove magic reordering for mach and hurd.
* scripts/gen-sorted.awk: Use subdirs from command line.
Process Subdirs and Depend files directly.
Let Subdirs files use "first dir" and "inhibit dir".
Always move elf to the end of the list.
* hurd/Depend: New file.
* sysdeps/mach/Subdirs: Use "first mach".
* Makefile (dist-separate): Remove linuxthreads.
(dist-separate-linuxthreads): Variable removed.
(glibc-%.tar rule): Use $(sysdeps-add-ons).
* Makerules ($(common-objpfx)Versions.v.i): Use $(subdirs),
not $(all-subdirs).
(sysdep-makefiles): Use $(sysdirs).
(sysdirs): Remove export.
($(+sysdir_pfx)sysd-rules): Handle absolute directory names in
$(config-sysdirs).
(+sysdir_pfx): Variable removed.
(sysd-rules): Use $(common-objpfx) in place of it.
(sysdirs): Variable moved to ...
* Makeconfig (sysdirs): ... here.
Handle absolute directory names in $(config-sysdirs).
(full_config_sysdirs): Variable removed.
* csu/Makefile: Use $(sysdirs) in vpath directive.
* math/Makefile (ulps-file): Use $(sysdirs).
* sysdeps/gnu/Makefile (errlist-c): Likewise.
($(objpfx)errlist-compat.c): Likewise.
* Makeconfig (all-Subdirs-files): Likewise.
($(common-objpfx)config.status): Likewise.
* configure.in (sysnames): Handle absolute add-on directory names.
(sysdeps_add_ons): New variable, AC_SUBST it.
Compute which add-ons contributed sysdeps directories.
* configure: Regenerated.
* config.make.in (sysdeps-add-ons): New substituted variable.
* Makerules (+sysdep_dirs, +sysdep-includes): Variables moved ...
* Makeconfig: ... to here.
(+sysdep_dirs): Append $(sysdeps-add-ons) here.
(+includes): Remove $(objpfx) include, already in $(+sysdep_dirs).
Remove $(includes).
(sysdep-makeconfigs): Use $(+sysdep_dirs).
($(common-objpfx)shlib-versions.v.i): Likewise.
* Makeconfig: Remove hair to set Makeconfig-add-on.
* sysdeps/unix/Makefile (sysdirs): Remove export.
(asm_CPP): Variable removed.
($(common-objpfx)sysd-syscalls): Pass them directly for the script.
* sysdeps/posix/Makefile: New file.
* Makerules (L_tmpnam, TMP_MAX, L_ctermid, L_cuserid): Set non-posix
values here with ?=.
* stdlib/gen-mpn-copy: File removed.
* stdlib/Makefile (distribute): Remove it.
* configure.in: Don't grok --with-gmp.
* configure: Regenerated.
* configure.in (libc_cv_idn): Don't check it; libidn/configure does it.
* configure: Regenerated.
* bare: Directory removed, saved in ports repository.
2006-02-28 07:11:04 +00:00
2004-07-20 22:14:59 +00:00
* Makefile (subdir-target-args): New variable.
($(all-subdirs-targets)): Use it in place of -C option.
* Rules: Use $(..) instead of ../ if it's already defined.
* Makeconfig (subdir-srcdirs): New variable.
* csu/Makefile (all-Banner-files): Use it.
* configure.in (--enable-add-ons): Set to "yes" by default.
Handle absolute add-on directory names when looking for configure
fragments. Also look for sysdeps/*/preconfigure fragments in add-ons.
Require add-on configure to set $libc_add_on_canonical, use
that in $add_ons_sfx. Substitute add_on_subdirs with computed list
of subdir names each add-on configure set in libc_add_on_subdirs.
* configure: Regenerated.
* Makefile (%/preconfigure: %/preconfigure.in): New pattern rule.
* config.make.in (add-on-subdirs): New substituted variable.
* Makeconfig (all-subdirs): Include $(add-on-subdirs).
Remove $(add-ons), $(sysdep-subdirs).
Don't filter out $(sysdep-inhibit-subdirs).
($(common-objpfx)sysd-dirs): Target removed. Don't include it.
($(common-objpfx)sysd-sorted): Rewritten to feed Depend and Subdirs
files together to gen-sorted.awk, and $(subdirs) via -v.
(subdirs): Remove magic reordering for mach and hurd.
* scripts/gen-sorted.awk: Use subdirs from command line.
Process Subdirs and Depend files directly.
Let Subdirs files use "first dir" and "inhibit dir".
Always move elf to the end of the list.
* hurd/Depend: New file.
* sysdeps/mach/Subdirs: Use "first mach".
* Makefile (dist-separate): Remove linuxthreads.
(dist-separate-linuxthreads): Variable removed.
(glibc-%.tar rule): Use $(sysdeps-add-ons).
* Makerules ($(common-objpfx)Versions.v.i): Use $(subdirs),
not $(all-subdirs).
(sysdep-makefiles): Use $(sysdirs).
(sysdirs): Remove export.
($(+sysdir_pfx)sysd-rules): Handle absolute directory names in
$(config-sysdirs).
(+sysdir_pfx): Variable removed.
(sysd-rules): Use $(common-objpfx) in place of it.
(sysdirs): Variable moved to ...
* Makeconfig (sysdirs): ... here.
Handle absolute directory names in $(config-sysdirs).
(full_config_sysdirs): Variable removed.
* csu/Makefile: Use $(sysdirs) in vpath directive.
* math/Makefile (ulps-file): Use $(sysdirs).
* sysdeps/gnu/Makefile (errlist-c): Likewise.
($(objpfx)errlist-compat.c): Likewise.
* Makeconfig (all-Subdirs-files): Likewise.
($(common-objpfx)config.status): Likewise.
* configure.in (sysnames): Handle absolute add-on directory names.
(sysdeps_add_ons): New variable, AC_SUBST it.
Compute which add-ons contributed sysdeps directories.
* configure: Regenerated.
* config.make.in (sysdeps-add-ons): New substituted variable.
* Makerules (+sysdep_dirs, +sysdep-includes): Variables moved ...
* Makeconfig: ... to here.
(+sysdep_dirs): Append $(sysdeps-add-ons) here.
(+includes): Remove $(objpfx) include, already in $(+sysdep_dirs).
Remove $(includes).
(sysdep-makeconfigs): Use $(+sysdep_dirs).
($(common-objpfx)shlib-versions.v.i): Likewise.
* Makeconfig: Remove hair to set Makeconfig-add-on.
* sysdeps/unix/Makefile (sysdirs): Remove export.
(asm_CPP): Variable removed.
($(common-objpfx)sysd-syscalls): Pass them directly for the script.
* sysdeps/posix/Makefile: New file.
* Makerules (L_tmpnam, TMP_MAX, L_ctermid, L_cuserid): Set non-posix
values here with ?=.
* stdlib/gen-mpn-copy: File removed.
* stdlib/Makefile (distribute): Remove it.
* configure.in: Don't grok --with-gmp.
* configure: Regenerated.
* configure.in (libc_cv_idn): Don't check it; libidn/configure does it.
* configure: Regenerated.
* bare: Directory removed, saved in ports repository.
2006-02-28 07:11:04 +00:00
2009-04-05 18:49:28 +00:00
# Check whether --with-headers was given.
2010-07-10 02:25:39 +00:00
if test "${with_headers+set}" = set; then :
2009-04-05 18:49:28 +00:00
withval=$with_headers; sysheaders=$withval
else
sysheaders=''
1998-07-21 20:09:50 +00:00
fi
Update.
1997-10-12 05:09 Ulrich Drepper <drepper@cygnus.com>
* libio/Makefile (routines): Remove iofprintf.
* stdio-common/fprintf.c [USE_IN_LIBIO]: Define _IO_fprintf.
* libio/filedoalloc.c: Use _G_stat64 instead of stat.
* libio/fileops.c (_IO_file_open): Change to take extra argument
indicating whether 32 or 64 bit mode is wanted.
* libio/iofopen.c: Call _IO_file_open with extra argument set to 0.
* libio/iofopen64.c: Call _IO_file_open with extra argument set to 0.
* libio/iolibio.h (_IO_freopen, _IO_freopen64): Likewise.
* libio/iofgetpos.c: Pretty print.
* libio/iofgetpos64.c: Use _IO_fpos64_t for local variable `pos'.
* manual/conf.texi: Document all the _SC_ and _CS_ constants.
* manual/creature.texi: Document _LARGEFILE_SOURCE, _LARGEFILE64_SOURCE
and _FILE_OFFSET_BITS.
* manual/llio.texi: Document truncate and ftruncate.
* manual/stdio.texi: Document positional parameters for printf.
* math/Makefile (headers): Add tgmath.h.
(libm-support): Remove s_lrint, s_llrint, s_lround, and s_llround and
move to ...
(libm-calls): ... here. Add scalbln, s_nextafterx and s_fma.
* math/libm-test.c (lround_test, llround_test): Test for all FP formats
by using FUNC().
* math/libm.map: Add fma, fmaf, fmal, nextafterx, nextafterxf,
nextafterxl, scalbln, scalblnf, scalblnl, lrintf, lrintl, llrintf,
llrintl, lroundf, lroundl, llroundf, and llroundl.
* math/math.h: Document new platform specific macros from mathdef.h.
Remove declaration of lrint, llrint, lround, and llround.
* math/test-double.c: Define TEST_DOUBLE.
* math/test-idouble.c: Likewise.
* math/test-float.c: Define TEST_FLOAT.
* math/test-ifloat.c: Likewise.
* math/tgmath.h: New file.
* math/bits/mathcalls.h: Add nextafterx, scalbln, fma, lrint, llrint,
lround, and llround.
Change second argument of scalbn to `int'.
* sysdeps/libm-ieee754/s_fma.S: New file.
* sysdeps/libm-ieee754/s_fmaf.S: New file.
* sysdeps/libm-ieee754/s_fmal.S: New file.
* sysdeps/libm-i387/s_fma.S: New file.
* sysdeps/libm-i387/s_fmaf.S: New file.
* sysdeps/libm-i387/s_fmal.S: New file.
* sysdeps/libm-i387/s_llrint.S: Change to take double argument.
* sysdeps/libm-i387/s_lrint.S: Likewise.
* sysdeps/libm-i387/s_llrintf.S: New file.
* sysdeps/libm-i387/s_llrintl.S: New file.
* sysdeps/libm-i387/s_lrintf.S: New file.
* sysdeps/libm-i387/s_lrintl.S: New file.
* sysdeps/libm-ieee754/s_llrint.c: Remove version which works on
80bit double.
* sysdeps/libm-ieee754/s_lrint.c: Likewise.
* sysdeps/libm-ieee754/s_llrintf.S: New file.
* sysdeps/libm-ieee754/s_llrintl.S: New file.
* sysdeps/libm-ieee754/s_lrintf.S: New file.
* sysdeps/libm-ieee754/s_lrintl.S: New file.
* sysdeps/libm-i387/s_scalbln.c: New file. Empty file.
* sysdeps/libm-i387/s_scalblnf.c: New file. Empty file.
* sysdeps/libm-i387/s_scalblnl.c: New file. Empty file.
* sysdeps/libm-i387/s_scalbn.c: Add scalbln as alias.
* sysdeps/libm-i387/s_scalbnf.c: Add scalblnf as alias.
* sysdeps/libm-i387/s_scalbnl.c: Add scalblnl as alias.
* sysdeps/libm-ieee754/s_llround.c: Remove version which works on
80bit double.
* sysdeps/libm-ieee754/s_lround.c: Likewise.
* sysdeps/libm-ieee754/s_llroundf.c: Likewise.
* sysdeps/libm-ieee754/s_llroundl.c: Likewise.
* sysdeps/libm-ieee754/s_lroundf.c: Likewise.
* sysdeps/libm-ieee754/s_lroundl.c: Likewise.
* sysdeps/libm-ieee754/s_nextafterl.c: Add alias fo nextafterxl.
* sysdeps/libm-ieee754/s_nextafterx.c: New file.
* sysdeps/libm-ieee754/s_nextafterxf.c: New file.
* sysdeps/libm-ieee754/s_nextafterxl.c: New file.
* sysdeps/libm-ieee754/s_scalbln.c: New file.
* sysdeps/libm-ieee754/s_scalblnf.c: New file.
* sysdeps/libm-ieee754/s_scalblnl.c: New file.
* sysdeps/libm-ieee754/s_scalbn.c: Change to take `int' as second arg.
* sysdeps/libm-ieee754/s_scalbnf.c: Likewise.
* sysdeps/libm-ieee754/s_scalbnl.c: Likewise.
* stdlib/stdlib.h: Protect declarations of __strto*l_internal functions
by #ifdefs since they are duplicated in inttypes.h.
* sysdeps/wordsize-32/inttypes.h: Add definition of strtoimax and
strtoumax plus needed declarations.
* sysdeps/generic/confname.h (_SC_AIO_LISTIO_MAX): Fix typo.
1997-10-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* locale/programs/locfile.c (locfile_read): Correct while loop.
* db2/makedb.c (main): Add missing parameter for error output.
(process_input): Likewise.
* resolv/gethnamaddr.c (getanswer): Rewrite a bit to avoid warning.
1997-10-12 05:05 Ulrich Drepper <drepper@cygnus.com>
* libc-map: Add __bzero, __mempcpy.
1997-10-10 18:51 David S. Miller <davem@tanya.rutgers.edu>
* sysdeps/unix/sysv/linux/sparc/bits/ioctls.h: Remove dependencies
on kernel_termios.h
1997-10-09 10:24 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
Add the changes from the Solaris 2.6 header files, use the new public
defines/functions.
* nis/nis_addmember.c: Updated.
* nis/nis_checkpoint.c: Updated.
* nis/nis_creategroup.c: updated.
* nis/nis_destroygroup.c: Updated.
* nis/nis_getservlist.c: Updated.
* nis/nis_ismember.c: Updated.
* nis/nis_lookup.c: Updated.
* nis/nis_modify.c: Updated.
* nis/nis_ping.c: Updated.
* nis/nis_print.c: Updated.
* nis/nis_print_group_entry.c: Updated.
* nis/nis_remove.c: Updated.
* nis/nis_removemember.c: Updated.
* nis/nis_xdr.c: Updated.
* nis/nss_nisplus/nisplus-alias.c: Updated.
* nis/nss_nisplus/nisplus-ethers.c: Updated.
* nis/nss_nisplus/nisplus-hosts.c: Updated.
* nis/nss_nisplus/nisplus-network.c: Updated.
* nis/nss_nisplus/nisplus-parser.c: Updated.
* nis/nss_nisplus/nisplus-proto.c: Updated.
* nis/nss_nisplus/nisplus-rpc.c: Updated.
* nis/nss_nisplus/nisplus-service.c: Updated.
* nis/rpcsvc/nis.h: Updated.
* nis/rpcsvc/nis.x: Updated.
* nis/rpcsvc/nis_object.x: Updated.
* nis/rpcsvc/nis_tags.h: Updated.
* nis/rpcsvc/nislib.h: Updated.
* nis/lckcache.c: Removed, since Sun has dropped the directory
signatures. The old cache version is now a security risk and not
longer supported by Sun.
* nis/nis_cache.c: Likewise.
* nis/rpcsvc/nis_cache.h: Likewise.
* nis/rpcsvc/nis_cache.x: Likewise.
* nis/nis_call.c: Remove calls to the cache functions.
* nis/libnsl.map: Remove cache and depending functions.
* nis/nis_intern.h: Likewise.
* nis/nis_add.c: Remove #include <rpcsvc/nislib.h>.
* nis/nis_domain_of.c: Likewise.
* nis/nis_domain_of_r.c: Likewise.
* nis/nis_error.c: Likewise.
* nis/nis_file.c: Likewise.
* nis/nis_local_names.c: Likewise.
* nis/nis_mkdir.c: Likewise.
* nis/nis_rmdir.c: Likewise.
* nis/nis_subr.c: Likewise.
* nis/nis_verifygroup.c: Likewise.
* nis/nis_clone.c: Removed, replaced by ...
* nis/nis_clone_dir.c: New.
* nis/nis_clone_obj.c: New.
* nis/nis_clone_res.c: New.
* nis/nis_table.c: Fixed bugs shown through the new clone functions.
* nis/nis_defaults.c: Fixed a lot of race conditions.
* nis/nis_free.c: Rewritten.
* sunrpc/auth_des.c: Fix use of free'ed pointer.
* nis/Makefile (libnsl-routines): Remove nis_clone, nis_cache and
lckcache. Add nis_clone_dir, nis_clone_obj, and nis_clone_res.
1997-10-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* wctype/test_wctype.c (TEST): Add parens to avoid ambiguity.
1997-10-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* include/features.h: Don't crash if _XOPEN_SOURCE is defined to
be empty.
1997-10-09 05:54 Ulrich Drepper <drepper@cygnus.com>
* nss/digits_dots.c: Place `result' in resbuf and not in `buffer'.
* nss/getXXbyYY_r.c: Make sure digits_dots.c sees `resbuf' as
struct and not a pointer. Little optimizations.
1997-10-09 05:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/stub/getenv.c: Remove unused file.
* sysdeps/stub/lxstat.c: Likewise.
* sysdeps/stub/morecore.c: Likewise.
* sysdeps/stub/putenv.c: Likewise.
* sysdeps/stub/sbrk.c: Likewise.
* sysdeps/stub/setenv.c: Likewise.
* sysdeps/stub/sysd-stdio.c: Likewise.
* sysdeps/stub/sysdep.h: Likewise.
Reported by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-09 04:58 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Add __bzero definition to DWARF2 unwind test.
Reported by David S. Miller <davem@caip.rutgers.edu>.
1997-10-07 Paul Eggert <eggert@twinsun.com>
* intl/loadmsgcat.c (_nl_load_domain):
Fix &&/|| typo when checking file size.
Check for overflow when stuffing off_t into size_t.
1997-10-07 18:11 Ulrich Drepper <drepper@cygnus.com>
* time/africa: Update from tzdata1997i.
1997-10-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* posix/globtest.sh: Add arguments for name of dynamic linker and
call dynamic linker to execute globtest.
* posix/Makefile (tests): Supply arguments to globtest.sh.
1997-10-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* nis/rpcsvc/ypupd.h: Add missing __END_DECLS.
1997-10-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libc.map: Add mempcpy, prctl.
1997-09-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/memcmp.c: Avoid warnings.
* sysdeps/generic/memset.c: Likewise.
* sysdeps/generic/strchr.c: Likewise.
* sysdeps/generic/strlen.c: Likewise.
1997-09-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/Makefile ($(objpfx)mtrace): Fix typo.
1997-09-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/dl-machine.h (elf_machine_rela): Fix last change.
The R_68K_GLOB_DAT and R_68K_JMP_SLOT relocations really ignore
the addend, Richard.
(elf_machine_fixup_plt): Don't add the addend.
(elf_machine_plt_value): New function.
* sysdeps/alpha/dl-machine.h (elf_machine_plt_value): New
function.
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_plt_value): New
function.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_plt_value): New
function.
* sysdeps/powerpc/dl-machine.h (elf_machine_plt_value): New
function.
* sysdeps/i386/dl-machine.h (elf_machine_plt_value): New
function.
* elf/dl-runtime.c (fixup, profile_fixup): Don't add in the
addend, instead let the machine dependent setup decide.
1997-09-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/m68020/bits/string.h: New file.
1997-10-07 04:27 Richard Henderson <rth@cygnus.com>
* Makeconfig (+includes): Add -I$(objpfx).
* stdlib/longlong.h [__sparc__]: Prototype __udiv_qrnnd.
* sysdeps/alpha/setjmp.S: __setjmp is the same as _setjmp. Make
the former a strong symbol and the later a weak alias.
* sysdeps/sparc/sparc32/setjmp.S: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S: Likewise.
1997-10-06 21:01 David S. Miller <davem@tanya.rutgers.edu>
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Make ino_t
64-bits.
* sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h: Make st_ino
member 64-bits as well, to match the kernel.
1997-10-06 19:35 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc64/sub_n.S: Fix typo.
Patch by Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>.
1997-10-06 01:09 Zack Weinberg <zack@rabi.phys.columbia.edu>
* time/README: Correct list of files from tzcode package. Add
contact information for tzcode/tzdata maintainers. Correct
spelling of author's name. Compact lists.
1997-10-06 01:48 Ulrich Drepper <drepper@cygnus.com>
* malloc/malloc.h: Remove hook definition without caller argument.
* malloc/malloc.c: Likewise.
* string/tester.c: Correct strsep test.
* string/bits/string2.h: Define __string2_1bptr_p and use it.
Patch by David S. Miller <davem@tanya.rutgers.edu>.
* math/Makefile (routines): Add s_clog10.
* math/libm-test.c: Add test for clog10.
* math/libm.map: Add clog10{,f,l}.
* math/bits/cmathcalls.h [__USE_GNU]: Add clog10.
* sysdeps/libm-ieee754/s_clog10.c: New file.
* sysdeps/libm-ieee754/s_clog10f.c: New file.
* sysdeps/libm-ieee754/s_clog10l.c: New file.
* manual/math.texi: Describe clog10.
* config.h.in: Add USE_REGPARMS and define internal_function based on
this.
* configure.in: Define USE_REGPARMS for ix86 machines.
* gmon/gmon.c: Mark write_hist, write_call_graph and write_bb_counts
as internal functions.
* inet/getnameinfo.c: Likewise for nrl_domainname.
* inet/getnetgrent_r.c: Likewise for __internal_setnetgrent_reuse.
* inet/rcmd.c: Likewise for __icheckhost.
* intl/dcgettext.c: Likewise for category_to_name and
guess_category_value.
* intl/localealias.c: Likewise for read_alias_file.
* io/fts.c: Likewise for fts_alloc, fts_build, fts_lfree,
fts_maxarglen, fts_padjust, fts_palloc, fts_sort, and fts_stat.
* libio/genops.c: Likewise for save_for_backup.
* malloc/malloc.c (chunk_free, chunk_alloc, chunk_realloc, chunk_align,
main_trim, heap_trim): Likewise.
* malloc/mtrace.c (tr_where): Likewise.
* misc/fstab.c (mnt2fs): Likewise.
* misc/getttyent.c (skip, value): Likewise.
* misc/syslog.c (openlog_internal): Likewise.
* misc/tsearch.c (trecurse, tdestroy_internal): Likewise.
* nss/nsswitch.c (nss_lookup_function, nss_parse_file, nss_getline,
nss_parse_service_list, nss_new_service): Likewise.
* posix/wordexp.c (parse_dollars, parse_backtick, eval_expr): Likewise.
* resolv/inet_ntop.c (inet_ntop4, inet_ntop6): Likewise.
* resolv/inet_pton.c (inet_pton4, inet_pton6): Likewise.
* resolv/res_init.c (res_setoptions): Likewise.
* stdio-common/printf_fp.c (group_number): Likewise.
* stdio-common/vfprintf.c (buffered_vfprintf, group_number): Likewise.
* stdlib/fmtmsg.c (internal_addseverity): Likewise.
* sunrpc/auth_des.c (synchronize): Likewise.
* sunrpc/auth_unix.c (marshal_new_auth): Likewise.
* sunrpc/clnt_perr.c (auth_errmsg): Likewise.
* sunrpc/key_call.c (key_call): Likewise.
* sunprc/pmap_rmt.c (getbroadcastnets): Likewise.
* sunrpc/svc_tcp.c (makefd_xprt): Likewise.
* sunrpc/svcauth_des.c (cache_init, cache_spot, cache_ref, invalidate):
Likewise.
* sunrpc/xdr_rec.c (fix_buf_size, skip_input_bytes, flush_out,
set_input_fragment, get_input_bytes): Likewise.
* sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path,
phys_pages_info): Likewise.
* sysdeps/unix/sysv/linux/if_index.c (opensock): Likewise.
* sysdeps/unix/sysv/linux/poll.c (__emulate_poll): Likewise.
* sysdeps/unix/sysv/linux/readv.c (__atomic_readv_replacement):
Likewise.
* sysdeps/unix/sysv/linux/readv.c (__atomic_writev_replacement):
Likewise.
* time/strptime.c (strptime_internal): Likewise.
* time/tzfile.c (find_transition, compute_tzname_max): Likewise.
* time/tzset.c (compute_change, tz_compute, tzset_internal): Likewise.
* libc.map: Remove _libio_using_thunks, add _fp_hw and _dl_addr.
* ctype/ctype.h: Pretty print.
* grp/grp.h: Likewise.
* include/libc-symbols.h: Likewise.
* include/limits.h: Likewise.
* include/values.h: Likewise.
* io/fcntl.h: Likewise.
* io/sys/stat.h: Likewise.
* libio/stdio.h: Likewise.
* malloc/malloc.h: Likewise.
* misc/err.h: Likewise.
* misc/regexp.h: Likewise.
* misc/sys/cdefs.h: Likewise.
* misc/sys/file.h: Likewise.
* posix/sys/utsname.h: Likewise.
* posix/sys/wait.h: Likewise.
* pwd/pwd.h: Likewise.
* resolv/netdb.h: Likewise.
* signal/signal.h: Likewise.
* stdlib/stdlib.h: Likewise.
* string/endian.h: Likewise.
* string/memory.h: Likewise.
* sysdeps/mach/hurd/bits/fcntl.h: Likewise.
* sysdeps/mach/hurd/sys/param.h: Likewise.
* sysdeps/unix/sysv/linux/sys/param.h: Likewise.
* termios/termios.h: Likewise.
* wcsmbs/wchar.h: Likewise.
* wctype/wctype.h: Likewise.
* sysdeps/unix/bsd/bsd4.4/wait3.c: Use __WAIT_STATUS in definition.
Implement Large File Support API.
* include/features.h: Add suuport for _LARGEFILE_SOURCE,
_LARGEFILE64_SOURCE, and _FILE_OFFSET_BITS.
* libc.map: Add new functions for LFS.
* dirent/Makefile (routines): Add readdir64 and readdir64_r.
* dirent/dirent.h: Update readdir prototype for LFS and add new
prototypes for above functions.
* io/Makefile (routines): Add xstat64, fxstat64, lxstat64,
statfs64, fstatfs64, lstat64, open64, lseek64, creat64, and ftw64.
* io/creat64.c: New file.
* io/fstat64.c: New file.
* io/lstat64.c: New file.
* io/stat64.c: New file.
* io/ftw64.c: New file.
* io/ftw.c: Rewrite to allow easy definition of ftw64.
* io/ftw.h: Add LFS interface.
* io/fcntl.h: Likewise.
* io/sys/stat.h: Likewise.
* io/sys/statfs.h: Likewise.
* libio/Makefile (routines): Add iofgetpos64, iofopen64, iofsetpos64,
freopen64, fseeko64, and ftello64.
* libcio/fseeko64.c: New file.
* libio/ftello64.c: New file.
* libio/iofgetpos64.c: New file.
* libio/iofopen64.c: New file.
* libio/iofsetpos64.c: New file.
* libio/fileops.c (_IO_file_fopen): Change to use _IO_off64_t.
(_IO_file_attach): Likewise.
(_IO_do_write): Likewise.
(_IO_file_sync): Likewise.
(_IO_file_seek): Likewise.
(_IO_file_seekoff): Likewise. Use _G_stat64.
(_IO_file_fopen64): New function.
(_IO_file_jumps): Initialize showmanyc and imbue.
* libio/genops.c (_IO_default_seekpos): Change to use _IO_fpos64_t.
(_IO_default_seekoff): Likewise.
(_IO_default_seek): Likewise.
(_IO_default_showmanyc, _IO_default_imbue): New functions.
* libio/iofopncook.c (_IO_cookie_seek): Change to use _IO_off64_t.
* libio/iolibio.h: Add prototypes for LFS functions.
* libio/ioseekoff.c: Change to use _IO_fpos64_t.
* libio/ioseekpos.c: Likewise.
* libio/libio.h: Define _IO_fpos64_t and _IO_off64_t.
(_IO_FILE): Move _offset field to end and change type to _IO_off64_t.
(_IO_seekoff, _IO_seekpos): Change prototype.
* libio/libioP.h (_IO_seekoff_t, _IO_seekpos_t, _IO_seek_t): Change
to use _IO_off64_t.
Change prototypes for function from the *ops.c files.
* libio/stdio.h: Add LFS interface definition.
* libio/strops.c (_IO_str_seekoff): Change to use _IO_fpos64_t.
* posix/Makefile (routines): Add pread64 and pwrite64.
* posix/confstr.c: Handle _CS_LFS* requests.
* posix/getconf.c: Handle LFS* requests.
* sysdeps/generic/confname.h: Add _CS_LFS* constants.
* posix/unistd.h: Document _LFS64_LARGEFILE and _LFS64_STDIO.
Define off_t and off64_t appropriately. Change prototypes of
LFS functions.
* posix/sys/types.h: Add LFS types.
* resources/Makefile (routines): Add getrlimit64 and setlimit64.
* resource/sys/resource.h: Change prototypes of LFS functions.
* stdio-common/Makefile (routines): Add tmpfile64.
* stdio-common/tmpfile64.c: New file.
* sysdeps/generic/_G_config.h: Define _G_fpos64_t and _G_off64_t.
Define _G_OPEN64, _G_LSEEK64, _G_FSTAT64.
* sysdeps/unix/sysv/linux/_G_config.h: Likewise.
* sysdeps/generic/bits/resource.h: Add LFS definitions.
* sysdeps/unix/bsd/sun/sunos4/bits/resource.h: Likewise.
* sysdeps/unix/sysv/linux/bits/resource.h: Likewise.
* sysdeps/generic/statfs.h: Use __fsblkcnt_t for some of the fields.
* sysdeps/unix/sysv/linux/bits/statfs.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/statfs.h: Likewise.
* sysdeps/generic/types.h: Define LFS types.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise.
* sysdeps/generic/sys/mman.h: Add LFS definitions.
* sysdeps/unix/sysv/linux/sys/mman.h: Likewise.
* sysdeps/generic/mach/hurd/bits/fcntl.h: Add flock LFS extensions.
* sysdeps/unix/bsd/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise.
* sysdeps/generic/mach/hurd/bits/stat.h: Add stat LFS extensions.
* sysdeps/unix/bsd/bits/stat.h: Likewise.
* sysdeps/unix/bsd/osf/alpha/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise.
* sysdeps/unix/sysv/sysv4/i386/bits/stat.h: Likewise.
* sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h: Likewise.
* sysdeps/posix/open64.c: New file.
* sysdeps/stub/fstatfs64.c: New file.
* sysdeps/stub/fxstat64.c: New file.
* sysdeps/stub/getrlimit64.c: New file.
* sysdeps/stub/lseek64.c: New file.
* sysdeps/stub/lxstat64.c: New file.
* sysdeps/stub/open64.c: New file.
* sysdeps/stub/pread64.c: New file.
* sysdeps/stub/pwrite64.c: New file.
* sysdeps/stub/readdir64.c: New file.
* sysdeps/stub/readdir64_r.c: New file.
* sysdeps/stub/setrlimit64.c: New file.
* sysdeps/stub/statfs64.c: New file.
* sysdeps/stub/xstat64.c: New file.
* sysdeps/unix/sysv/linux/llseek.c: Define as __llseek and make
llseek and lseek64 weak aliases.
* sysdeps/unix/sysv/linux/lseek64.c: New file. Empty.
* sysdeps/unix/sysv/linux/alpha/bits/dirent.h: New file.
* sysdeps/unix/sysv/linux/bits/dirent.h: Add LFS definitions.
* sysdeps/posix/tempname.c: Add extra argument to trigger use of
open64.
* sysdeps/stub/tempname.c: Likewise.
* stdio-common/tempnam.c: Call __stdio_gen_tempname with extra
argument.
* stdio-common/tmpfile.c: Likewise.
* stdio-common/tmpnam.c: Likewise.
* stdio-common/tmpnam_r.c: Likewise.
* libio/libioP.h: Add definition ofr showmanyc and imbue callbacks.
* libio/fileops.c (_IO_file_jumps): Initialize showmanyc and imbue.
* libio/iofopncook.c (_IO_cookie_jumps): Likewise.
* libio/iopopen.c (_IO_proc_jumps): Likewise.
* libio/memstream.c (_IO_mem_jumps): Likewise.
* libio/obprintf.c (_IO_obstack_jumps): Likewise.
* libio/vsnprintf.c (_IO_strn_jumps): Likewise.
* libio/strops.c (_IO_str_jumps): Likewise.
* manual/arith.texi: Add a few words why cabs should be used.
* manual/llio.texi: Describe sync, fsync, fdatasync.
Tell about cleanup handlers & fcntl,lseek,write,read,close,open.
* manual/process.texi: Tell about cleanup handlers & system,waitpid,
wait.
* manual/signal.texi: Likewise for pause.
* manual/terminal.texi: Likewise for tcdrain.
* manual/time.texi: Document nanosleep.
* posix/exevp.c: Don't use nested function.
* stdlib/ucontext.h: New file.
* sysdeps/i386/sys/ucontext.h: New file. SysV/i386 API definitions.
* sunrpc/xcrypt.c (hexval): Make a macro for efficiency.
* sysdeps/i386/setjmp.h: Make `here` label local.
* sysdeps/i386/elf/start.S: Define _fp_hw "variable".
* sysdeps/stub/fstatfs.c: Correct warning.
* sysdeps/stub/fxstat.c: Likewise.
* sysdeps/stub/lxstat.c: Likewise.
* sysdeps/unix/sysv/i386/i686/time.S: New file.
1997-10-03 20:56 Jason Merrill <jason@yorick.cygnus.com>
* malloc/obstack.h (obstack_empty_p): New macro.
1997-10-04 17:41 Philip Blundell <Philip.Blundell@pobox.com>
* inet/getnameinfo.c (getnameinfo): Remove spurious `#if INET6'.
1997-09-30 Zack Weinberg <zack@rabi.phys.columbia.edu>
* maint.texi: Add copyright terms for libdb (Sleepycat, Harvard).
Document new --with-binutils switch; delete reference to
--with-gnu-as, --with-gnu-ld, --with-gnu-binutils.
Add to description of --without-fp: a kernel FPU emulator
is adequate (from FAQ)
* INSTALL: Regenerated.
1997-09-30 17:29 Richard Henderson <rth@cygnus.com>
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Move
_dl_hwcap declaration to ...
(elf_machine_fixup_plt): ... here.
1997-10-12 04:05:44 +00:00
2011-06-11 11:16:49 +00:00
2012-08-17 21:05:53 +00:00
2011-06-11 11:16:49 +00:00
# Check whether --with-default-link was given.
if test "${with_default_link+set}" = set; then :
withval=$with_default_link; use_default_link=$withval
else
2011-06-11 12:14:37 +00:00
use_default_link=default
2011-06-11 11:16:49 +00:00
fi
2018-08-17 09:44:39 +00:00
# Check whether --with-nonshared-cflags was given.
if test "${with_nonshared_cflags+set}" = set; then :
withval=$with_nonshared_cflags; extra_nonshared_cflags=$withval
else
extra_nonshared_cflags=
fi
2022-01-14 19:16:05 +00:00
# Check whether --with-rtld-early-cflags was given.
if test "${with_rtld_early_cflags+set}" = set; then :
withval=$with_rtld_early_cflags; rtld_early_cflags=$withval
else
rtld_early_cflags=
fi
2021-12-04 19:25:53 +00:00
# Check whether --with-timeoutfactor was given.
if test "${with_timeoutfactor+set}" = set; then :
withval=$with_timeoutfactor; timeoutfactor=$withval
else
timeoutfactor=1
fi
cat >>confdefs.h <<_ACEOF
#define TIMEOUTFACTOR $timeoutfactor
_ACEOF
2009-04-05 18:49:28 +00:00
# Check whether --enable-sanity-checks was given.
2010-07-10 02:25:39 +00:00
if test "${enable_sanity_checks+set}" = set; then :
2009-04-05 18:49:28 +00:00
enableval=$enable_sanity_checks; enable_sanity=$enableval
else
enable_sanity=yes
Update.
1997-10-12 05:09 Ulrich Drepper <drepper@cygnus.com>
* libio/Makefile (routines): Remove iofprintf.
* stdio-common/fprintf.c [USE_IN_LIBIO]: Define _IO_fprintf.
* libio/filedoalloc.c: Use _G_stat64 instead of stat.
* libio/fileops.c (_IO_file_open): Change to take extra argument
indicating whether 32 or 64 bit mode is wanted.
* libio/iofopen.c: Call _IO_file_open with extra argument set to 0.
* libio/iofopen64.c: Call _IO_file_open with extra argument set to 0.
* libio/iolibio.h (_IO_freopen, _IO_freopen64): Likewise.
* libio/iofgetpos.c: Pretty print.
* libio/iofgetpos64.c: Use _IO_fpos64_t for local variable `pos'.
* manual/conf.texi: Document all the _SC_ and _CS_ constants.
* manual/creature.texi: Document _LARGEFILE_SOURCE, _LARGEFILE64_SOURCE
and _FILE_OFFSET_BITS.
* manual/llio.texi: Document truncate and ftruncate.
* manual/stdio.texi: Document positional parameters for printf.
* math/Makefile (headers): Add tgmath.h.
(libm-support): Remove s_lrint, s_llrint, s_lround, and s_llround and
move to ...
(libm-calls): ... here. Add scalbln, s_nextafterx and s_fma.
* math/libm-test.c (lround_test, llround_test): Test for all FP formats
by using FUNC().
* math/libm.map: Add fma, fmaf, fmal, nextafterx, nextafterxf,
nextafterxl, scalbln, scalblnf, scalblnl, lrintf, lrintl, llrintf,
llrintl, lroundf, lroundl, llroundf, and llroundl.
* math/math.h: Document new platform specific macros from mathdef.h.
Remove declaration of lrint, llrint, lround, and llround.
* math/test-double.c: Define TEST_DOUBLE.
* math/test-idouble.c: Likewise.
* math/test-float.c: Define TEST_FLOAT.
* math/test-ifloat.c: Likewise.
* math/tgmath.h: New file.
* math/bits/mathcalls.h: Add nextafterx, scalbln, fma, lrint, llrint,
lround, and llround.
Change second argument of scalbn to `int'.
* sysdeps/libm-ieee754/s_fma.S: New file.
* sysdeps/libm-ieee754/s_fmaf.S: New file.
* sysdeps/libm-ieee754/s_fmal.S: New file.
* sysdeps/libm-i387/s_fma.S: New file.
* sysdeps/libm-i387/s_fmaf.S: New file.
* sysdeps/libm-i387/s_fmal.S: New file.
* sysdeps/libm-i387/s_llrint.S: Change to take double argument.
* sysdeps/libm-i387/s_lrint.S: Likewise.
* sysdeps/libm-i387/s_llrintf.S: New file.
* sysdeps/libm-i387/s_llrintl.S: New file.
* sysdeps/libm-i387/s_lrintf.S: New file.
* sysdeps/libm-i387/s_lrintl.S: New file.
* sysdeps/libm-ieee754/s_llrint.c: Remove version which works on
80bit double.
* sysdeps/libm-ieee754/s_lrint.c: Likewise.
* sysdeps/libm-ieee754/s_llrintf.S: New file.
* sysdeps/libm-ieee754/s_llrintl.S: New file.
* sysdeps/libm-ieee754/s_lrintf.S: New file.
* sysdeps/libm-ieee754/s_lrintl.S: New file.
* sysdeps/libm-i387/s_scalbln.c: New file. Empty file.
* sysdeps/libm-i387/s_scalblnf.c: New file. Empty file.
* sysdeps/libm-i387/s_scalblnl.c: New file. Empty file.
* sysdeps/libm-i387/s_scalbn.c: Add scalbln as alias.
* sysdeps/libm-i387/s_scalbnf.c: Add scalblnf as alias.
* sysdeps/libm-i387/s_scalbnl.c: Add scalblnl as alias.
* sysdeps/libm-ieee754/s_llround.c: Remove version which works on
80bit double.
* sysdeps/libm-ieee754/s_lround.c: Likewise.
* sysdeps/libm-ieee754/s_llroundf.c: Likewise.
* sysdeps/libm-ieee754/s_llroundl.c: Likewise.
* sysdeps/libm-ieee754/s_lroundf.c: Likewise.
* sysdeps/libm-ieee754/s_lroundl.c: Likewise.
* sysdeps/libm-ieee754/s_nextafterl.c: Add alias fo nextafterxl.
* sysdeps/libm-ieee754/s_nextafterx.c: New file.
* sysdeps/libm-ieee754/s_nextafterxf.c: New file.
* sysdeps/libm-ieee754/s_nextafterxl.c: New file.
* sysdeps/libm-ieee754/s_scalbln.c: New file.
* sysdeps/libm-ieee754/s_scalblnf.c: New file.
* sysdeps/libm-ieee754/s_scalblnl.c: New file.
* sysdeps/libm-ieee754/s_scalbn.c: Change to take `int' as second arg.
* sysdeps/libm-ieee754/s_scalbnf.c: Likewise.
* sysdeps/libm-ieee754/s_scalbnl.c: Likewise.
* stdlib/stdlib.h: Protect declarations of __strto*l_internal functions
by #ifdefs since they are duplicated in inttypes.h.
* sysdeps/wordsize-32/inttypes.h: Add definition of strtoimax and
strtoumax plus needed declarations.
* sysdeps/generic/confname.h (_SC_AIO_LISTIO_MAX): Fix typo.
1997-10-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* locale/programs/locfile.c (locfile_read): Correct while loop.
* db2/makedb.c (main): Add missing parameter for error output.
(process_input): Likewise.
* resolv/gethnamaddr.c (getanswer): Rewrite a bit to avoid warning.
1997-10-12 05:05 Ulrich Drepper <drepper@cygnus.com>
* libc-map: Add __bzero, __mempcpy.
1997-10-10 18:51 David S. Miller <davem@tanya.rutgers.edu>
* sysdeps/unix/sysv/linux/sparc/bits/ioctls.h: Remove dependencies
on kernel_termios.h
1997-10-09 10:24 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
Add the changes from the Solaris 2.6 header files, use the new public
defines/functions.
* nis/nis_addmember.c: Updated.
* nis/nis_checkpoint.c: Updated.
* nis/nis_creategroup.c: updated.
* nis/nis_destroygroup.c: Updated.
* nis/nis_getservlist.c: Updated.
* nis/nis_ismember.c: Updated.
* nis/nis_lookup.c: Updated.
* nis/nis_modify.c: Updated.
* nis/nis_ping.c: Updated.
* nis/nis_print.c: Updated.
* nis/nis_print_group_entry.c: Updated.
* nis/nis_remove.c: Updated.
* nis/nis_removemember.c: Updated.
* nis/nis_xdr.c: Updated.
* nis/nss_nisplus/nisplus-alias.c: Updated.
* nis/nss_nisplus/nisplus-ethers.c: Updated.
* nis/nss_nisplus/nisplus-hosts.c: Updated.
* nis/nss_nisplus/nisplus-network.c: Updated.
* nis/nss_nisplus/nisplus-parser.c: Updated.
* nis/nss_nisplus/nisplus-proto.c: Updated.
* nis/nss_nisplus/nisplus-rpc.c: Updated.
* nis/nss_nisplus/nisplus-service.c: Updated.
* nis/rpcsvc/nis.h: Updated.
* nis/rpcsvc/nis.x: Updated.
* nis/rpcsvc/nis_object.x: Updated.
* nis/rpcsvc/nis_tags.h: Updated.
* nis/rpcsvc/nislib.h: Updated.
* nis/lckcache.c: Removed, since Sun has dropped the directory
signatures. The old cache version is now a security risk and not
longer supported by Sun.
* nis/nis_cache.c: Likewise.
* nis/rpcsvc/nis_cache.h: Likewise.
* nis/rpcsvc/nis_cache.x: Likewise.
* nis/nis_call.c: Remove calls to the cache functions.
* nis/libnsl.map: Remove cache and depending functions.
* nis/nis_intern.h: Likewise.
* nis/nis_add.c: Remove #include <rpcsvc/nislib.h>.
* nis/nis_domain_of.c: Likewise.
* nis/nis_domain_of_r.c: Likewise.
* nis/nis_error.c: Likewise.
* nis/nis_file.c: Likewise.
* nis/nis_local_names.c: Likewise.
* nis/nis_mkdir.c: Likewise.
* nis/nis_rmdir.c: Likewise.
* nis/nis_subr.c: Likewise.
* nis/nis_verifygroup.c: Likewise.
* nis/nis_clone.c: Removed, replaced by ...
* nis/nis_clone_dir.c: New.
* nis/nis_clone_obj.c: New.
* nis/nis_clone_res.c: New.
* nis/nis_table.c: Fixed bugs shown through the new clone functions.
* nis/nis_defaults.c: Fixed a lot of race conditions.
* nis/nis_free.c: Rewritten.
* sunrpc/auth_des.c: Fix use of free'ed pointer.
* nis/Makefile (libnsl-routines): Remove nis_clone, nis_cache and
lckcache. Add nis_clone_dir, nis_clone_obj, and nis_clone_res.
1997-10-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* wctype/test_wctype.c (TEST): Add parens to avoid ambiguity.
1997-10-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* include/features.h: Don't crash if _XOPEN_SOURCE is defined to
be empty.
1997-10-09 05:54 Ulrich Drepper <drepper@cygnus.com>
* nss/digits_dots.c: Place `result' in resbuf and not in `buffer'.
* nss/getXXbyYY_r.c: Make sure digits_dots.c sees `resbuf' as
struct and not a pointer. Little optimizations.
1997-10-09 05:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/stub/getenv.c: Remove unused file.
* sysdeps/stub/lxstat.c: Likewise.
* sysdeps/stub/morecore.c: Likewise.
* sysdeps/stub/putenv.c: Likewise.
* sysdeps/stub/sbrk.c: Likewise.
* sysdeps/stub/setenv.c: Likewise.
* sysdeps/stub/sysd-stdio.c: Likewise.
* sysdeps/stub/sysdep.h: Likewise.
Reported by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-09 04:58 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Add __bzero definition to DWARF2 unwind test.
Reported by David S. Miller <davem@caip.rutgers.edu>.
1997-10-07 Paul Eggert <eggert@twinsun.com>
* intl/loadmsgcat.c (_nl_load_domain):
Fix &&/|| typo when checking file size.
Check for overflow when stuffing off_t into size_t.
1997-10-07 18:11 Ulrich Drepper <drepper@cygnus.com>
* time/africa: Update from tzdata1997i.
1997-10-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* posix/globtest.sh: Add arguments for name of dynamic linker and
call dynamic linker to execute globtest.
* posix/Makefile (tests): Supply arguments to globtest.sh.
1997-10-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* nis/rpcsvc/ypupd.h: Add missing __END_DECLS.
1997-10-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libc.map: Add mempcpy, prctl.
1997-09-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/memcmp.c: Avoid warnings.
* sysdeps/generic/memset.c: Likewise.
* sysdeps/generic/strchr.c: Likewise.
* sysdeps/generic/strlen.c: Likewise.
1997-09-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/Makefile ($(objpfx)mtrace): Fix typo.
1997-09-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/dl-machine.h (elf_machine_rela): Fix last change.
The R_68K_GLOB_DAT and R_68K_JMP_SLOT relocations really ignore
the addend, Richard.
(elf_machine_fixup_plt): Don't add the addend.
(elf_machine_plt_value): New function.
* sysdeps/alpha/dl-machine.h (elf_machine_plt_value): New
function.
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_plt_value): New
function.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_plt_value): New
function.
* sysdeps/powerpc/dl-machine.h (elf_machine_plt_value): New
function.
* sysdeps/i386/dl-machine.h (elf_machine_plt_value): New
function.
* elf/dl-runtime.c (fixup, profile_fixup): Don't add in the
addend, instead let the machine dependent setup decide.
1997-09-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/m68020/bits/string.h: New file.
1997-10-07 04:27 Richard Henderson <rth@cygnus.com>
* Makeconfig (+includes): Add -I$(objpfx).
* stdlib/longlong.h [__sparc__]: Prototype __udiv_qrnnd.
* sysdeps/alpha/setjmp.S: __setjmp is the same as _setjmp. Make
the former a strong symbol and the later a weak alias.
* sysdeps/sparc/sparc32/setjmp.S: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S: Likewise.
1997-10-06 21:01 David S. Miller <davem@tanya.rutgers.edu>
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Make ino_t
64-bits.
* sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h: Make st_ino
member 64-bits as well, to match the kernel.
1997-10-06 19:35 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc64/sub_n.S: Fix typo.
Patch by Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>.
1997-10-06 01:09 Zack Weinberg <zack@rabi.phys.columbia.edu>
* time/README: Correct list of files from tzcode package. Add
contact information for tzcode/tzdata maintainers. Correct
spelling of author's name. Compact lists.
1997-10-06 01:48 Ulrich Drepper <drepper@cygnus.com>
* malloc/malloc.h: Remove hook definition without caller argument.
* malloc/malloc.c: Likewise.
* string/tester.c: Correct strsep test.
* string/bits/string2.h: Define __string2_1bptr_p and use it.
Patch by David S. Miller <davem@tanya.rutgers.edu>.
* math/Makefile (routines): Add s_clog10.
* math/libm-test.c: Add test for clog10.
* math/libm.map: Add clog10{,f,l}.
* math/bits/cmathcalls.h [__USE_GNU]: Add clog10.
* sysdeps/libm-ieee754/s_clog10.c: New file.
* sysdeps/libm-ieee754/s_clog10f.c: New file.
* sysdeps/libm-ieee754/s_clog10l.c: New file.
* manual/math.texi: Describe clog10.
* config.h.in: Add USE_REGPARMS and define internal_function based on
this.
* configure.in: Define USE_REGPARMS for ix86 machines.
* gmon/gmon.c: Mark write_hist, write_call_graph and write_bb_counts
as internal functions.
* inet/getnameinfo.c: Likewise for nrl_domainname.
* inet/getnetgrent_r.c: Likewise for __internal_setnetgrent_reuse.
* inet/rcmd.c: Likewise for __icheckhost.
* intl/dcgettext.c: Likewise for category_to_name and
guess_category_value.
* intl/localealias.c: Likewise for read_alias_file.
* io/fts.c: Likewise for fts_alloc, fts_build, fts_lfree,
fts_maxarglen, fts_padjust, fts_palloc, fts_sort, and fts_stat.
* libio/genops.c: Likewise for save_for_backup.
* malloc/malloc.c (chunk_free, chunk_alloc, chunk_realloc, chunk_align,
main_trim, heap_trim): Likewise.
* malloc/mtrace.c (tr_where): Likewise.
* misc/fstab.c (mnt2fs): Likewise.
* misc/getttyent.c (skip, value): Likewise.
* misc/syslog.c (openlog_internal): Likewise.
* misc/tsearch.c (trecurse, tdestroy_internal): Likewise.
* nss/nsswitch.c (nss_lookup_function, nss_parse_file, nss_getline,
nss_parse_service_list, nss_new_service): Likewise.
* posix/wordexp.c (parse_dollars, parse_backtick, eval_expr): Likewise.
* resolv/inet_ntop.c (inet_ntop4, inet_ntop6): Likewise.
* resolv/inet_pton.c (inet_pton4, inet_pton6): Likewise.
* resolv/res_init.c (res_setoptions): Likewise.
* stdio-common/printf_fp.c (group_number): Likewise.
* stdio-common/vfprintf.c (buffered_vfprintf, group_number): Likewise.
* stdlib/fmtmsg.c (internal_addseverity): Likewise.
* sunrpc/auth_des.c (synchronize): Likewise.
* sunrpc/auth_unix.c (marshal_new_auth): Likewise.
* sunrpc/clnt_perr.c (auth_errmsg): Likewise.
* sunrpc/key_call.c (key_call): Likewise.
* sunprc/pmap_rmt.c (getbroadcastnets): Likewise.
* sunrpc/svc_tcp.c (makefd_xprt): Likewise.
* sunrpc/svcauth_des.c (cache_init, cache_spot, cache_ref, invalidate):
Likewise.
* sunrpc/xdr_rec.c (fix_buf_size, skip_input_bytes, flush_out,
set_input_fragment, get_input_bytes): Likewise.
* sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path,
phys_pages_info): Likewise.
* sysdeps/unix/sysv/linux/if_index.c (opensock): Likewise.
* sysdeps/unix/sysv/linux/poll.c (__emulate_poll): Likewise.
* sysdeps/unix/sysv/linux/readv.c (__atomic_readv_replacement):
Likewise.
* sysdeps/unix/sysv/linux/readv.c (__atomic_writev_replacement):
Likewise.
* time/strptime.c (strptime_internal): Likewise.
* time/tzfile.c (find_transition, compute_tzname_max): Likewise.
* time/tzset.c (compute_change, tz_compute, tzset_internal): Likewise.
* libc.map: Remove _libio_using_thunks, add _fp_hw and _dl_addr.
* ctype/ctype.h: Pretty print.
* grp/grp.h: Likewise.
* include/libc-symbols.h: Likewise.
* include/limits.h: Likewise.
* include/values.h: Likewise.
* io/fcntl.h: Likewise.
* io/sys/stat.h: Likewise.
* libio/stdio.h: Likewise.
* malloc/malloc.h: Likewise.
* misc/err.h: Likewise.
* misc/regexp.h: Likewise.
* misc/sys/cdefs.h: Likewise.
* misc/sys/file.h: Likewise.
* posix/sys/utsname.h: Likewise.
* posix/sys/wait.h: Likewise.
* pwd/pwd.h: Likewise.
* resolv/netdb.h: Likewise.
* signal/signal.h: Likewise.
* stdlib/stdlib.h: Likewise.
* string/endian.h: Likewise.
* string/memory.h: Likewise.
* sysdeps/mach/hurd/bits/fcntl.h: Likewise.
* sysdeps/mach/hurd/sys/param.h: Likewise.
* sysdeps/unix/sysv/linux/sys/param.h: Likewise.
* termios/termios.h: Likewise.
* wcsmbs/wchar.h: Likewise.
* wctype/wctype.h: Likewise.
* sysdeps/unix/bsd/bsd4.4/wait3.c: Use __WAIT_STATUS in definition.
Implement Large File Support API.
* include/features.h: Add suuport for _LARGEFILE_SOURCE,
_LARGEFILE64_SOURCE, and _FILE_OFFSET_BITS.
* libc.map: Add new functions for LFS.
* dirent/Makefile (routines): Add readdir64 and readdir64_r.
* dirent/dirent.h: Update readdir prototype for LFS and add new
prototypes for above functions.
* io/Makefile (routines): Add xstat64, fxstat64, lxstat64,
statfs64, fstatfs64, lstat64, open64, lseek64, creat64, and ftw64.
* io/creat64.c: New file.
* io/fstat64.c: New file.
* io/lstat64.c: New file.
* io/stat64.c: New file.
* io/ftw64.c: New file.
* io/ftw.c: Rewrite to allow easy definition of ftw64.
* io/ftw.h: Add LFS interface.
* io/fcntl.h: Likewise.
* io/sys/stat.h: Likewise.
* io/sys/statfs.h: Likewise.
* libio/Makefile (routines): Add iofgetpos64, iofopen64, iofsetpos64,
freopen64, fseeko64, and ftello64.
* libcio/fseeko64.c: New file.
* libio/ftello64.c: New file.
* libio/iofgetpos64.c: New file.
* libio/iofopen64.c: New file.
* libio/iofsetpos64.c: New file.
* libio/fileops.c (_IO_file_fopen): Change to use _IO_off64_t.
(_IO_file_attach): Likewise.
(_IO_do_write): Likewise.
(_IO_file_sync): Likewise.
(_IO_file_seek): Likewise.
(_IO_file_seekoff): Likewise. Use _G_stat64.
(_IO_file_fopen64): New function.
(_IO_file_jumps): Initialize showmanyc and imbue.
* libio/genops.c (_IO_default_seekpos): Change to use _IO_fpos64_t.
(_IO_default_seekoff): Likewise.
(_IO_default_seek): Likewise.
(_IO_default_showmanyc, _IO_default_imbue): New functions.
* libio/iofopncook.c (_IO_cookie_seek): Change to use _IO_off64_t.
* libio/iolibio.h: Add prototypes for LFS functions.
* libio/ioseekoff.c: Change to use _IO_fpos64_t.
* libio/ioseekpos.c: Likewise.
* libio/libio.h: Define _IO_fpos64_t and _IO_off64_t.
(_IO_FILE): Move _offset field to end and change type to _IO_off64_t.
(_IO_seekoff, _IO_seekpos): Change prototype.
* libio/libioP.h (_IO_seekoff_t, _IO_seekpos_t, _IO_seek_t): Change
to use _IO_off64_t.
Change prototypes for function from the *ops.c files.
* libio/stdio.h: Add LFS interface definition.
* libio/strops.c (_IO_str_seekoff): Change to use _IO_fpos64_t.
* posix/Makefile (routines): Add pread64 and pwrite64.
* posix/confstr.c: Handle _CS_LFS* requests.
* posix/getconf.c: Handle LFS* requests.
* sysdeps/generic/confname.h: Add _CS_LFS* constants.
* posix/unistd.h: Document _LFS64_LARGEFILE and _LFS64_STDIO.
Define off_t and off64_t appropriately. Change prototypes of
LFS functions.
* posix/sys/types.h: Add LFS types.
* resources/Makefile (routines): Add getrlimit64 and setlimit64.
* resource/sys/resource.h: Change prototypes of LFS functions.
* stdio-common/Makefile (routines): Add tmpfile64.
* stdio-common/tmpfile64.c: New file.
* sysdeps/generic/_G_config.h: Define _G_fpos64_t and _G_off64_t.
Define _G_OPEN64, _G_LSEEK64, _G_FSTAT64.
* sysdeps/unix/sysv/linux/_G_config.h: Likewise.
* sysdeps/generic/bits/resource.h: Add LFS definitions.
* sysdeps/unix/bsd/sun/sunos4/bits/resource.h: Likewise.
* sysdeps/unix/sysv/linux/bits/resource.h: Likewise.
* sysdeps/generic/statfs.h: Use __fsblkcnt_t for some of the fields.
* sysdeps/unix/sysv/linux/bits/statfs.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/statfs.h: Likewise.
* sysdeps/generic/types.h: Define LFS types.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise.
* sysdeps/generic/sys/mman.h: Add LFS definitions.
* sysdeps/unix/sysv/linux/sys/mman.h: Likewise.
* sysdeps/generic/mach/hurd/bits/fcntl.h: Add flock LFS extensions.
* sysdeps/unix/bsd/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise.
* sysdeps/generic/mach/hurd/bits/stat.h: Add stat LFS extensions.
* sysdeps/unix/bsd/bits/stat.h: Likewise.
* sysdeps/unix/bsd/osf/alpha/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise.
* sysdeps/unix/sysv/sysv4/i386/bits/stat.h: Likewise.
* sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h: Likewise.
* sysdeps/posix/open64.c: New file.
* sysdeps/stub/fstatfs64.c: New file.
* sysdeps/stub/fxstat64.c: New file.
* sysdeps/stub/getrlimit64.c: New file.
* sysdeps/stub/lseek64.c: New file.
* sysdeps/stub/lxstat64.c: New file.
* sysdeps/stub/open64.c: New file.
* sysdeps/stub/pread64.c: New file.
* sysdeps/stub/pwrite64.c: New file.
* sysdeps/stub/readdir64.c: New file.
* sysdeps/stub/readdir64_r.c: New file.
* sysdeps/stub/setrlimit64.c: New file.
* sysdeps/stub/statfs64.c: New file.
* sysdeps/stub/xstat64.c: New file.
* sysdeps/unix/sysv/linux/llseek.c: Define as __llseek and make
llseek and lseek64 weak aliases.
* sysdeps/unix/sysv/linux/lseek64.c: New file. Empty.
* sysdeps/unix/sysv/linux/alpha/bits/dirent.h: New file.
* sysdeps/unix/sysv/linux/bits/dirent.h: Add LFS definitions.
* sysdeps/posix/tempname.c: Add extra argument to trigger use of
open64.
* sysdeps/stub/tempname.c: Likewise.
* stdio-common/tempnam.c: Call __stdio_gen_tempname with extra
argument.
* stdio-common/tmpfile.c: Likewise.
* stdio-common/tmpnam.c: Likewise.
* stdio-common/tmpnam_r.c: Likewise.
* libio/libioP.h: Add definition ofr showmanyc and imbue callbacks.
* libio/fileops.c (_IO_file_jumps): Initialize showmanyc and imbue.
* libio/iofopncook.c (_IO_cookie_jumps): Likewise.
* libio/iopopen.c (_IO_proc_jumps): Likewise.
* libio/memstream.c (_IO_mem_jumps): Likewise.
* libio/obprintf.c (_IO_obstack_jumps): Likewise.
* libio/vsnprintf.c (_IO_strn_jumps): Likewise.
* libio/strops.c (_IO_str_jumps): Likewise.
* manual/arith.texi: Add a few words why cabs should be used.
* manual/llio.texi: Describe sync, fsync, fdatasync.
Tell about cleanup handlers & fcntl,lseek,write,read,close,open.
* manual/process.texi: Tell about cleanup handlers & system,waitpid,
wait.
* manual/signal.texi: Likewise for pause.
* manual/terminal.texi: Likewise for tcdrain.
* manual/time.texi: Document nanosleep.
* posix/exevp.c: Don't use nested function.
* stdlib/ucontext.h: New file.
* sysdeps/i386/sys/ucontext.h: New file. SysV/i386 API definitions.
* sunrpc/xcrypt.c (hexval): Make a macro for efficiency.
* sysdeps/i386/setjmp.h: Make `here` label local.
* sysdeps/i386/elf/start.S: Define _fp_hw "variable".
* sysdeps/stub/fstatfs.c: Correct warning.
* sysdeps/stub/fxstat.c: Likewise.
* sysdeps/stub/lxstat.c: Likewise.
* sysdeps/unix/sysv/i386/i686/time.S: New file.
1997-10-03 20:56 Jason Merrill <jason@yorick.cygnus.com>
* malloc/obstack.h (obstack_empty_p): New macro.
1997-10-04 17:41 Philip Blundell <Philip.Blundell@pobox.com>
* inet/getnameinfo.c (getnameinfo): Remove spurious `#if INET6'.
1997-09-30 Zack Weinberg <zack@rabi.phys.columbia.edu>
* maint.texi: Add copyright terms for libdb (Sleepycat, Harvard).
Document new --with-binutils switch; delete reference to
--with-gnu-as, --with-gnu-ld, --with-gnu-binutils.
Add to description of --without-fp: a kernel FPU emulator
is adequate (from FAQ)
* INSTALL: Regenerated.
1997-09-30 17:29 Richard Henderson <rth@cygnus.com>
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Move
_dl_hwcap declaration to ...
(elf_machine_fixup_plt): ... here.
1997-10-12 04:05:44 +00:00
fi
1997-07-14 21:49:20 +00:00
2009-04-05 18:49:28 +00:00
# Check whether --enable-shared was given.
2010-07-10 02:25:39 +00:00
if test "${enable_shared+set}" = set; then :
2009-04-05 18:49:28 +00:00
enableval=$enable_shared; shared=$enableval
else
2012-01-08 05:45:01 +00:00
shared=yes
2009-04-05 18:49:28 +00:00
fi
1997-07-14 21:49:20 +00:00
2009-04-05 18:49:28 +00:00
# Check whether --enable-profile was given.
2010-07-10 02:25:39 +00:00
if test "${enable_profile+set}" = set; then :
2009-04-05 18:49:28 +00:00
enableval=$enable_profile; profile=$enableval
else
profile=no
fi
1997-07-14 21:49:20 +00:00
2021-12-08 05:51:26 +00:00
# Check whether --enable-default-pie was given.
if test "${enable_default_pie+set}" = set; then :
enableval=$enable_default_pie; default_pie=$enableval
Add --enable-static-pie configure option to build static PIE [BZ #19574]
Static PIE extends address space layout randomization to static
executables. It provides additional security hardening benefits at
the cost of some memory and performance.
Dynamic linker, ld.so, is a standalone program which can be loaded at
any address. This patch adds a configure option, --enable-static-pie,
to embed the part of ld.so in static executable to create static position
independent executable (static PIE). A static PIE is similar to static
executable, but can be loaded at any address without help from a dynamic
linker. When --enable-static-pie is used to configure glibc, libc.a is
built as PIE and all static executables, including tests, are built as
static PIE. The resulting libc.a can be used together with GCC 8 or
above to build static PIE with the compiler option, -static-pie. But
GCC 8 isn't required to build glibc with --enable-static-pie. Only GCC
with PIE support is needed. When an older GCC is used to build glibc
with --enable-static-pie, proper input files are passed to linker to
create static executables as static PIE, together with "-z text" to
prevent dynamic relocations in read-only segments, which are not allowed
in static PIE.
The following changes are made for static PIE:
1. Add a new function, _dl_relocate_static_pie, to:
a. Get the run-time load address.
b. Read the dynamic section.
c. Perform dynamic relocations.
Dynamic linker also performs these steps. But static PIE doesn't load
any shared objects.
2. Call _dl_relocate_static_pie at entrance of LIBC_START_MAIN in
libc.a. crt1.o, which is used to create dynamic and non-PIE static
executables, is updated to include a dummy _dl_relocate_static_pie.
rcrt1.o is added to create static PIE, which will link in the real
_dl_relocate_static_pie. grcrt1.o is also added to create static PIE
with -pg. GCC 8 has been updated to support rcrt1.o and grcrt1.o for
static PIE.
Static PIE can work on all architectures which support PIE, provided:
1. Target must support accessing of local functions without dynamic
relocations, which is needed in start.S to call __libc_start_main with
function addresses of __libc_csu_init, __libc_csu_fini and main. All
functions in static PIE are local functions. If PIE start.S can't reach
main () defined in a shared object, the code sequence:
pass address of local_main to __libc_start_main
...
local_main:
tail call to main via PLT
can be used.
2. start.S is updated to check PIC instead SHARED for PIC code path and
avoid dynamic relocation, when PIC is defined and SHARED isn't defined,
to support static PIE.
3. All assembly codes are updated check PIC instead SHARED for PIC code
path to avoid dynamic relocations in read-only sections.
4. All assembly codes are updated check SHARED instead PIC for static
symbol name.
5. elf_machine_load_address in dl-machine.h are updated to support static
PIE.
6. __brk works without TLS nor dynamic relocations in read-only section
so that it can be used by __libc_setup_tls to initializes TLS in static
PIE.
NB: When glibc is built with GCC defaulted to PIE, libc.a is compiled
with -fPIE, regardless if --enable-static-pie is used to configure glibc.
When glibc is configured with --enable-static-pie, libc.a is compiled
with -fPIE, regardless whether GCC defaults to PIE or not. The same
libc.a can be used to build both static executable and static PIE.
There is no need for separate PIE copy of libc.a.
On x86-64, the normal static sln:
text data bss dec hex filename
625425 8284 5456 639165 9c0bd elf/sln
the static PIE sln:
text data bss dec hex filename
657626 20636 5392 683654 a6e86 elf/sln
The code size is increased by 5% and the binary size is increased by 7%.
Linker requirements to build glibc with --enable-static-pie:
1. Linker supports --no-dynamic-linker to remove PT_INTERP segment from
static PIE.
2. Linker can create working static PIE. The x86-64 linker needs the
fix for
https://sourceware.org/bugzilla/show_bug.cgi?id=21782
The i386 linker needs to be able to convert "movl main@GOT(%ebx), %eax"
to "leal main@GOTOFF(%ebx), %eax" if main is defined locally.
Binutils 2.29 or above are OK for i686 and x86-64. But linker status for
other targets need to be verified.
3. Linker should resolve undefined weak symbols to 0 in static PIE:
https://sourceware.org/bugzilla/show_bug.cgi?id=22269
4. Many ELF backend linkers incorrectly check bfd_link_pic for TLS
relocations, which should check bfd_link_executable instead:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Tested on aarch64, i686 and x86-64.
Using GCC 7 and binutils master branch, build-many-glibcs.py with
--enable-static-pie with all patches for static PIE applied have the
following build successes:
PASS: glibcs-aarch64_be-linux-gnu build
PASS: glibcs-aarch64-linux-gnu build
PASS: glibcs-armeb-linux-gnueabi-be8 build
PASS: glibcs-armeb-linux-gnueabi build
PASS: glibcs-armeb-linux-gnueabihf-be8 build
PASS: glibcs-armeb-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabi build
PASS: glibcs-arm-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabihf-v7a build
PASS: glibcs-arm-linux-gnueabihf-v7a-disable-multi-arch build
PASS: glibcs-m68k-linux-gnu build
PASS: glibcs-microblazeel-linux-gnu build
PASS: glibcs-microblaze-linux-gnu build
PASS: glibcs-mips64el-linux-gnu-n32 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n32-soft build
PASS: glibcs-mips64el-linux-gnu-n64 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n64-soft build
PASS: glibcs-mips64-linux-gnu-n32 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n32-soft build
PASS: glibcs-mips64-linux-gnu-n64 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n64-soft build
PASS: glibcs-mipsel-linux-gnu build
PASS: glibcs-mipsel-linux-gnu-nan2008 build
PASS: glibcs-mipsel-linux-gnu-nan2008-soft build
PASS: glibcs-mipsel-linux-gnu-soft build
PASS: glibcs-mips-linux-gnu build
PASS: glibcs-mips-linux-gnu-nan2008 build
PASS: glibcs-mips-linux-gnu-nan2008-soft build
PASS: glibcs-mips-linux-gnu-soft build
PASS: glibcs-nios2-linux-gnu build
PASS: glibcs-powerpc64le-linux-gnu build
PASS: glibcs-powerpc64-linux-gnu build
PASS: glibcs-tilegxbe-linux-gnu-32 build
PASS: glibcs-tilegxbe-linux-gnu build
PASS: glibcs-tilegx-linux-gnu-32 build
PASS: glibcs-tilegx-linux-gnu build
PASS: glibcs-tilepro-linux-gnu build
and the following build failures:
FAIL: glibcs-alpha-linux-gnu build
elf/sln is failed to link due to:
assertion fail bfd/elf64-alpha.c:4125
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-hppa-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
https://sourceware.org/bugzilla/show_bug.cgi?id=22537
FAIL: glibcs-ia64-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
FAIL: glibcs-powerpc-linux-gnu build
FAIL: glibcs-powerpc-linux-gnu-soft build
FAIL: glibcs-powerpc-linux-gnuspe build
FAIL: glibcs-powerpc-linux-gnuspe-e500v1 build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22264
FAIL: glibcs-powerpc-linux-gnu-power4 build
elf/sln is failed to link due to:
findlocale.c:96:(.text+0x22c): @local call to ifunc memchr
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-s390-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
assertion fail bfd/elflink.c:14299
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-sh3eb-linux-gnu build
FAIL: glibcs-sh3-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu-soft build
FAIL: glibcs-sh4-linux-gnu build
FAIL: glibcs-sh4-linux-gnu-soft build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Also TLS code sequence in SH assembly syscalls in glibc doesn't match TLS
code sequence expected by ld:
https://sourceware.org/bugzilla/show_bug.cgi?id=22270
FAIL: glibcs-sparc64-linux-gnu build
FAIL: glibcs-sparcv9-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu-32 build
FAIL: glibcs-tilegx-linux-gnu build
FAIL: glibcs-tilegx-linux-gnu-32 build
FAIL: glibcs-tilepro-linux-gnu build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
[BZ #19574]
* INSTALL: Regenerated.
* Makeconfig (real-static-start-installed-name): New.
(pic-default): Updated for --enable-static-pie.
(pie-default): New for --enable-static-pie.
(default-pie-ldflag): Likewise.
(+link-static-before-libc): Replace $(DEFAULT-LDFLAGS-$(@F))
with $(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)).
Replace $(static-start-installed-name) with
$(real-static-start-installed-name).
(+prectorT): Updated for --enable-static-pie.
(+postctorT): Likewise.
(CFLAGS-.o): Add $(pie-default).
(CFLAGS-.op): Likewise.
* NEWS: Mention --enable-static-pie.
* config.h.in (ENABLE_STATIC_PIE): New.
* configure.ac (--enable-static-pie): New configure option.
(have-no-dynamic-linker): New LIBC_CONFIG_VAR.
(have-static-pie): Likewise.
Enable static PIE if linker supports --no-dynamic-linker.
(ENABLE_STATIC_PIE): New AC_DEFINE.
(enable-static-pie): New LIBC_CONFIG_VAR.
* configure: Regenerated.
* csu/Makefile (omit-deps): Add r$(start-installed-name) and
gr$(start-installed-name) for --enable-static-pie.
(extra-objs): Likewise.
(install-lib): Likewise.
(extra-objs): Add static-reloc.o and static-reloc.os
($(objpfx)$(start-installed-name)): Also depend on
$(objpfx)static-reloc.o.
($(objpfx)r$(start-installed-name)): New.
($(objpfx)g$(start-installed-name)): Also depend on
$(objpfx)static-reloc.os.
($(objpfx)gr$(start-installed-name)): New.
* csu/libc-start.c (LIBC_START_MAIN): Call _dl_relocate_static_pie
in libc.a.
* csu/libc-tls.c (__libc_setup_tls): Add main_map->l_addr to
initimage.
* csu/static-reloc.c: New file.
* elf/Makefile (routines): Add dl-reloc-static-pie.
(elide-routines.os): Likewise.
(DEFAULT-LDFLAGS-tst-tls1-static-non-pie): Removed.
(tst-tls1-static-non-pie-no-pie): New.
* elf/dl-reloc-static-pie.c: New file.
* elf/dl-support.c (_dl_get_dl_main_map): New function.
* elf/dynamic-link.h (ELF_DURING_STARTUP): Also check
STATIC_PIE_BOOTSTRAP.
* elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
* gmon/Makefile (tests): Add tst-gmon-static-pie.
(tests-static): Likewise.
(DEFAULT-LDFLAGS-tst-gmon-static): Removed.
(tst-gmon-static-no-pie): New.
(CFLAGS-tst-gmon-static-pie.c): Likewise.
(CRT-tst-gmon-static-pie): Likewise.
(tst-gmon-static-pie-ENV): Likewise.
(tests-special): Likewise.
($(objpfx)tst-gmon-static-pie.out): Likewise.
(clean-tst-gmon-static-pie-data): Likewise.
($(objpfx)tst-gmon-static-pie-gprof.out): Likewise.
* gmon/tst-gmon-static-pie.c: New file.
* manual/install.texi: Document --enable-static-pie.
* sysdeps/generic/ldsodefs.h (_dl_relocate_static_pie): New.
(_dl_get_dl_main_map): Likewise.
* sysdeps/i386/configure.ac: Check if linker supports static PIE.
* sysdeps/x86_64/configure.ac: Likewise.
* sysdeps/i386/configure: Regenerated.
* sysdeps/x86_64/configure: Likewise.
* sysdeps/mips/Makefile (ASFLAGS-.o): Add $(pie-default).
(ASFLAGS-.op): Likewise.
2017-12-16 00:59:33 +00:00
else
2021-12-08 05:51:26 +00:00
default_pie=yes
Add --enable-static-pie configure option to build static PIE [BZ #19574]
Static PIE extends address space layout randomization to static
executables. It provides additional security hardening benefits at
the cost of some memory and performance.
Dynamic linker, ld.so, is a standalone program which can be loaded at
any address. This patch adds a configure option, --enable-static-pie,
to embed the part of ld.so in static executable to create static position
independent executable (static PIE). A static PIE is similar to static
executable, but can be loaded at any address without help from a dynamic
linker. When --enable-static-pie is used to configure glibc, libc.a is
built as PIE and all static executables, including tests, are built as
static PIE. The resulting libc.a can be used together with GCC 8 or
above to build static PIE with the compiler option, -static-pie. But
GCC 8 isn't required to build glibc with --enable-static-pie. Only GCC
with PIE support is needed. When an older GCC is used to build glibc
with --enable-static-pie, proper input files are passed to linker to
create static executables as static PIE, together with "-z text" to
prevent dynamic relocations in read-only segments, which are not allowed
in static PIE.
The following changes are made for static PIE:
1. Add a new function, _dl_relocate_static_pie, to:
a. Get the run-time load address.
b. Read the dynamic section.
c. Perform dynamic relocations.
Dynamic linker also performs these steps. But static PIE doesn't load
any shared objects.
2. Call _dl_relocate_static_pie at entrance of LIBC_START_MAIN in
libc.a. crt1.o, which is used to create dynamic and non-PIE static
executables, is updated to include a dummy _dl_relocate_static_pie.
rcrt1.o is added to create static PIE, which will link in the real
_dl_relocate_static_pie. grcrt1.o is also added to create static PIE
with -pg. GCC 8 has been updated to support rcrt1.o and grcrt1.o for
static PIE.
Static PIE can work on all architectures which support PIE, provided:
1. Target must support accessing of local functions without dynamic
relocations, which is needed in start.S to call __libc_start_main with
function addresses of __libc_csu_init, __libc_csu_fini and main. All
functions in static PIE are local functions. If PIE start.S can't reach
main () defined in a shared object, the code sequence:
pass address of local_main to __libc_start_main
...
local_main:
tail call to main via PLT
can be used.
2. start.S is updated to check PIC instead SHARED for PIC code path and
avoid dynamic relocation, when PIC is defined and SHARED isn't defined,
to support static PIE.
3. All assembly codes are updated check PIC instead SHARED for PIC code
path to avoid dynamic relocations in read-only sections.
4. All assembly codes are updated check SHARED instead PIC for static
symbol name.
5. elf_machine_load_address in dl-machine.h are updated to support static
PIE.
6. __brk works without TLS nor dynamic relocations in read-only section
so that it can be used by __libc_setup_tls to initializes TLS in static
PIE.
NB: When glibc is built with GCC defaulted to PIE, libc.a is compiled
with -fPIE, regardless if --enable-static-pie is used to configure glibc.
When glibc is configured with --enable-static-pie, libc.a is compiled
with -fPIE, regardless whether GCC defaults to PIE or not. The same
libc.a can be used to build both static executable and static PIE.
There is no need for separate PIE copy of libc.a.
On x86-64, the normal static sln:
text data bss dec hex filename
625425 8284 5456 639165 9c0bd elf/sln
the static PIE sln:
text data bss dec hex filename
657626 20636 5392 683654 a6e86 elf/sln
The code size is increased by 5% and the binary size is increased by 7%.
Linker requirements to build glibc with --enable-static-pie:
1. Linker supports --no-dynamic-linker to remove PT_INTERP segment from
static PIE.
2. Linker can create working static PIE. The x86-64 linker needs the
fix for
https://sourceware.org/bugzilla/show_bug.cgi?id=21782
The i386 linker needs to be able to convert "movl main@GOT(%ebx), %eax"
to "leal main@GOTOFF(%ebx), %eax" if main is defined locally.
Binutils 2.29 or above are OK for i686 and x86-64. But linker status for
other targets need to be verified.
3. Linker should resolve undefined weak symbols to 0 in static PIE:
https://sourceware.org/bugzilla/show_bug.cgi?id=22269
4. Many ELF backend linkers incorrectly check bfd_link_pic for TLS
relocations, which should check bfd_link_executable instead:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Tested on aarch64, i686 and x86-64.
Using GCC 7 and binutils master branch, build-many-glibcs.py with
--enable-static-pie with all patches for static PIE applied have the
following build successes:
PASS: glibcs-aarch64_be-linux-gnu build
PASS: glibcs-aarch64-linux-gnu build
PASS: glibcs-armeb-linux-gnueabi-be8 build
PASS: glibcs-armeb-linux-gnueabi build
PASS: glibcs-armeb-linux-gnueabihf-be8 build
PASS: glibcs-armeb-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabi build
PASS: glibcs-arm-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabihf-v7a build
PASS: glibcs-arm-linux-gnueabihf-v7a-disable-multi-arch build
PASS: glibcs-m68k-linux-gnu build
PASS: glibcs-microblazeel-linux-gnu build
PASS: glibcs-microblaze-linux-gnu build
PASS: glibcs-mips64el-linux-gnu-n32 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n32-soft build
PASS: glibcs-mips64el-linux-gnu-n64 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n64-soft build
PASS: glibcs-mips64-linux-gnu-n32 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n32-soft build
PASS: glibcs-mips64-linux-gnu-n64 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n64-soft build
PASS: glibcs-mipsel-linux-gnu build
PASS: glibcs-mipsel-linux-gnu-nan2008 build
PASS: glibcs-mipsel-linux-gnu-nan2008-soft build
PASS: glibcs-mipsel-linux-gnu-soft build
PASS: glibcs-mips-linux-gnu build
PASS: glibcs-mips-linux-gnu-nan2008 build
PASS: glibcs-mips-linux-gnu-nan2008-soft build
PASS: glibcs-mips-linux-gnu-soft build
PASS: glibcs-nios2-linux-gnu build
PASS: glibcs-powerpc64le-linux-gnu build
PASS: glibcs-powerpc64-linux-gnu build
PASS: glibcs-tilegxbe-linux-gnu-32 build
PASS: glibcs-tilegxbe-linux-gnu build
PASS: glibcs-tilegx-linux-gnu-32 build
PASS: glibcs-tilegx-linux-gnu build
PASS: glibcs-tilepro-linux-gnu build
and the following build failures:
FAIL: glibcs-alpha-linux-gnu build
elf/sln is failed to link due to:
assertion fail bfd/elf64-alpha.c:4125
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-hppa-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
https://sourceware.org/bugzilla/show_bug.cgi?id=22537
FAIL: glibcs-ia64-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
FAIL: glibcs-powerpc-linux-gnu build
FAIL: glibcs-powerpc-linux-gnu-soft build
FAIL: glibcs-powerpc-linux-gnuspe build
FAIL: glibcs-powerpc-linux-gnuspe-e500v1 build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22264
FAIL: glibcs-powerpc-linux-gnu-power4 build
elf/sln is failed to link due to:
findlocale.c:96:(.text+0x22c): @local call to ifunc memchr
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-s390-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
assertion fail bfd/elflink.c:14299
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-sh3eb-linux-gnu build
FAIL: glibcs-sh3-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu-soft build
FAIL: glibcs-sh4-linux-gnu build
FAIL: glibcs-sh4-linux-gnu-soft build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Also TLS code sequence in SH assembly syscalls in glibc doesn't match TLS
code sequence expected by ld:
https://sourceware.org/bugzilla/show_bug.cgi?id=22270
FAIL: glibcs-sparc64-linux-gnu build
FAIL: glibcs-sparcv9-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu-32 build
FAIL: glibcs-tilegx-linux-gnu build
FAIL: glibcs-tilegx-linux-gnu-32 build
FAIL: glibcs-tilepro-linux-gnu build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
[BZ #19574]
* INSTALL: Regenerated.
* Makeconfig (real-static-start-installed-name): New.
(pic-default): Updated for --enable-static-pie.
(pie-default): New for --enable-static-pie.
(default-pie-ldflag): Likewise.
(+link-static-before-libc): Replace $(DEFAULT-LDFLAGS-$(@F))
with $(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)).
Replace $(static-start-installed-name) with
$(real-static-start-installed-name).
(+prectorT): Updated for --enable-static-pie.
(+postctorT): Likewise.
(CFLAGS-.o): Add $(pie-default).
(CFLAGS-.op): Likewise.
* NEWS: Mention --enable-static-pie.
* config.h.in (ENABLE_STATIC_PIE): New.
* configure.ac (--enable-static-pie): New configure option.
(have-no-dynamic-linker): New LIBC_CONFIG_VAR.
(have-static-pie): Likewise.
Enable static PIE if linker supports --no-dynamic-linker.
(ENABLE_STATIC_PIE): New AC_DEFINE.
(enable-static-pie): New LIBC_CONFIG_VAR.
* configure: Regenerated.
* csu/Makefile (omit-deps): Add r$(start-installed-name) and
gr$(start-installed-name) for --enable-static-pie.
(extra-objs): Likewise.
(install-lib): Likewise.
(extra-objs): Add static-reloc.o and static-reloc.os
($(objpfx)$(start-installed-name)): Also depend on
$(objpfx)static-reloc.o.
($(objpfx)r$(start-installed-name)): New.
($(objpfx)g$(start-installed-name)): Also depend on
$(objpfx)static-reloc.os.
($(objpfx)gr$(start-installed-name)): New.
* csu/libc-start.c (LIBC_START_MAIN): Call _dl_relocate_static_pie
in libc.a.
* csu/libc-tls.c (__libc_setup_tls): Add main_map->l_addr to
initimage.
* csu/static-reloc.c: New file.
* elf/Makefile (routines): Add dl-reloc-static-pie.
(elide-routines.os): Likewise.
(DEFAULT-LDFLAGS-tst-tls1-static-non-pie): Removed.
(tst-tls1-static-non-pie-no-pie): New.
* elf/dl-reloc-static-pie.c: New file.
* elf/dl-support.c (_dl_get_dl_main_map): New function.
* elf/dynamic-link.h (ELF_DURING_STARTUP): Also check
STATIC_PIE_BOOTSTRAP.
* elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
* gmon/Makefile (tests): Add tst-gmon-static-pie.
(tests-static): Likewise.
(DEFAULT-LDFLAGS-tst-gmon-static): Removed.
(tst-gmon-static-no-pie): New.
(CFLAGS-tst-gmon-static-pie.c): Likewise.
(CRT-tst-gmon-static-pie): Likewise.
(tst-gmon-static-pie-ENV): Likewise.
(tests-special): Likewise.
($(objpfx)tst-gmon-static-pie.out): Likewise.
(clean-tst-gmon-static-pie-data): Likewise.
($(objpfx)tst-gmon-static-pie-gprof.out): Likewise.
* gmon/tst-gmon-static-pie.c: New file.
* manual/install.texi: Document --enable-static-pie.
* sysdeps/generic/ldsodefs.h (_dl_relocate_static_pie): New.
(_dl_get_dl_main_map): Likewise.
* sysdeps/i386/configure.ac: Check if linker supports static PIE.
* sysdeps/x86_64/configure.ac: Likewise.
* sysdeps/i386/configure: Regenerated.
* sysdeps/x86_64/configure: Likewise.
* sysdeps/mips/Makefile (ASFLAGS-.o): Add $(pie-default).
(ASFLAGS-.op): Likewise.
2017-12-16 00:59:33 +00:00
fi
2015-09-18 18:00:05 +00:00
# Check whether --enable-timezone-tools was given.
if test "${enable_timezone_tools+set}" = set; then :
enableval=$enable_timezone_tools; enable_timezone_tools=$enableval
else
enable_timezone_tools=yes
fi
2009-04-05 18:49:28 +00:00
2013-01-11 15:14:18 +00:00
# Check whether --enable-hardcoded-path-in-tests was given.
if test "${enable_hardcoded_path_in_tests+set}" = set; then :
enableval=$enable_hardcoded_path_in_tests; hardcoded_path_in_tests=$enableval
else
hardcoded_path_in_tests=no
fi
2009-04-05 18:49:28 +00:00
# Check whether --enable-hidden-plt was given.
2010-07-10 02:25:39 +00:00
if test "${enable_hidden_plt+set}" = set; then :
2009-04-05 18:49:28 +00:00
enableval=$enable_hidden_plt; hidden=$enableval
else
hidden=yes
1998-06-08 19:06:31 +00:00
fi
1997-07-14 21:49:20 +00:00
2009-04-05 18:49:28 +00:00
if test "x$hidden" = xno; then
2010-07-10 02:25:39 +00:00
$as_echo "#define NO_HIDDEN 1" >>confdefs.h
1997-07-14 21:49:20 +00:00
2009-04-05 18:49:28 +00:00
fi
* Makefile (subdir-target-args): New variable.
($(all-subdirs-targets)): Use it in place of -C option.
* Rules: Use $(..) instead of ../ if it's already defined.
* Makeconfig (subdir-srcdirs): New variable.
* csu/Makefile (all-Banner-files): Use it.
* configure.in (--enable-add-ons): Set to "yes" by default.
Handle absolute add-on directory names when looking for configure
fragments. Also look for sysdeps/*/preconfigure fragments in add-ons.
Require add-on configure to set $libc_add_on_canonical, use
that in $add_ons_sfx. Substitute add_on_subdirs with computed list
of subdir names each add-on configure set in libc_add_on_subdirs.
* configure: Regenerated.
* Makefile (%/preconfigure: %/preconfigure.in): New pattern rule.
* config.make.in (add-on-subdirs): New substituted variable.
* Makeconfig (all-subdirs): Include $(add-on-subdirs).
Remove $(add-ons), $(sysdep-subdirs).
Don't filter out $(sysdep-inhibit-subdirs).
($(common-objpfx)sysd-dirs): Target removed. Don't include it.
($(common-objpfx)sysd-sorted): Rewritten to feed Depend and Subdirs
files together to gen-sorted.awk, and $(subdirs) via -v.
(subdirs): Remove magic reordering for mach and hurd.
* scripts/gen-sorted.awk: Use subdirs from command line.
Process Subdirs and Depend files directly.
Let Subdirs files use "first dir" and "inhibit dir".
Always move elf to the end of the list.
* hurd/Depend: New file.
* sysdeps/mach/Subdirs: Use "first mach".
* Makefile (dist-separate): Remove linuxthreads.
(dist-separate-linuxthreads): Variable removed.
(glibc-%.tar rule): Use $(sysdeps-add-ons).
* Makerules ($(common-objpfx)Versions.v.i): Use $(subdirs),
not $(all-subdirs).
(sysdep-makefiles): Use $(sysdirs).
(sysdirs): Remove export.
($(+sysdir_pfx)sysd-rules): Handle absolute directory names in
$(config-sysdirs).
(+sysdir_pfx): Variable removed.
(sysd-rules): Use $(common-objpfx) in place of it.
(sysdirs): Variable moved to ...
* Makeconfig (sysdirs): ... here.
Handle absolute directory names in $(config-sysdirs).
(full_config_sysdirs): Variable removed.
* csu/Makefile: Use $(sysdirs) in vpath directive.
* math/Makefile (ulps-file): Use $(sysdirs).
* sysdeps/gnu/Makefile (errlist-c): Likewise.
($(objpfx)errlist-compat.c): Likewise.
* Makeconfig (all-Subdirs-files): Likewise.
($(common-objpfx)config.status): Likewise.
* configure.in (sysnames): Handle absolute add-on directory names.
(sysdeps_add_ons): New variable, AC_SUBST it.
Compute which add-ons contributed sysdeps directories.
* configure: Regenerated.
* config.make.in (sysdeps-add-ons): New substituted variable.
* Makerules (+sysdep_dirs, +sysdep-includes): Variables moved ...
* Makeconfig: ... to here.
(+sysdep_dirs): Append $(sysdeps-add-ons) here.
(+includes): Remove $(objpfx) include, already in $(+sysdep_dirs).
Remove $(includes).
(sysdep-makeconfigs): Use $(+sysdep_dirs).
($(common-objpfx)shlib-versions.v.i): Likewise.
* Makeconfig: Remove hair to set Makeconfig-add-on.
* sysdeps/unix/Makefile (sysdirs): Remove export.
(asm_CPP): Variable removed.
($(common-objpfx)sysd-syscalls): Pass them directly for the script.
* sysdeps/posix/Makefile: New file.
* Makerules (L_tmpnam, TMP_MAX, L_ctermid, L_cuserid): Set non-posix
values here with ?=.
* stdlib/gen-mpn-copy: File removed.
* stdlib/Makefile (distribute): Remove it.
* configure.in: Don't grok --with-gmp.
* configure: Regenerated.
* configure.in (libc_cv_idn): Don't check it; libidn/configure does it.
* configure: Regenerated.
* bare: Directory removed, saved in ports repository.
2006-02-28 07:11:04 +00:00
2009-04-05 18:49:28 +00:00
# Check whether --enable-bind-now was given.
2010-07-10 02:25:39 +00:00
if test "${enable_bind_now+set}" = set; then :
2009-04-05 18:49:28 +00:00
enableval=$enable_bind_now; bindnow=$enableval
else
bindnow=no
fi
* Makefile (subdir-target-args): New variable.
($(all-subdirs-targets)): Use it in place of -C option.
* Rules: Use $(..) instead of ../ if it's already defined.
* Makeconfig (subdir-srcdirs): New variable.
* csu/Makefile (all-Banner-files): Use it.
* configure.in (--enable-add-ons): Set to "yes" by default.
Handle absolute add-on directory names when looking for configure
fragments. Also look for sysdeps/*/preconfigure fragments in add-ons.
Require add-on configure to set $libc_add_on_canonical, use
that in $add_ons_sfx. Substitute add_on_subdirs with computed list
of subdir names each add-on configure set in libc_add_on_subdirs.
* configure: Regenerated.
* Makefile (%/preconfigure: %/preconfigure.in): New pattern rule.
* config.make.in (add-on-subdirs): New substituted variable.
* Makeconfig (all-subdirs): Include $(add-on-subdirs).
Remove $(add-ons), $(sysdep-subdirs).
Don't filter out $(sysdep-inhibit-subdirs).
($(common-objpfx)sysd-dirs): Target removed. Don't include it.
($(common-objpfx)sysd-sorted): Rewritten to feed Depend and Subdirs
files together to gen-sorted.awk, and $(subdirs) via -v.
(subdirs): Remove magic reordering for mach and hurd.
* scripts/gen-sorted.awk: Use subdirs from command line.
Process Subdirs and Depend files directly.
Let Subdirs files use "first dir" and "inhibit dir".
Always move elf to the end of the list.
* hurd/Depend: New file.
* sysdeps/mach/Subdirs: Use "first mach".
* Makefile (dist-separate): Remove linuxthreads.
(dist-separate-linuxthreads): Variable removed.
(glibc-%.tar rule): Use $(sysdeps-add-ons).
* Makerules ($(common-objpfx)Versions.v.i): Use $(subdirs),
not $(all-subdirs).
(sysdep-makefiles): Use $(sysdirs).
(sysdirs): Remove export.
($(+sysdir_pfx)sysd-rules): Handle absolute directory names in
$(config-sysdirs).
(+sysdir_pfx): Variable removed.
(sysd-rules): Use $(common-objpfx) in place of it.
(sysdirs): Variable moved to ...
* Makeconfig (sysdirs): ... here.
Handle absolute directory names in $(config-sysdirs).
(full_config_sysdirs): Variable removed.
* csu/Makefile: Use $(sysdirs) in vpath directive.
* math/Makefile (ulps-file): Use $(sysdirs).
* sysdeps/gnu/Makefile (errlist-c): Likewise.
($(objpfx)errlist-compat.c): Likewise.
* Makeconfig (all-Subdirs-files): Likewise.
($(common-objpfx)config.status): Likewise.
* configure.in (sysnames): Handle absolute add-on directory names.
(sysdeps_add_ons): New variable, AC_SUBST it.
Compute which add-ons contributed sysdeps directories.
* configure: Regenerated.
* config.make.in (sysdeps-add-ons): New substituted variable.
* Makerules (+sysdep_dirs, +sysdep-includes): Variables moved ...
* Makeconfig: ... to here.
(+sysdep_dirs): Append $(sysdeps-add-ons) here.
(+includes): Remove $(objpfx) include, already in $(+sysdep_dirs).
Remove $(includes).
(sysdep-makeconfigs): Use $(+sysdep_dirs).
($(common-objpfx)shlib-versions.v.i): Likewise.
* Makeconfig: Remove hair to set Makeconfig-add-on.
* sysdeps/unix/Makefile (sysdirs): Remove export.
(asm_CPP): Variable removed.
($(common-objpfx)sysd-syscalls): Pass them directly for the script.
* sysdeps/posix/Makefile: New file.
* Makerules (L_tmpnam, TMP_MAX, L_ctermid, L_cuserid): Set non-posix
values here with ?=.
* stdlib/gen-mpn-copy: File removed.
* stdlib/Makefile (distribute): Remove it.
* configure.in: Don't grok --with-gmp.
* configure: Regenerated.
* configure.in (libc_cv_idn): Don't check it; libidn/configure does it.
* configure: Regenerated.
* bare: Directory removed, saved in ports repository.
2006-02-28 07:11:04 +00:00
2016-05-24 15:44:10 +00:00
if test "x$bindnow" = xyes; then
$as_echo "#define BIND_NOW 1" >>confdefs.h
fi
* Makefile (subdir-target-args): New variable.
($(all-subdirs-targets)): Use it in place of -C option.
* Rules: Use $(..) instead of ../ if it's already defined.
* Makeconfig (subdir-srcdirs): New variable.
* csu/Makefile (all-Banner-files): Use it.
* configure.in (--enable-add-ons): Set to "yes" by default.
Handle absolute add-on directory names when looking for configure
fragments. Also look for sysdeps/*/preconfigure fragments in add-ons.
Require add-on configure to set $libc_add_on_canonical, use
that in $add_ons_sfx. Substitute add_on_subdirs with computed list
of subdir names each add-on configure set in libc_add_on_subdirs.
* configure: Regenerated.
* Makefile (%/preconfigure: %/preconfigure.in): New pattern rule.
* config.make.in (add-on-subdirs): New substituted variable.
* Makeconfig (all-subdirs): Include $(add-on-subdirs).
Remove $(add-ons), $(sysdep-subdirs).
Don't filter out $(sysdep-inhibit-subdirs).
($(common-objpfx)sysd-dirs): Target removed. Don't include it.
($(common-objpfx)sysd-sorted): Rewritten to feed Depend and Subdirs
files together to gen-sorted.awk, and $(subdirs) via -v.
(subdirs): Remove magic reordering for mach and hurd.
* scripts/gen-sorted.awk: Use subdirs from command line.
Process Subdirs and Depend files directly.
Let Subdirs files use "first dir" and "inhibit dir".
Always move elf to the end of the list.
* hurd/Depend: New file.
* sysdeps/mach/Subdirs: Use "first mach".
* Makefile (dist-separate): Remove linuxthreads.
(dist-separate-linuxthreads): Variable removed.
(glibc-%.tar rule): Use $(sysdeps-add-ons).
* Makerules ($(common-objpfx)Versions.v.i): Use $(subdirs),
not $(all-subdirs).
(sysdep-makefiles): Use $(sysdirs).
(sysdirs): Remove export.
($(+sysdir_pfx)sysd-rules): Handle absolute directory names in
$(config-sysdirs).
(+sysdir_pfx): Variable removed.
(sysd-rules): Use $(common-objpfx) in place of it.
(sysdirs): Variable moved to ...
* Makeconfig (sysdirs): ... here.
Handle absolute directory names in $(config-sysdirs).
(full_config_sysdirs): Variable removed.
* csu/Makefile: Use $(sysdirs) in vpath directive.
* math/Makefile (ulps-file): Use $(sysdirs).
* sysdeps/gnu/Makefile (errlist-c): Likewise.
($(objpfx)errlist-compat.c): Likewise.
* Makeconfig (all-Subdirs-files): Likewise.
($(common-objpfx)config.status): Likewise.
* configure.in (sysnames): Handle absolute add-on directory names.
(sysdeps_add_ons): New variable, AC_SUBST it.
Compute which add-ons contributed sysdeps directories.
* configure: Regenerated.
* config.make.in (sysdeps-add-ons): New substituted variable.
* Makerules (+sysdep_dirs, +sysdep-includes): Variables moved ...
* Makeconfig: ... to here.
(+sysdep_dirs): Append $(sysdeps-add-ons) here.
(+includes): Remove $(objpfx) include, already in $(+sysdep_dirs).
Remove $(includes).
(sysdep-makeconfigs): Use $(+sysdep_dirs).
($(common-objpfx)shlib-versions.v.i): Likewise.
* Makeconfig: Remove hair to set Makeconfig-add-on.
* sysdeps/unix/Makefile (sysdirs): Remove export.
(asm_CPP): Variable removed.
($(common-objpfx)sysd-syscalls): Pass them directly for the script.
* sysdeps/posix/Makefile: New file.
* Makerules (L_tmpnam, TMP_MAX, L_ctermid, L_cuserid): Set non-posix
values here with ?=.
* stdlib/gen-mpn-copy: File removed.
* stdlib/Makefile (distribute): Remove it.
* configure.in: Don't grok --with-gmp.
* configure: Regenerated.
* configure.in (libc_cv_idn): Don't check it; libidn/configure does it.
* configure: Regenerated.
* bare: Directory removed, saved in ports repository.
2006-02-28 07:11:04 +00:00
2016-12-26 09:08:18 +00:00
# Check whether --enable-stack-protector was given.
if test "${enable_stack_protector+set}" = set; then :
enableval=$enable_stack_protector; enable_stack_protector=$enableval
else
enable_stack_protector=no
fi
case "$enable_stack_protector" in
all|yes|no|strong) ;;
*) as_fn_error $? "Not a valid argument for --enable-stack-protector: \"$enable_stack_protector\"" "$LINENO" 5;;
esac
2009-04-05 18:49:28 +00:00
# Check whether --enable-static-nss was given.
2010-07-10 02:25:39 +00:00
if test "${enable_static_nss+set}" = set; then :
2009-04-05 18:49:28 +00:00
enableval=$enable_static_nss; static_nss=$enableval
else
static_nss=no
fi
* Makefile (subdir-target-args): New variable.
($(all-subdirs-targets)): Use it in place of -C option.
* Rules: Use $(..) instead of ../ if it's already defined.
* Makeconfig (subdir-srcdirs): New variable.
* csu/Makefile (all-Banner-files): Use it.
* configure.in (--enable-add-ons): Set to "yes" by default.
Handle absolute add-on directory names when looking for configure
fragments. Also look for sysdeps/*/preconfigure fragments in add-ons.
Require add-on configure to set $libc_add_on_canonical, use
that in $add_ons_sfx. Substitute add_on_subdirs with computed list
of subdir names each add-on configure set in libc_add_on_subdirs.
* configure: Regenerated.
* Makefile (%/preconfigure: %/preconfigure.in): New pattern rule.
* config.make.in (add-on-subdirs): New substituted variable.
* Makeconfig (all-subdirs): Include $(add-on-subdirs).
Remove $(add-ons), $(sysdep-subdirs).
Don't filter out $(sysdep-inhibit-subdirs).
($(common-objpfx)sysd-dirs): Target removed. Don't include it.
($(common-objpfx)sysd-sorted): Rewritten to feed Depend and Subdirs
files together to gen-sorted.awk, and $(subdirs) via -v.
(subdirs): Remove magic reordering for mach and hurd.
* scripts/gen-sorted.awk: Use subdirs from command line.
Process Subdirs and Depend files directly.
Let Subdirs files use "first dir" and "inhibit dir".
Always move elf to the end of the list.
* hurd/Depend: New file.
* sysdeps/mach/Subdirs: Use "first mach".
* Makefile (dist-separate): Remove linuxthreads.
(dist-separate-linuxthreads): Variable removed.
(glibc-%.tar rule): Use $(sysdeps-add-ons).
* Makerules ($(common-objpfx)Versions.v.i): Use $(subdirs),
not $(all-subdirs).
(sysdep-makefiles): Use $(sysdirs).
(sysdirs): Remove export.
($(+sysdir_pfx)sysd-rules): Handle absolute directory names in
$(config-sysdirs).
(+sysdir_pfx): Variable removed.
(sysd-rules): Use $(common-objpfx) in place of it.
(sysdirs): Variable moved to ...
* Makeconfig (sysdirs): ... here.
Handle absolute directory names in $(config-sysdirs).
(full_config_sysdirs): Variable removed.
* csu/Makefile: Use $(sysdirs) in vpath directive.
* math/Makefile (ulps-file): Use $(sysdirs).
* sysdeps/gnu/Makefile (errlist-c): Likewise.
($(objpfx)errlist-compat.c): Likewise.
* Makeconfig (all-Subdirs-files): Likewise.
($(common-objpfx)config.status): Likewise.
* configure.in (sysnames): Handle absolute add-on directory names.
(sysdeps_add_ons): New variable, AC_SUBST it.
Compute which add-ons contributed sysdeps directories.
* configure: Regenerated.
* config.make.in (sysdeps-add-ons): New substituted variable.
* Makerules (+sysdep_dirs, +sysdep-includes): Variables moved ...
* Makeconfig: ... to here.
(+sysdep_dirs): Append $(sysdeps-add-ons) here.
(+includes): Remove $(objpfx) include, already in $(+sysdep_dirs).
Remove $(includes).
(sysdep-makeconfigs): Use $(+sysdep_dirs).
($(common-objpfx)shlib-versions.v.i): Likewise.
* Makeconfig: Remove hair to set Makeconfig-add-on.
* sysdeps/unix/Makefile (sysdirs): Remove export.
(asm_CPP): Variable removed.
($(common-objpfx)sysd-syscalls): Pass them directly for the script.
* sysdeps/posix/Makefile: New file.
* Makerules (L_tmpnam, TMP_MAX, L_ctermid, L_cuserid): Set non-posix
values here with ?=.
* stdlib/gen-mpn-copy: File removed.
* stdlib/Makefile (distribute): Remove it.
* configure.in: Don't grok --with-gmp.
* configure: Regenerated.
* configure.in (libc_cv_idn): Don't check it; libidn/configure does it.
* configure: Regenerated.
* bare: Directory removed, saved in ports repository.
2006-02-28 07:11:04 +00:00
2009-04-05 18:49:28 +00:00
if test x"$static_nss" = xyes || test x"$shared" = xno; then
static_nss=yes
2010-07-10 02:25:39 +00:00
$as_echo "#define DO_STATIC_NSS 1" >>confdefs.h
1997-07-14 21:49:20 +00:00
2009-04-05 18:49:28 +00:00
fi
1997-07-14 21:49:20 +00:00
2009-04-05 18:49:28 +00:00
# Check whether --enable-force-install was given.
2010-07-10 02:25:39 +00:00
if test "${enable_force_install+set}" = set; then :
2009-04-05 18:49:28 +00:00
enableval=$enable_force_install; force_install=$enableval
2002-10-17 23:48:55 +00:00
else
2009-04-05 18:49:28 +00:00
force_install=yes
fi
2009-04-02 17:00:46 +00:00
2002-10-17 23:48:55 +00:00
1997-07-14 21:49:20 +00:00
2013-12-16 01:25:04 +00:00
# Check whether --enable-maintainer-mode was given.
if test "${enable_maintainer_mode+set}" = set; then :
enableval=$enable_maintainer_mode; maintainer=$enableval
else
maintainer=no
fi
2009-04-05 18:49:28 +00:00
# Check whether --enable-kernel was given.
2010-07-10 02:25:39 +00:00
if test "${enable_kernel+set}" = set; then :
2009-04-05 18:49:28 +00:00
enableval=$enable_kernel; minimum_kernel=$enableval
1997-07-14 21:49:20 +00:00
fi
2009-04-05 18:49:28 +00:00
if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
# Better nothing than this.
minimum_kernel=""
else
if test "$minimum_kernel" = current; then
minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
1997-07-14 21:49:20 +00:00
fi
fi
2009-04-05 18:49:28 +00:00
# Check whether --enable-all-warnings was given.
2010-07-10 02:25:39 +00:00
if test "${enable_all_warnings+set}" = set; then :
2009-04-05 18:49:28 +00:00
enableval=$enable_all_warnings; all_warnings=$enableval
fi
1997-07-14 21:49:20 +00:00
1998-12-08 13:12:47 +00:00
1997-07-14 21:49:20 +00:00
Use -Werror by default, add --disable-werror.
As discussed starting at
<https://sourceware.org/ml/libc-alpha/2014-11/msg00323.html>, this
patch makes the glibc build use -Werror by default to avoid
accidentally adding new warnings to the build. The configure option
--disable-werror can be used to disable this.
-Wno-error=undef is temporarily used because the build isn't clean
regarding -Wundef warnings. The idea is that once the remaining
-Wundef warnings have been cleaned up (in at least one configuration),
-Wno-error=undef will be removed.
I get a clean build and test on x86_64 (GCC 4.9 branch) with this
patch. The expectation is that this may well break the build for some
other configurations, and people seeing such breakage should make
appropriate fixes to fix or suppress the warnings for their
configurations. In some cases that may involve using pragmas as the
right fix (I think that will be right for the -Wno-inline issue for
MIPS I referred to in
<https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, for
example), in some cases -Wno-error in sysdeps makefiles (__restore_rt
in MIPS sigaction, for example), in some cases substantive fixes for
the warnings.
Note that if, with a view to listing all the warnings then fixing them
all, you just look for "warning:" in output from building and testing
with --disable-werror, you'll see lots of warnings from the linker
about functions such as tmpnam. Those warnings can be ignored - only
compiler warnings are relevant to -Werror, not linker warnings.
* configure.ac (--disable-werror): New configure option.
(enable_werror): New AC_SUBST.
* configure: Regenerated.
* config.make.in (enable-werror): New variable.
* Makeconfig [$(enable-werror) = yes] (+gccwarn): Add -Werror
-Wno-error=undef.
(+gccwarn-c): Do not use -Werror=implicit-function-declaration.
* manual/install.texi (Configuring and compiling): Document
--disable-werror.
* INSTALL: Regenerated.
* debug/Makefile (CFLAGS-tst-chk1.c): Add -Wno-error.
(CFLAGS-tst-chk2.c): Likewise.
(CFLAGS-tst-chk3.c): Likewise.
(CFLAGS-tst-chk4.cc): Likewise.
(CFLAGS-tst-chk5.cc): Likewise.
(CFLAGS-tst-chk6.cc): Likewise.
(CFLAGS-tst-lfschk1.c): Likewise.
(CFLAGS-tst-lfschk2.c): Likewise.
(CFLAGS-tst-lfschk3.c): Likewise.
(CFLAGS-tst-lfschk4.cc): Likewise.
(CFLAGS-tst-lfschk5.cc): Likewise.
(CFLAGS-tst-lfschk6.cc): Likewise.
2014-12-10 01:14:48 +00:00
# Check whether --enable-werror was given.
if test "${enable_werror+set}" = set; then :
enableval=$enable_werror; enable_werror=$enableval
else
enable_werror=yes
fi
2009-04-05 18:49:28 +00:00
# Check whether --enable-multi-arch was given.
2010-07-10 02:25:39 +00:00
if test "${enable_multi_arch+set}" = set; then :
2009-04-05 18:49:28 +00:00
enableval=$enable_multi_arch; multi_arch=$enableval
1997-07-14 21:49:20 +00:00
else
2009-12-24 04:22:46 +00:00
multi_arch=default
1997-07-14 21:49:20 +00:00
fi
1998-04-07 09:21:28 +00:00
2017-07-06 17:37:30 +00:00
# Check whether --enable-experimental-malloc was given.
if test "${enable_experimental_malloc+set}" = set; then :
enableval=$enable_experimental_malloc; experimental_malloc=$enableval
else
experimental_malloc=yes
fi
2020-12-21 15:03:03 +00:00
# Check whether --enable-memory-tagging was given.
if test "${enable_memory_tagging+set}" = set; then :
enableval=$enable_memory_tagging; memory_tagging=$enableval
else
memory_tagging=no
fi
if test "$memory_tagging" = yes; then
# Only enable this on architectures that support it.
case $host_cpu in
aarch64)
$as_echo "#define USE_MTAG 1" >>confdefs.h
;;
esac
fi
2018-06-29 14:53:47 +00:00
# Check whether --enable-crypt was given.
if test "${enable_crypt+set}" = set; then :
enableval=$enable_crypt; build_crypt=$enableval
else
build_crypt=yes
fi
2009-04-05 18:49:28 +00:00
# Check whether --enable-nss-crypt was given.
2010-07-10 02:25:39 +00:00
if test "${enable_nss_crypt+set}" = set; then :
2009-04-05 18:49:28 +00:00
enableval=$enable_nss_crypt; nss_crypt=$enableval
1998-04-07 09:21:28 +00:00
else
2009-04-05 18:49:28 +00:00
nss_crypt=no
1998-04-07 09:21:28 +00:00
fi
2018-06-29 14:53:47 +00:00
if test x$build_libcrypt = xno && test x$nss_crypt = xyes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-nss-crypt has no effect when libcrypt is disabled" >&5
$as_echo "$as_me: WARNING: --enable-nss-crypt has no effect when libcrypt is disabled" >&2;}
nss_crypt=no
fi
2009-04-05 18:49:28 +00:00
if test x$nss_crypt = xyes; then
nss_includes=-I$(nss-config --includedir 2>/dev/null)
if test $? -ne 0; then
2010-12-25 01:14:37 +00:00
as_fn_error $? "cannot find include directory with nss-config" "$LINENO" 5
2007-06-08 03:17:15 +00:00
fi
2017-10-04 13:02:35 +00:00
nspr_includes=-I$(nspr-config --includedir 2>/dev/null)
if test $? -ne 0; then
as_fn_error $? "cannot find include directory with nspr-config" "$LINENO" 5
fi
2009-04-05 18:49:28 +00:00
old_CFLAGS="$CFLAGS"
2017-10-04 13:02:35 +00:00
CFLAGS="$CFLAGS $nss_includes $nspr_includes"
2009-04-05 18:49:28 +00:00
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
2009-04-05 18:49:28 +00:00
typedef int PRBool;
#include <hasht.h>
#include <nsslowhash.h>
void f (void) { NSSLOW_Init (); }
2011-06-10 18:09:12 +00:00
int
main ()
{
;
return 0;
}
2009-04-05 18:49:28 +00:00
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_c_try_compile "$LINENO"; then :
2009-04-05 18:49:28 +00:00
libc_cv_nss_crypt=yes
1998-04-02 17:42:53 +00:00
else
2010-12-25 01:14:37 +00:00
as_fn_error $? "
2010-07-10 02:25:39 +00:00
cannot find NSS headers with lowlevel hash function interfaces" "$LINENO" 5
1997-12-01 17:16:22 +00:00
fi
2009-04-05 18:49:28 +00:00
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
old_LIBS="$LIBS"
2016-12-02 20:39:09 +00:00
old_LDFLAGS="$LDFLAGS"
2009-04-05 18:49:28 +00:00
LIBS="$LIBS -lfreebl3"
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2009-04-05 18:49:28 +00:00
/* end confdefs.h. */
typedef int PRBool;
#include <hasht.h>
#include <nsslowhash.h>
int
main ()
{
NSSLOW_Init();
;
return 0;
}
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_c_try_link "$LINENO"; then :
2009-04-05 18:49:28 +00:00
libc_cv_nss_crypt=yes
1997-07-14 21:49:20 +00:00
else
2010-12-25 01:14:37 +00:00
as_fn_error $? "
2010-07-10 02:25:39 +00:00
cannot link program using lowlevel NSS hash functions" "$LINENO" 5
1997-07-14 21:49:20 +00:00
fi
2010-07-10 02:25:39 +00:00
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
2016-12-02 20:39:09 +00:00
# Check to see if there is a static NSS cryptographic library.
# If there isn't then we can't link anything with libcrypt.a,
# and that might mean disabling some static tests.
LDFLAGS="$LDFLAGS -static"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
typedef int PRBool;
#include <hasht.h>
#include <nsslowhash.h>
int
main ()
{
NSSLOW_Init();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
libc_cv_static_nss_crypt=yes
else
libc_cv_static_nss_crypt=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS="$old_LDFLAGS"
2009-04-05 18:49:28 +00:00
CFLAGS="$old_CFLAGS"
LIBS="$old_LIBS"
1998-04-07 09:21:28 +00:00
else
2009-04-05 18:49:28 +00:00
libc_cv_nss_crypt=no
2016-12-02 20:39:09 +00:00
libc_cv_static_nss_crypt=no
1998-04-07 09:21:28 +00:00
fi
1997-07-14 21:49:20 +00:00
2012-05-25 20:40:20 +00:00
2016-12-02 20:39:09 +00:00
2012-05-25 20:40:20 +00:00
# Check whether --enable-systemtap was given.
if test "${enable_systemtap+set}" = set; then :
enableval=$enable_systemtap; systemtap=$enableval
else
systemtap=no
fi
if test "x$systemtap" != xno; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemtap static probe support" >&5
$as_echo_n "checking for systemtap static probe support... " >&6; }
if ${libc_cv_sdt+:} false; then :
$as_echo_n "(cached) " >&6
else
old_CFLAGS="$CFLAGS"
2015-10-27 21:47:22 +00:00
CFLAGS="-std=gnu11 $CFLAGS"
2012-05-25 20:40:20 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/sdt.h>
void foo (int i, void *p)
{
asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
:: STAP_PROBE_ASM_OPERANDS (2, i, p));
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
libc_cv_sdt=yes
else
libc_cv_sdt=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CFLAGS="$old_CFLAGS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sdt" >&5
$as_echo "$libc_cv_sdt" >&6; }
if test $libc_cv_sdt = yes; then
$as_echo "#define USE_STAP_PROBE 1" >>confdefs.h
elif test "x$systemtap" != xauto; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "systemtap support needs sys/sdt.h with asm support
See \`config.log' for more details" "$LINENO" 5; }
fi
fi
2012-08-22 20:35:55 +00:00
# Check whether --enable-build-nscd was given.
if test "${enable_build_nscd+set}" = set; then :
enableval=$enable_build_nscd; build_nscd=$enableval
else
build_nscd=default
fi
2012-08-22 20:31:12 +00:00
# Note the use of $use_nscd is near the bottom of the file.
# Check whether --enable-nscd was given.
if test "${enable_nscd+set}" = set; then :
enableval=$enable_nscd; use_nscd=$enableval
else
use_nscd=yes
fi
2013-07-19 06:42:03 +00:00
# Check whether --enable-pt_chown was given.
if test "${enable_pt_chown+set}" = set; then :
enableval=$enable_pt_chown; build_pt_chown=$enableval
else
build_pt_chown=no
fi
2013-08-25 20:01:52 +00:00
if test "$build_pt_chown" = yes; then
2013-07-19 06:42:03 +00:00
$as_echo "#define HAVE_PT_CHOWN 1" >>confdefs.h
fi
2016-12-31 18:02:17 +00:00
# Check whether --enable-tunables was given.
if test "${enable_tunables+set}" = set; then :
enableval=$enable_tunables; have_tunables=$enableval
else
2017-06-15 09:42:54 +00:00
have_tunables=yes
2016-12-31 18:02:17 +00:00
fi
if test "$have_tunables" = yes; then
$as_echo "#define HAVE_TUNABLES 1" >>confdefs.h
fi
2015-02-11 23:27:50 +00:00
# The abi-tags file uses a fairly simplistic model for name recognition that
# can't distinguish i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a
# $host_os of `gnu*' here to be `gnu-gnu*' just so that it can tell.
# This doesn't get used much beyond that, so it's fairly safe.
case "$host_os" in
linux*)
;;
gnu*)
host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
;;
esac
2015-05-14 14:28:06 +00:00
# Check whether --enable-mathvec was given.
if test "${enable_mathvec+set}" = set; then :
enableval=$enable_mathvec; build_mathvec=$enableval
else
build_mathvec=notset
fi
2021-05-22 02:42:48 +00:00
2019-12-03 17:48:18 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
#ifndef __CET__
2020-07-08 11:06:55 +00:00
# error no CET compiler support
2019-12-03 17:48:18 +00:00
#endif
;
return 0;
}
_ACEOF
2021-05-22 02:42:48 +00:00
if ac_fn_c_try_cpp "$LINENO"; then :
2019-12-03 17:48:18 +00:00
libc_cv_compiler_default_cet=yes
else
libc_cv_compiler_default_cet=no
fi
2021-05-22 02:42:48 +00:00
rm -f conftest.err conftest.i conftest.$ac_ext
2019-12-03 17:48:18 +00:00
x86: Support IBT and SHSTK in Intel CET [BZ #21598]
Intel Control-flow Enforcement Technology (CET) instructions:
https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-en
forcement-technology-preview.pdf
includes Indirect Branch Tracking (IBT) and Shadow Stack (SHSTK).
GNU_PROPERTY_X86_FEATURE_1_IBT is added to GNU program property to
indicate that all executable sections are compatible with IBT when
ENDBR instruction starts each valid target where an indirect branch
instruction can land. Linker sets GNU_PROPERTY_X86_FEATURE_1_IBT on
output only if it is set on all relocatable inputs.
On an IBT capable processor, the following steps should be taken:
1. When loading an executable without an interpreter, enable IBT and
lock IBT if GNU_PROPERTY_X86_FEATURE_1_IBT is set on the executable.
2. When loading an executable with an interpreter, enable IBT if
GNU_PROPERTY_X86_FEATURE_1_IBT is set on the interpreter.
a. If GNU_PROPERTY_X86_FEATURE_1_IBT isn't set on the executable,
disable IBT.
b. Lock IBT.
3. If IBT is enabled, when loading a shared object without
GNU_PROPERTY_X86_FEATURE_1_IBT:
a. If legacy interwork is allowed, then mark all pages in executable
PT_LOAD segments in legacy code page bitmap. Failure of legacy code
page bitmap allocation causes an error.
b. If legacy interwork isn't allowed, it causes an error.
GNU_PROPERTY_X86_FEATURE_1_SHSTK is added to GNU program property to
indicate that all executable sections are compatible with SHSTK where
return address popped from shadow stack always matches return address
popped from normal stack. Linker sets GNU_PROPERTY_X86_FEATURE_1_SHSTK
on output only if it is set on all relocatable inputs.
On a SHSTK capable processor, the following steps should be taken:
1. When loading an executable without an interpreter, enable SHSTK if
GNU_PROPERTY_X86_FEATURE_1_SHSTK is set on the executable.
2. When loading an executable with an interpreter, enable SHSTK if
GNU_PROPERTY_X86_FEATURE_1_SHSTK is set on interpreter.
a. If GNU_PROPERTY_X86_FEATURE_1_SHSTK isn't set on the executable
or any shared objects loaded via the DT_NEEDED tag, disable SHSTK.
b. Otherwise lock SHSTK.
3. After SHSTK is enabled, it is an error to load a shared object
without GNU_PROPERTY_X86_FEATURE_1_SHSTK.
To enable CET support in glibc, --enable-cet is required to configure
glibc. When CET is enabled, both compiler and assembler must support
CET. Otherwise, it is a configure-time error.
To support CET run-time control,
1. _dl_x86_feature_1 is added to the writable ld.so namespace to indicate
if IBT or SHSTK are enabled at run-time. It should be initialized by
init_cpu_features.
2. For dynamic executables:
a. A l_cet field is added to struct link_map to indicate if IBT or
SHSTK is enabled in an ELF module. _dl_process_pt_note or
_rtld_process_pt_note is called to process PT_NOTE segment for
GNU program property and set l_cet.
b. _dl_open_check is added to check IBT and SHSTK compatibilty when
dlopening a shared object.
3. Replace i386 _dl_runtime_resolve and _dl_runtime_profile with
_dl_runtime_resolve_shstk and _dl_runtime_profile_shstk, respectively if
SHSTK is enabled.
CET run-time control can be changed via GLIBC_TUNABLES with
$ export GLIBC_TUNABLES=glibc.tune.x86_shstk=[permissive|on|off]
$ export GLIBC_TUNABLES=glibc.tune.x86_ibt=[permissive|on|off]
1. permissive: SHSTK is disabled when dlopening a legacy ELF module.
2. on: IBT or SHSTK are always enabled, regardless if there are IBT or
SHSTK bits in GNU program property.
3. off: IBT or SHSTK are always disabled, regardless if there are IBT or
SHSTK bits in GNU program property.
<cet.h> from CET-enabled GCC is automatically included by assembly codes
to add GNU_PROPERTY_X86_FEATURE_1_IBT and GNU_PROPERTY_X86_FEATURE_1_SHSTK
to GNU program property. _CET_ENDBR is added at the entrance of all
assembly functions whose address may be taken. _CET_NOTRACK is used to
insert NOTRACK prefix with indirect jump table to support IBT. It is
defined as notrack when _CET_NOTRACK is defined in <cet.h>.
[BZ #21598]
* configure.ac: Add --enable-cet.
* configure: Regenerated.
* elf/Makefille (all-built-dso): Add a comment.
* elf/dl-load.c (filebuf): Moved before "dynamic-link.h".
Include <dl-prop.h>.
(_dl_map_object_from_fd): Call _dl_process_pt_note on PT_NOTE
segment.
* elf/dl-open.c: Include <dl-prop.h>.
(dl_open_worker): Call _dl_open_check.
* elf/rtld.c: Include <dl-prop.h>.
(dl_main): Call _rtld_process_pt_note on PT_NOTE segment. Call
_rtld_main_check.
* sysdeps/generic/dl-prop.h: New file.
* sysdeps/i386/dl-cet.c: Likewise.
* sysdeps/unix/sysv/linux/x86/cpu-features.c: Likewise.
* sysdeps/unix/sysv/linux/x86/dl-cet.h: Likewise.
* sysdeps/x86/cet-tunables.h: Likewise.
* sysdeps/x86/check-cet.awk: Likewise.
* sysdeps/x86/configure: Likewise.
* sysdeps/x86/configure.ac: Likewise.
* sysdeps/x86/dl-cet.c: Likewise.
* sysdeps/x86/dl-procruntime.c: Likewise.
* sysdeps/x86/dl-prop.h: Likewise.
* sysdeps/x86/libc-start.h: Likewise.
* sysdeps/x86/link_map.h: Likewise.
* sysdeps/i386/dl-trampoline.S (_dl_runtime_resolve): Add
_CET_ENDBR.
(_dl_runtime_profile): Likewise.
(_dl_runtime_resolve_shstk): New.
(_dl_runtime_profile_shstk): Likewise.
* sysdeps/linux/x86/Makefile (sysdep-dl-routines): Add dl-cet
if CET is enabled.
(CFLAGS-.o): Add -fcf-protection if CET is enabled.
(CFLAGS-.os): Likewise.
(CFLAGS-.op): Likewise.
(CFLAGS-.oS): Likewise.
(asm-CPPFLAGS): Add -fcf-protection -include cet.h if CET
is enabled.
(tests-special): Add $(objpfx)check-cet.out.
(cet-built-dso): New.
(+$(cet-built-dso:=.note)): Likewise.
(common-generated): Add $(cet-built-dso:$(common-objpfx)%=%.note).
($(objpfx)check-cet.out): New.
(generated): Add check-cet.out.
* sysdeps/x86/cpu-features.c: Include <dl-cet.h> and
<cet-tunables.h>.
(TUNABLE_CALLBACK (set_x86_ibt)): New prototype.
(TUNABLE_CALLBACK (set_x86_shstk)): Likewise.
(init_cpu_features): Call get_cet_status to check CET status
and update dl_x86_feature_1 with CET status. Call
TUNABLE_CALLBACK (set_x86_ibt) and TUNABLE_CALLBACK
(set_x86_shstk). Disable and lock CET in libc.a.
* sysdeps/x86/cpu-tunables.c: Include <cet-tunables.h>.
(TUNABLE_CALLBACK (set_x86_ibt)): New function.
(TUNABLE_CALLBACK (set_x86_shstk)): Likewise.
* sysdeps/x86/sysdep.h (_CET_NOTRACK): New.
(_CET_ENDBR): Define if not defined.
(ENTRY): Add _CET_ENDBR.
* sysdeps/x86/dl-tunables.list (glibc.tune): Add x86_ibt and
x86_shstk.
* sysdeps/x86_64/dl-trampoline.h (_dl_runtime_resolve): Add
_CET_ENDBR.
(_dl_runtime_profile): Likewise.
2018-07-16 21:08:15 +00:00
# Check whether --enable-cet was given.
if test "${enable_cet+set}" = set; then :
enableval=$enable_cet; enable_cet=$enableval
else
2019-12-03 17:48:18 +00:00
enable_cet=$libc_cv_compiler_default_cet
x86: Support IBT and SHSTK in Intel CET [BZ #21598]
Intel Control-flow Enforcement Technology (CET) instructions:
https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-en
forcement-technology-preview.pdf
includes Indirect Branch Tracking (IBT) and Shadow Stack (SHSTK).
GNU_PROPERTY_X86_FEATURE_1_IBT is added to GNU program property to
indicate that all executable sections are compatible with IBT when
ENDBR instruction starts each valid target where an indirect branch
instruction can land. Linker sets GNU_PROPERTY_X86_FEATURE_1_IBT on
output only if it is set on all relocatable inputs.
On an IBT capable processor, the following steps should be taken:
1. When loading an executable without an interpreter, enable IBT and
lock IBT if GNU_PROPERTY_X86_FEATURE_1_IBT is set on the executable.
2. When loading an executable with an interpreter, enable IBT if
GNU_PROPERTY_X86_FEATURE_1_IBT is set on the interpreter.
a. If GNU_PROPERTY_X86_FEATURE_1_IBT isn't set on the executable,
disable IBT.
b. Lock IBT.
3. If IBT is enabled, when loading a shared object without
GNU_PROPERTY_X86_FEATURE_1_IBT:
a. If legacy interwork is allowed, then mark all pages in executable
PT_LOAD segments in legacy code page bitmap. Failure of legacy code
page bitmap allocation causes an error.
b. If legacy interwork isn't allowed, it causes an error.
GNU_PROPERTY_X86_FEATURE_1_SHSTK is added to GNU program property to
indicate that all executable sections are compatible with SHSTK where
return address popped from shadow stack always matches return address
popped from normal stack. Linker sets GNU_PROPERTY_X86_FEATURE_1_SHSTK
on output only if it is set on all relocatable inputs.
On a SHSTK capable processor, the following steps should be taken:
1. When loading an executable without an interpreter, enable SHSTK if
GNU_PROPERTY_X86_FEATURE_1_SHSTK is set on the executable.
2. When loading an executable with an interpreter, enable SHSTK if
GNU_PROPERTY_X86_FEATURE_1_SHSTK is set on interpreter.
a. If GNU_PROPERTY_X86_FEATURE_1_SHSTK isn't set on the executable
or any shared objects loaded via the DT_NEEDED tag, disable SHSTK.
b. Otherwise lock SHSTK.
3. After SHSTK is enabled, it is an error to load a shared object
without GNU_PROPERTY_X86_FEATURE_1_SHSTK.
To enable CET support in glibc, --enable-cet is required to configure
glibc. When CET is enabled, both compiler and assembler must support
CET. Otherwise, it is a configure-time error.
To support CET run-time control,
1. _dl_x86_feature_1 is added to the writable ld.so namespace to indicate
if IBT or SHSTK are enabled at run-time. It should be initialized by
init_cpu_features.
2. For dynamic executables:
a. A l_cet field is added to struct link_map to indicate if IBT or
SHSTK is enabled in an ELF module. _dl_process_pt_note or
_rtld_process_pt_note is called to process PT_NOTE segment for
GNU program property and set l_cet.
b. _dl_open_check is added to check IBT and SHSTK compatibilty when
dlopening a shared object.
3. Replace i386 _dl_runtime_resolve and _dl_runtime_profile with
_dl_runtime_resolve_shstk and _dl_runtime_profile_shstk, respectively if
SHSTK is enabled.
CET run-time control can be changed via GLIBC_TUNABLES with
$ export GLIBC_TUNABLES=glibc.tune.x86_shstk=[permissive|on|off]
$ export GLIBC_TUNABLES=glibc.tune.x86_ibt=[permissive|on|off]
1. permissive: SHSTK is disabled when dlopening a legacy ELF module.
2. on: IBT or SHSTK are always enabled, regardless if there are IBT or
SHSTK bits in GNU program property.
3. off: IBT or SHSTK are always disabled, regardless if there are IBT or
SHSTK bits in GNU program property.
<cet.h> from CET-enabled GCC is automatically included by assembly codes
to add GNU_PROPERTY_X86_FEATURE_1_IBT and GNU_PROPERTY_X86_FEATURE_1_SHSTK
to GNU program property. _CET_ENDBR is added at the entrance of all
assembly functions whose address may be taken. _CET_NOTRACK is used to
insert NOTRACK prefix with indirect jump table to support IBT. It is
defined as notrack when _CET_NOTRACK is defined in <cet.h>.
[BZ #21598]
* configure.ac: Add --enable-cet.
* configure: Regenerated.
* elf/Makefille (all-built-dso): Add a comment.
* elf/dl-load.c (filebuf): Moved before "dynamic-link.h".
Include <dl-prop.h>.
(_dl_map_object_from_fd): Call _dl_process_pt_note on PT_NOTE
segment.
* elf/dl-open.c: Include <dl-prop.h>.
(dl_open_worker): Call _dl_open_check.
* elf/rtld.c: Include <dl-prop.h>.
(dl_main): Call _rtld_process_pt_note on PT_NOTE segment. Call
_rtld_main_check.
* sysdeps/generic/dl-prop.h: New file.
* sysdeps/i386/dl-cet.c: Likewise.
* sysdeps/unix/sysv/linux/x86/cpu-features.c: Likewise.
* sysdeps/unix/sysv/linux/x86/dl-cet.h: Likewise.
* sysdeps/x86/cet-tunables.h: Likewise.
* sysdeps/x86/check-cet.awk: Likewise.
* sysdeps/x86/configure: Likewise.
* sysdeps/x86/configure.ac: Likewise.
* sysdeps/x86/dl-cet.c: Likewise.
* sysdeps/x86/dl-procruntime.c: Likewise.
* sysdeps/x86/dl-prop.h: Likewise.
* sysdeps/x86/libc-start.h: Likewise.
* sysdeps/x86/link_map.h: Likewise.
* sysdeps/i386/dl-trampoline.S (_dl_runtime_resolve): Add
_CET_ENDBR.
(_dl_runtime_profile): Likewise.
(_dl_runtime_resolve_shstk): New.
(_dl_runtime_profile_shstk): Likewise.
* sysdeps/linux/x86/Makefile (sysdep-dl-routines): Add dl-cet
if CET is enabled.
(CFLAGS-.o): Add -fcf-protection if CET is enabled.
(CFLAGS-.os): Likewise.
(CFLAGS-.op): Likewise.
(CFLAGS-.oS): Likewise.
(asm-CPPFLAGS): Add -fcf-protection -include cet.h if CET
is enabled.
(tests-special): Add $(objpfx)check-cet.out.
(cet-built-dso): New.
(+$(cet-built-dso:=.note)): Likewise.
(common-generated): Add $(cet-built-dso:$(common-objpfx)%=%.note).
($(objpfx)check-cet.out): New.
(generated): Add check-cet.out.
* sysdeps/x86/cpu-features.c: Include <dl-cet.h> and
<cet-tunables.h>.
(TUNABLE_CALLBACK (set_x86_ibt)): New prototype.
(TUNABLE_CALLBACK (set_x86_shstk)): Likewise.
(init_cpu_features): Call get_cet_status to check CET status
and update dl_x86_feature_1 with CET status. Call
TUNABLE_CALLBACK (set_x86_ibt) and TUNABLE_CALLBACK
(set_x86_shstk). Disable and lock CET in libc.a.
* sysdeps/x86/cpu-tunables.c: Include <cet-tunables.h>.
(TUNABLE_CALLBACK (set_x86_ibt)): New function.
(TUNABLE_CALLBACK (set_x86_shstk)): Likewise.
* sysdeps/x86/sysdep.h (_CET_NOTRACK): New.
(_CET_ENDBR): Define if not defined.
(ENTRY): Add _CET_ENDBR.
* sysdeps/x86/dl-tunables.list (glibc.tune): Add x86_ibt and
x86_shstk.
* sysdeps/x86_64/dl-trampoline.h (_dl_runtime_resolve): Add
_CET_ENDBR.
(_dl_runtime_profile): Likewise.
2018-07-16 21:08:15 +00:00
fi
2021-04-09 17:47:27 +00:00
# Check whether --enable-scv was given.
if test "${enable_scv+set}" = set; then :
enableval=$enable_scv; use_scv=$enableval
else
use_scv=yes
fi
if test "$use_scv" != "no"; then :
$as_echo "#define USE_PPC_SCV 1" >>confdefs.h
fi
2009-04-05 18:49:28 +00:00
# We keep the original values in `$config_*' and never modify them, so we
# can write them unchanged into config.make. Everything else uses
# $machine, $vendor, and $os, and changes them whenever convenient.
config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
2002-10-17 23:48:55 +00:00
2009-04-05 18:49:28 +00:00
# Don't allow vendor == "unknown"
test "$config_vendor" = unknown && config_vendor=
config_os="`echo $config_os | sed 's/^unknown-//'`"
2002-10-17 23:48:55 +00:00
2009-04-05 18:49:28 +00:00
# Some configurations imply other options.
2012-01-08 01:30:26 +00:00
elf=yes
2002-10-17 23:48:55 +00:00
Remove add-ons mechanism.
glibc has an add-ons mechanism to allow additional software to be
integrated into the glibc build. Such add-ons may be within the glibc
source tree, or outside it at a path passed to the --enable-add-ons
configure option.
localedata and crypt were once add-ons, distributed in separate
release tarballs, but long since stopped using that mechanism.
Linuxthreads was always an add-on. Ports spent some time as an add-on
with separate release tarballs, then was first moved into the glibc
source tree, then had its sysdeps files moved into the main sysdeps
hierarchy so the add-ons mechanism was no longer used. NPTL spent
some time as an add-on in the main glibc tree before stopping using
the add-on mechanism. libidn used to have separate release tarballs
but no longer does so, but still uses the add-ons mechanism within the
glibc source tree. Various other software has supported building with
the add-ons mechanism at times in the past, but I don't think any is
still widely used.
Add-ons involve significant, little-used complexity in the glibc build
system, and make it hard to understand what the space of possible
glibc configurations is. This patch removes the add-ons mechanism.
libidn is now built via the Subdirs mechanism to cause any
configuration using sysdeps/unix/inet to build libidn; HAVE_LIBIDN
(which effectively means shared libraries are available) is now
defined via sysdeps/unix/inet/configure. Various references to
add-ons around the source tree are removed (in the case of maint.texi,
the example list of sysdeps directories is still very out of date).
Externally maintained ports should now put their files in the normal
sysdeps directory structure rather than being arranged as add-ons;
they probably need to change e.g. elf.h anyway, rather than actually
being able to work just as a drop-in subtree. Hurd libpthread should
be arranged similarly to NPTL, so some files might go in a
hurd-pthreads (or similar) top-level directory in glibc, while sysdeps
files should go in the normal sysdeps directory structure (possibly in
hurd or hurd-pthreads subdirectories, just as there are nptl
subdirectories in the sysdeps tree).
Tested for x86_64, and with build-many-glibcs.py.
* configure.ac (--enable-add-ons): Remove option.
(machine): Do not mention add-ons in comment.
(LIBC_PRECONFIGURE): Likewise.
(add_ons): Remove variable and sanity checks and logic to locate
add-ons.
(add_ons_automatic): Remove variable.
(configured_add_ons): Likewise.
(add_ons_sfx): Likewise.
(add_ons_pfx): Likewise.
(add_on_subdirs): Likewise.
(sysnames_add_ons): Likewise. Remove loop over add-ons and
consideration of add-ons in Implies handling.
(sysdeps_add_ons): Likewise.
* configure: Regenerated.
* libidn/configure.ac: Remove.
* libidn/configure: Likewise.
* sysdeps/unix/inet/configure.ac: New file.
* sysdeps/unix/inet/configure: New generated file.
* sysdeps/unix/inet/Subdirs: Add libidn.
* Makeconfig (sysdeps-srcdirs): Remove variable.
(+sysdep_dirs): Do not include $(sysdeps-srcdirs).
($(common-objpfx)config.status): Do not depend on add-on files.
($(common-objpfx)shlib-versions.v.i): Do not mention add-ons in
comment.
(all-subdirs): Do not include $(add-on-subdirs).
* Makefile (dist-prepare): Do not use $(sysdeps-add-ons).
* config.make.in (add-ons): Remove variable.
(add-on-subdirs): Likewise.
(sysdeps-add-ons): Likewise.
* manual/Makefile (add-chapters): Remove.
($(objpfx)texis): Do not depend on $(add-chapters).
(nonexamples): Do not handle $(add-chapters).
(examples): Do not handle $(add-ons).
(chapters.% top-menu.%): Do not pass '$(add-chapters)' to
libc-texinfo.sh.
* manual/install.texi (Installation): Do not mention add-ons.
(--enable-add-ons): Do not document configure option.
* INSTALL: Regenerated.
* manual/libc-texinfo.sh: Do not handle $2 add-ons argument.
* manual/maint.texi (Hierarchy Conventions): Do not mention
add-ons.
* scripts/build-many-glibcs.py (Glibc.build_glibc): Do not use
--enable-add-ons.
* scripts/gen-sorted.awk: Do not handle Subdirs files from
add-ons.
* scripts/test-installation.pl: Do not handle glibc-compat add-on.
* sysdeps/nptl/Makeconfig: Do not mention add-ons in comment.
2017-10-05 15:58:13 +00:00
# The configure fragment of a port can modify these to supplement
2009-04-05 18:49:28 +00:00
# or override the table in the case statement below. No fragment should
# ever change the config_* variables, however.
machine=$config_machine
vendor=$config_vendor
os=$config_os
base_os=''
2002-10-17 23:48:55 +00:00
2009-04-05 18:49:28 +00:00
submachine=
2007-06-08 03:17:15 +00:00
2009-04-05 18:49:28 +00:00
# Check whether --with-cpu was given.
2010-07-10 02:25:39 +00:00
if test "${with_cpu+set}" = set; then :
2009-04-05 18:49:28 +00:00
withval=$with_cpu; case "$withval" in
2010-12-25 01:14:37 +00:00
yes|'') as_fn_error $? "--with-cpu requires an argument" "$LINENO" 5 ;;
2009-04-05 18:49:28 +00:00
no) ;;
*) submachine="$withval" ;;
esac
2002-10-17 23:48:55 +00:00
fi
2015-04-09 20:55:11 +00:00
# An preconfigure script can set this when it wants to disable the sanity
# check below.
libc_config_ok=no
Remove --with-fp / --without-fp.
There is a configure option --without-fp that specifies that nofpu
sysdeps directories should be used instead of fpu directories.
For most glibc configurations, this option is of no use: either there
is no valid nofpu variant of that configuration, or there are no fpu
or nofpu sysdeps directories for that processor and so the option does
nothing. For a few configurations, if you are using a soft-float
compiler this option is required, and failing to use it generally
results in compilation errors from inline asm using unavailable
floating-point instructions.
We're moving away from --with-cpu to configuring glibc based on how
the compiler generates code, and it is natural to do so for
--without-fp as well; in most cases the soft-float and hard-float ABIs
are incompatible so you have no hope of building a working glibc with
an inappropriately configured compiler or libgcc.
This patch eliminates --without-fp, replacing it entirely by automatic
configuration based on the compiler. Configurations for which this is
relevant (coldfire / mips / powerpc32 / sh) define a variable
with_fp_cond in their preconfigure fragments (under the same
conditions under which those fragments do anything); this is a
preprocessor conditional which the toplevel configure script then uses
in a test to determine which sysdeps directories to use.
The config.make with-fp variable remains. It's used only by powerpc
(sysdeps/powerpc/powerpc32/Makefile) to add -mhard-float to various
flags variables. For powerpc, -mcpu= options can imply use of
soft-float. That could be an issue if you want to build for
e.g. 476fp, but are using --with-cpu=476 because there isn't a 476fp
sysdeps directory. If in future we eliminate --with-cpu and replace
it entirely by testing the compiler, it would be natural at that point
to eliminate that code as well (as the user should then just use a
compiler defaulting to 476fp and the 476 sysdeps directory would be
used automatically).
Tested for x86_64, and tested with build-many-glibcs.py that installed
shared libraries are unchanged by this patch.
* configure.ac (--with-fp): Remove configure option.
(with_fp_cond): New variable.
(libc_cv_with_fp): New configure test. Use this variable instead
of with_fp.
* configure: Regenerated.
* config.make.in (with-fp): Use @libc_cv_with_fp@.
* manual/install.texi (Configuring and compiling): Remove
--without-fp.
* INSTALL: Regenerated.
* sysdeps/m68k/preconfigure (with_fp_cond): Define for ColdFire.
* sysdeps/mips/preconfigure (with_fp_cond): Define.
* sysdeps/powerpc/preconfigure (with_fp_cond): Define for 32-bit.
* sysdeps/sh/preconfigure (with_fp_cond): Define.
* scripts/build-many-glibcs.py (Context.add_all_configs): Do not
use --without-fp to configure glibc.
2017-12-12 13:56:47 +00:00
# A preconfigure script for a system that may or may not use fpu
# sysdeps directories sets this to a preprocessor conditional for
# whether to use such directories.
with_fp_cond=1
2012-03-16 18:12:50 +00:00
if frags=`ls -d $srcdir/sysdeps/*/preconfigure 2> /dev/null`
then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysdeps preconfigure fragments" >&5
$as_echo_n "checking for sysdeps preconfigure fragments... " >&6; }
for frag in $frags; do
name=`echo "$frag" | sed 's@/[^/]*$@@;s@^.*/@@'`
echo $ECHO_N "$name $ECHO_C" >&6
. "$frag"
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
$as_echo "" >&6; }
fi
2002-10-17 23:48:55 +00:00
2009-04-05 18:49:28 +00:00
###
### By using the undocumented --enable-hacker-mode option for configure
### one can skip this test to make the configuration not fail for unsupported
### platforms.
###
if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
case "$machine-$host_os" in
2012-04-26 18:42:42 +00:00
*-linux* | *-gnu*)
2009-04-05 18:49:28 +00:00
;;
*)
2016-01-16 00:57:36 +00:00
as_fn_error $? "
*** The GNU C library is currently unavailable for this platform.
*** If you are interested in seeing glibc on this platform visit
*** the \"How to submit a new port\" in the wiki:
2016-02-18 20:31:04 +00:00
*** https://sourceware.org/glibc/wiki/#Development
2016-01-16 00:57:36 +00:00
*** and join the community!" "$LINENO" 5
2009-04-05 18:49:28 +00:00
;;
esac
2002-10-17 23:48:55 +00:00
fi
2003-09-23 12:07:26 +00:00
2014-06-25 17:52:56 +00:00
# Set base_machine if not set by a preconfigure fragment.
test -n "$base_machine" || base_machine=$machine
2007-06-08 03:17:15 +00:00
2002-10-17 23:48:55 +00:00
Remove --with-fp / --without-fp.
There is a configure option --without-fp that specifies that nofpu
sysdeps directories should be used instead of fpu directories.
For most glibc configurations, this option is of no use: either there
is no valid nofpu variant of that configuration, or there are no fpu
or nofpu sysdeps directories for that processor and so the option does
nothing. For a few configurations, if you are using a soft-float
compiler this option is required, and failing to use it generally
results in compilation errors from inline asm using unavailable
floating-point instructions.
We're moving away from --with-cpu to configuring glibc based on how
the compiler generates code, and it is natural to do so for
--without-fp as well; in most cases the soft-float and hard-float ABIs
are incompatible so you have no hope of building a working glibc with
an inappropriately configured compiler or libgcc.
This patch eliminates --without-fp, replacing it entirely by automatic
configuration based on the compiler. Configurations for which this is
relevant (coldfire / mips / powerpc32 / sh) define a variable
with_fp_cond in their preconfigure fragments (under the same
conditions under which those fragments do anything); this is a
preprocessor conditional which the toplevel configure script then uses
in a test to determine which sysdeps directories to use.
The config.make with-fp variable remains. It's used only by powerpc
(sysdeps/powerpc/powerpc32/Makefile) to add -mhard-float to various
flags variables. For powerpc, -mcpu= options can imply use of
soft-float. That could be an issue if you want to build for
e.g. 476fp, but are using --with-cpu=476 because there isn't a 476fp
sysdeps directory. If in future we eliminate --with-cpu and replace
it entirely by testing the compiler, it would be natural at that point
to eliminate that code as well (as the user should then just use a
compiler defaulting to 476fp and the 476 sysdeps directory would be
used automatically).
Tested for x86_64, and tested with build-many-glibcs.py that installed
shared libraries are unchanged by this patch.
* configure.ac (--with-fp): Remove configure option.
(with_fp_cond): New variable.
(libc_cv_with_fp): New configure test. Use this variable instead
of with_fp.
* configure: Regenerated.
* config.make.in (with-fp): Use @libc_cv_with_fp@.
* manual/install.texi (Configuring and compiling): Remove
--without-fp.
* INSTALL: Regenerated.
* sysdeps/m68k/preconfigure (with_fp_cond): Define for ColdFire.
* sysdeps/mips/preconfigure (with_fp_cond): Define.
* sysdeps/powerpc/preconfigure (with_fp_cond): Define for 32-bit.
* sysdeps/sh/preconfigure (with_fp_cond): Define.
* scripts/build-many-glibcs.py (Context.add_all_configs): Do not
use --without-fp to configure glibc.
2017-12-12 13:56:47 +00:00
# Determine whether to use fpu or nofpu sysdeps directories.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for use of fpu sysdeps directories" >&5
$as_echo_n "checking for use of fpu sysdeps directories... " >&6; }
if ${libc_cv_with_fp+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.c <<EOF
#if $with_fp_cond
int dummy;
#else
# error "no hardware floating point"
#endif
EOF
libc_cv_with_fp=no
if ${CC-cc} $CFLAGS $CPPFLAGS -S conftest.c -o conftest.s \
1>&5 2>&5 ; then
libc_cv_with_fp=yes
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_with_fp" >&5
$as_echo "$libc_cv_with_fp" >&6; }
2016-12-26 09:08:18 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fstack-protector" >&5
$as_echo_n "checking for -fstack-protector... " >&6; }
if ${libc_cv_ssp+:} false; then :
$as_echo_n "(cached) " >&6
else
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -fstack-protector -xc /dev/null -S -o /dev/null'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then :
libc_cv_ssp=yes
else
libc_cv_ssp=no
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ssp" >&5
$as_echo "$libc_cv_ssp" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fstack-protector-strong" >&5
$as_echo_n "checking for -fstack-protector-strong... " >&6; }
if ${libc_cv_ssp_strong+:} false; then :
$as_echo_n "(cached) " >&6
else
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -fstack-protector-strong -xc /dev/null -S -o /dev/null'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then :
libc_cv_ssp_strong=yes
else
libc_cv_ssp_strong=no
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ssp_strong" >&5
$as_echo "$libc_cv_ssp_strong" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fstack-protector-all" >&5
$as_echo_n "checking for -fstack-protector-all... " >&6; }
if ${libc_cv_ssp_all+:} false; then :
$as_echo_n "(cached) " >&6
else
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -fstack-protector-all -xc /dev/null -S -o /dev/null'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then :
libc_cv_ssp_all=yes
else
libc_cv_ssp_all=no
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ssp_all" >&5
$as_echo "$libc_cv_ssp_all" >&6; }
stack_protector=
no_stack_protector=
if test "$libc_cv_ssp" = yes; then
no_stack_protector="-fno-stack-protector -DSTACK_PROTECTOR_LEVEL=0"
2016-12-26 09:08:41 +00:00
$as_echo "#define HAVE_CC_NO_STACK_PROTECTOR 1" >>confdefs.h
2016-12-26 09:08:18 +00:00
fi
if test "$enable_stack_protector" = yes && test "$libc_cv_ssp" = yes; then
stack_protector="-fstack-protector"
$as_echo "#define STACK_PROTECTOR_LEVEL 1" >>confdefs.h
elif test "$enable_stack_protector" = all && test "$libc_cv_ssp_all" = yes; then
stack_protector="-fstack-protector-all"
$as_echo "#define STACK_PROTECTOR_LEVEL 2" >>confdefs.h
elif test "$enable_stack_protector" = strong && test "$libc_cv_ssp_strong" = yes; then
stack_protector="-fstack-protector-strong"
$as_echo "#define STACK_PROTECTOR_LEVEL 3" >>confdefs.h
2016-12-26 09:08:54 +00:00
else
stack_protector="-fno-stack-protector"
$as_echo "#define STACK_PROTECTOR_LEVEL 0" >>confdefs.h
2016-12-26 09:08:18 +00:00
fi
2016-12-26 09:08:54 +00:00
if test -n "$stack_protector"; then
no_ssp=-fno-stack-protector
else
no_ssp=
if test "$enable_stack_protector" != no; then
as_fn_error $? "--enable-stack-protector=$enable_stack_protector specified, but specified level of stack protection is not supported by the compiler." "$LINENO" 5
fi
fi
2012-10-23 03:40:42 +00:00
# For the multi-arch option we need support in the assembler & linker.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler and linker STT_GNU_IFUNC support" >&5
$as_echo_n "checking for assembler and linker STT_GNU_IFUNC support... " >&6; }
if ${libc_cv_ld_gnu_indirect_function+:} false; then :
2010-08-23 14:51:49 +00:00
$as_echo_n "(cached) " >&6
else
2012-10-30 20:51:58 +00:00
cat > conftest.S <<EOF
2010-08-23 14:51:49 +00:00
.type foo,%gnu_indirect_function
2012-10-23 03:40:42 +00:00
foo:
.globl _start
_start:
.globl __start
__start:
.data
2012-10-30 20:51:58 +00:00
#ifdef _LP64
.quad foo
#else
2012-10-23 03:40:42 +00:00
.long foo
2012-10-30 20:51:58 +00:00
#endif
2010-08-23 14:51:49 +00:00
EOF
2012-10-23 03:40:42 +00:00
libc_cv_ld_gnu_indirect_function=no
if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
2016-12-26 09:08:54 +00:00
-nostartfiles -nostdlib $no_ssp \
2012-10-30 20:51:58 +00:00
-o conftest conftest.S 1>&5 2>&5; then
2012-10-23 03:40:42 +00:00
# Do a link to see if the backend supports IFUNC relocs.
$READELF -r conftest 1>&5
2020-02-05 05:55:44 +00:00
LC_ALL=C $READELF -Wr conftest | grep -q 'IRELATIVE\|R_SPARC_JMP_IREL' && {
2012-10-23 03:40:42 +00:00
libc_cv_ld_gnu_indirect_function=yes
}
2010-08-23 14:51:49 +00:00
fi
rm -f conftest*
fi
2012-10-23 03:40:42 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ld_gnu_indirect_function" >&5
$as_echo "$libc_cv_ld_gnu_indirect_function" >&6; }
2010-08-23 14:51:49 +00:00
2016-10-07 07:56:46 +00:00
# Check if gcc supports attribute ifunc as it is used in libc_ifunc macro.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc attribute ifunc support" >&5
$as_echo_n "checking for gcc attribute ifunc support... " >&6; }
if ${libc_cv_gcc_indirect_function+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.c <<EOF
extern int func (int);
int used_func (int a)
{
return a;
}
static void *resolver ()
{
return &used_func;
}
extern __typeof (func) func __attribute__ ((ifunc ("resolver")));
EOF
libc_cv_gcc_indirect_function=no
if ${CC-cc} -c conftest.c -o conftest.o 1>&5 \
2>&5 ; then
if $READELF -s conftest.o | grep IFUNC >/dev/null 2>&5; then
libc_cv_gcc_indirect_function=yes
fi
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_indirect_function" >&5
$as_echo "$libc_cv_gcc_indirect_function" >&6; }
Fix ifunc support with DT_TEXTREL segments (BZ#20480)
Currently, DT_TEXTREL is incompatible with IFUNC. When DT_TEXTREL or
DF_TEXTREL is seen, the dynamic linker calls __mprotect on the segments
with PROT_READ|PROT_WRITE before applying dynamic relocations. It leads
to segfault when performing IFUNC resolution (which requires PROT_EXEC
as well for the IFUNC resolver).
This patch makes it call __mprotect with extra PROT_WRITE bit, which
will keep the PROT_EXEC bit if exists, and thus fixes the segfault.
FreeBSD rtld libexec/rtld-elf/rtld.c (reloc_textrel_prot) does the same.
Checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu,
sparc64-linux-gnu, sparcv9-linux-gnu, and armv8-linux-gnueabihf.
Adam J. Richte <adam_richter2004@yahoo.com>
Adhemerval Zanella <adhemerval.zanella@linaro.org>
Fangrui Song <maskray@google.com>
[BZ #20480]
* config.h.in (CAN_TEXTREL_IFUNC): New define.
* configure.ac: Add check if linker supports textrel relocation with
ifunc.
* elf/dl-reloc.c (_dl_relocate_object): Use all required flags on
DT_TEXTREL segments, not only PROT_READ and PROT_WRITE.
* elf/Makefile (ifunc-pie-tests): Add tst-ifunc-textrel.
(CFLAGS-tst-ifunc-textrel.c): New rule.
* elf/tst-ifunc-textrel.c: New file.
2018-08-27 19:16:43 +00:00
# Check if linker supports textrel relocation with ifunc (used on elf/tests).
# Note that it relies on libc_cv_ld_gnu_indirect_function test above.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker supports textrels along with ifunc" >&5
$as_echo_n "checking whether the linker supports textrels along with ifunc... " >&6; }
if ${libc_cv_textrel_ifunc+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.S <<EOF
.type foo,%gnu_indirect_function
foo:
.globl _start
_start:
.globl __start
__start:
.data
#ifdef _LP64
.quad foo
#else
.long foo
#endif
.text
.globl address
address:
#ifdef _LP64
.quad address
#else
.long address
#endif
EOF
libc_cv_textrel_ifunc=no
if test $libc_cv_ld_gnu_indirect_function = yes; then
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostartfiles -nostdlib $no_ssp -pie -o conftest conftest.S'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
libc_cv_textrel_ifunc=yes
fi
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_textrel_ifunc" >&5
$as_echo "$libc_cv_textrel_ifunc" >&6; }
2021-04-16 18:26:39 +00:00
# Check if CC supports attribute retain as it is used in attribute_used_retain macro.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU attribute retain support" >&5
$as_echo_n "checking for GNU attribute retain support... " >&6; }
if ${libc_cv_gnu_retain+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.c <<EOF
static int var __attribute__ ((used, retain, section ("__libc_atexit")));
EOF
libc_cv_gnu_retain=no
if ${CC-cc} -Werror -c conftest.c -o /dev/null 1>&5 \
2>&5 ; then
libc_cv_gnu_retain=yes
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gnu_retain" >&5
$as_echo "$libc_cv_gnu_retain" >&6; }
if test $libc_cv_gnu_retain = yes; then
$as_echo "#define HAVE_GNU_RETAIN 1" >>confdefs.h
fi
config_vars="$config_vars
have-gnu-retain = $libc_cv_gnu_retain"
2017-10-10 14:12:50 +00:00
# Check if gcc warns about alias for function with incompatible types.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler warns about alias for function with incompatible types" >&5
$as_echo_n "checking if compiler warns about alias for function with incompatible types... " >&6; }
if ${libc_cv_gcc_incompatible_alias+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.c <<EOF
int __redirect_foo (const void *s, int c);
__typeof (__redirect_foo) *foo_impl (void) __asm__ ("foo");
__typeof (__redirect_foo) *foo_impl (void)
{
return 0;
}
extern __typeof (__redirect_foo) foo_alias __attribute__ ((alias ("foo")));
EOF
libc_cv_gcc_incompatible_alias=yes
if ${CC-cc} -Werror -c conftest.c -o conftest.o 1>&5 2>&5 ; then
libc_cv_gcc_incompatible_alias=no
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_incompatible_alias" >&5
$as_echo "$libc_cv_gcc_incompatible_alias" >&6; }
2012-10-23 03:40:42 +00:00
if test x"$libc_cv_ld_gnu_indirect_function" != xyes; then
2010-08-23 14:51:49 +00:00
if test x"$multi_arch" = xyes; then
2010-12-25 01:14:37 +00:00
as_fn_error $? "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5
2010-08-23 14:51:49 +00:00
else
multi_arch=no
fi
fi
2017-10-10 14:12:50 +00:00
if test x"$libc_cv_gcc_indirect_function" != xyes; then
# GCC 8+ emits a warning for alias with incompatible types and it might
# fail to build ifunc resolvers aliases to either weak or internal
# symbols. Disables multiarch build in this case.
if test x"$libc_cv_gcc_incompatible_alias" == xyes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: gcc emits a warning for alias between functions of incompatible types" >&5
$as_echo "$as_me: WARNING: gcc emits a warning for alias between functions of incompatible types" >&2;}
if test x"$multi_arch" = xyes; then
as_fn_error $? "--enable-multi-arch support requires a gcc with gnu-indirect-function support" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Multi-arch is disabled." >&5
$as_echo "$as_me: WARNING: Multi-arch is disabled." >&2;}
multi_arch=no
elif test x"$multi_arch" = xyes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-multi-arch support recommends a gcc with gnu-indirect-function support.
2016-10-07 07:56:46 +00:00
Please use a gcc which supports it by default or configure gcc with --enable-gnu-indirect-function" >&5
$as_echo "$as_me: WARNING: --enable-multi-arch support recommends a gcc with gnu-indirect-function support.
Please use a gcc which supports it by default or configure gcc with --enable-gnu-indirect-function" >&2;}
2017-10-10 14:12:50 +00:00
fi
2016-10-07 07:56:46 +00:00
fi
2013-01-11 19:39:38 +00:00
multi_arch_d=
2010-08-23 14:51:49 +00:00
if test x"$multi_arch" != xno; then
multi_arch_d=/multiarch
fi
2009-04-05 18:49:28 +00:00
# Compute the list of sysdep directories for this configuration.
# This can take a while to compute.
sysdep_dir=$srcdir/sysdeps
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking sysdep dirs" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking sysdep dirs... " >&6; }
2009-04-05 18:49:28 +00:00
# Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
test "x$base_os" != x || case "$os" in
gnu*)
base_os=mach/hurd ;;
2012-04-26 18:42:42 +00:00
linux*)
2009-04-05 18:49:28 +00:00
base_os=unix/sysv ;;
esac
2002-10-17 23:48:55 +00:00
2009-04-05 18:49:28 +00:00
# For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
tail=$os
ostry=$os
while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
ostry="$ostry /$o"
tail=$o
2002-10-17 23:48:55 +00:00
done
2009-04-05 18:49:28 +00:00
o=`echo $tail | sed 's/[0-9]*$//'`
if test $o != $tail; then
ostry="$ostry /$o"
fi
# For linux-gnu, try linux-gnu, then linux.
o=`echo $tail | sed 's/-.*$//'`
if test $o != $tail; then
ostry="$ostry /$o"
1997-07-14 21:49:20 +00:00
fi
2002-10-17 23:48:55 +00:00
2009-04-05 18:49:28 +00:00
# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
base=
tail=$base_os
while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
set $b
base="$base /$1"
tail="$2"
done
1997-07-14 21:49:20 +00:00
2009-04-05 18:49:28 +00:00
# For sparc/sparc32, try sparc/sparc32 and then sparc.
mach=
tail=$machine${submachine:+/$submachine}
while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
set $m
2020-03-05 12:41:42 +00:00
# Prepend the machine's FPU directory unless the architecture specific
# preconfigure disables it.
Remove --with-fp / --without-fp.
There is a configure option --without-fp that specifies that nofpu
sysdeps directories should be used instead of fpu directories.
For most glibc configurations, this option is of no use: either there
is no valid nofpu variant of that configuration, or there are no fpu
or nofpu sysdeps directories for that processor and so the option does
nothing. For a few configurations, if you are using a soft-float
compiler this option is required, and failing to use it generally
results in compilation errors from inline asm using unavailable
floating-point instructions.
We're moving away from --with-cpu to configuring glibc based on how
the compiler generates code, and it is natural to do so for
--without-fp as well; in most cases the soft-float and hard-float ABIs
are incompatible so you have no hope of building a working glibc with
an inappropriately configured compiler or libgcc.
This patch eliminates --without-fp, replacing it entirely by automatic
configuration based on the compiler. Configurations for which this is
relevant (coldfire / mips / powerpc32 / sh) define a variable
with_fp_cond in their preconfigure fragments (under the same
conditions under which those fragments do anything); this is a
preprocessor conditional which the toplevel configure script then uses
in a test to determine which sysdeps directories to use.
The config.make with-fp variable remains. It's used only by powerpc
(sysdeps/powerpc/powerpc32/Makefile) to add -mhard-float to various
flags variables. For powerpc, -mcpu= options can imply use of
soft-float. That could be an issue if you want to build for
e.g. 476fp, but are using --with-cpu=476 because there isn't a 476fp
sysdeps directory. If in future we eliminate --with-cpu and replace
it entirely by testing the compiler, it would be natural at that point
to eliminate that code as well (as the user should then just use a
compiler defaulting to 476fp and the 476 sysdeps directory would be
used automatically).
Tested for x86_64, and tested with build-many-glibcs.py that installed
shared libraries are unchanged by this patch.
* configure.ac (--with-fp): Remove configure option.
(with_fp_cond): New variable.
(libc_cv_with_fp): New configure test. Use this variable instead
of with_fp.
* configure: Regenerated.
* config.make.in (with-fp): Use @libc_cv_with_fp@.
* manual/install.texi (Configuring and compiling): Remove
--without-fp.
* INSTALL: Regenerated.
* sysdeps/m68k/preconfigure (with_fp_cond): Define for ColdFire.
* sysdeps/mips/preconfigure (with_fp_cond): Define.
* sysdeps/powerpc/preconfigure (with_fp_cond): Define for 32-bit.
* sysdeps/sh/preconfigure (with_fp_cond): Define.
* scripts/build-many-glibcs.py (Context.add_all_configs): Do not
use --without-fp to configure glibc.
2017-12-12 13:56:47 +00:00
if test "$libc_cv_with_fp" = yes; then
2013-01-11 19:39:38 +00:00
maybe_fpu=/fpu
2007-06-08 03:17:15 +00:00
else
2013-01-11 19:39:38 +00:00
maybe_fpu=/nofpu
2003-04-24 23:45:17 +00:00
fi
2013-01-11 19:39:38 +00:00
# For each machine term, try it with and then without /multiarch.
for try_fpu in $maybe_fpu ''; do
for try_multi in $multi_arch_d ''; do
mach="$mach /$1$try_fpu$try_multi"
done
done
2009-04-05 18:49:28 +00:00
tail="$2"
2003-04-24 23:45:17 +00:00
done
2009-04-05 18:49:28 +00:00
# Find what sysdep directories exist.
sysnames=
for b in $base ''; do
for m0 in $mach ''; do
for v in /$vendor ''; do
test "$v" = / && continue
for o in /$ostry ''; do
test "$o" = / && continue
2013-01-11 19:39:38 +00:00
for m in $mach ''; do
Remove add-ons mechanism.
glibc has an add-ons mechanism to allow additional software to be
integrated into the glibc build. Such add-ons may be within the glibc
source tree, or outside it at a path passed to the --enable-add-ons
configure option.
localedata and crypt were once add-ons, distributed in separate
release tarballs, but long since stopped using that mechanism.
Linuxthreads was always an add-on. Ports spent some time as an add-on
with separate release tarballs, then was first moved into the glibc
source tree, then had its sysdeps files moved into the main sysdeps
hierarchy so the add-ons mechanism was no longer used. NPTL spent
some time as an add-on in the main glibc tree before stopping using
the add-on mechanism. libidn used to have separate release tarballs
but no longer does so, but still uses the add-ons mechanism within the
glibc source tree. Various other software has supported building with
the add-ons mechanism at times in the past, but I don't think any is
still widely used.
Add-ons involve significant, little-used complexity in the glibc build
system, and make it hard to understand what the space of possible
glibc configurations is. This patch removes the add-ons mechanism.
libidn is now built via the Subdirs mechanism to cause any
configuration using sysdeps/unix/inet to build libidn; HAVE_LIBIDN
(which effectively means shared libraries are available) is now
defined via sysdeps/unix/inet/configure. Various references to
add-ons around the source tree are removed (in the case of maint.texi,
the example list of sysdeps directories is still very out of date).
Externally maintained ports should now put their files in the normal
sysdeps directory structure rather than being arranged as add-ons;
they probably need to change e.g. elf.h anyway, rather than actually
being able to work just as a drop-in subtree. Hurd libpthread should
be arranged similarly to NPTL, so some files might go in a
hurd-pthreads (or similar) top-level directory in glibc, while sysdeps
files should go in the normal sysdeps directory structure (possibly in
hurd or hurd-pthreads subdirectories, just as there are nptl
subdirectories in the sysdeps tree).
Tested for x86_64, and with build-many-glibcs.py.
* configure.ac (--enable-add-ons): Remove option.
(machine): Do not mention add-ons in comment.
(LIBC_PRECONFIGURE): Likewise.
(add_ons): Remove variable and sanity checks and logic to locate
add-ons.
(add_ons_automatic): Remove variable.
(configured_add_ons): Likewise.
(add_ons_sfx): Likewise.
(add_ons_pfx): Likewise.
(add_on_subdirs): Likewise.
(sysnames_add_ons): Likewise. Remove loop over add-ons and
consideration of add-ons in Implies handling.
(sysdeps_add_ons): Likewise.
* configure: Regenerated.
* libidn/configure.ac: Remove.
* libidn/configure: Likewise.
* sysdeps/unix/inet/configure.ac: New file.
* sysdeps/unix/inet/configure: New generated file.
* sysdeps/unix/inet/Subdirs: Add libidn.
* Makeconfig (sysdeps-srcdirs): Remove variable.
(+sysdep_dirs): Do not include $(sysdeps-srcdirs).
($(common-objpfx)config.status): Do not depend on add-on files.
($(common-objpfx)shlib-versions.v.i): Do not mention add-ons in
comment.
(all-subdirs): Do not include $(add-on-subdirs).
* Makefile (dist-prepare): Do not use $(sysdeps-add-ons).
* config.make.in (add-ons): Remove variable.
(add-on-subdirs): Likewise.
(sysdeps-add-ons): Likewise.
* manual/Makefile (add-chapters): Remove.
($(objpfx)texis): Do not depend on $(add-chapters).
(nonexamples): Do not handle $(add-chapters).
(examples): Do not handle $(add-ons).
(chapters.% top-menu.%): Do not pass '$(add-chapters)' to
libc-texinfo.sh.
* manual/install.texi (Installation): Do not mention add-ons.
(--enable-add-ons): Do not document configure option.
* INSTALL: Regenerated.
* manual/libc-texinfo.sh: Do not handle $2 add-ons argument.
* manual/maint.texi (Hierarchy Conventions): Do not mention
add-ons.
* scripts/build-many-glibcs.py (Glibc.build_glibc): Do not use
--enable-add-ons.
* scripts/gen-sorted.awk: Do not handle Subdirs files from
add-ons.
* scripts/test-installation.pl: Do not handle glibc-compat add-on.
* sysdeps/nptl/Makeconfig: Do not mention add-ons in comment.
2017-10-05 15:58:13 +00:00
try_suffix="$m0$b$v$o$m"
if test -n "$try_suffix"; then
try_srcdir="${srcdir}/"
try="sysdeps$try_suffix"
test -n "$enable_debug_configure" &&
echo "$0 DEBUG: try $try" >&2
if test -d "$try_srcdir$try"; then
sysnames="$sysnames $try"
{ test -n "$o" || test -n "$b"; } && os_used=t
{ test -n "$m" || test -n "$m0"; } && machine_used=t
case x${m0:-$m} in
x*/$submachine) submachine_used=t ;;
esac
fi
fi
2009-04-05 18:49:28 +00:00
done
done
done
done
2003-04-24 23:45:17 +00:00
done
2009-12-24 04:22:46 +00:00
# If the assembler supports gnu_indirect_function symbol type and the
# architecture supports multi-arch, we enable multi-arch by default.
Remove add-ons mechanism.
glibc has an add-ons mechanism to allow additional software to be
integrated into the glibc build. Such add-ons may be within the glibc
source tree, or outside it at a path passed to the --enable-add-ons
configure option.
localedata and crypt were once add-ons, distributed in separate
release tarballs, but long since stopped using that mechanism.
Linuxthreads was always an add-on. Ports spent some time as an add-on
with separate release tarballs, then was first moved into the glibc
source tree, then had its sysdeps files moved into the main sysdeps
hierarchy so the add-ons mechanism was no longer used. NPTL spent
some time as an add-on in the main glibc tree before stopping using
the add-on mechanism. libidn used to have separate release tarballs
but no longer does so, but still uses the add-ons mechanism within the
glibc source tree. Various other software has supported building with
the add-ons mechanism at times in the past, but I don't think any is
still widely used.
Add-ons involve significant, little-used complexity in the glibc build
system, and make it hard to understand what the space of possible
glibc configurations is. This patch removes the add-ons mechanism.
libidn is now built via the Subdirs mechanism to cause any
configuration using sysdeps/unix/inet to build libidn; HAVE_LIBIDN
(which effectively means shared libraries are available) is now
defined via sysdeps/unix/inet/configure. Various references to
add-ons around the source tree are removed (in the case of maint.texi,
the example list of sysdeps directories is still very out of date).
Externally maintained ports should now put their files in the normal
sysdeps directory structure rather than being arranged as add-ons;
they probably need to change e.g. elf.h anyway, rather than actually
being able to work just as a drop-in subtree. Hurd libpthread should
be arranged similarly to NPTL, so some files might go in a
hurd-pthreads (or similar) top-level directory in glibc, while sysdeps
files should go in the normal sysdeps directory structure (possibly in
hurd or hurd-pthreads subdirectories, just as there are nptl
subdirectories in the sysdeps tree).
Tested for x86_64, and with build-many-glibcs.py.
* configure.ac (--enable-add-ons): Remove option.
(machine): Do not mention add-ons in comment.
(LIBC_PRECONFIGURE): Likewise.
(add_ons): Remove variable and sanity checks and logic to locate
add-ons.
(add_ons_automatic): Remove variable.
(configured_add_ons): Likewise.
(add_ons_sfx): Likewise.
(add_ons_pfx): Likewise.
(add_on_subdirs): Likewise.
(sysnames_add_ons): Likewise. Remove loop over add-ons and
consideration of add-ons in Implies handling.
(sysdeps_add_ons): Likewise.
* configure: Regenerated.
* libidn/configure.ac: Remove.
* libidn/configure: Likewise.
* sysdeps/unix/inet/configure.ac: New file.
* sysdeps/unix/inet/configure: New generated file.
* sysdeps/unix/inet/Subdirs: Add libidn.
* Makeconfig (sysdeps-srcdirs): Remove variable.
(+sysdep_dirs): Do not include $(sysdeps-srcdirs).
($(common-objpfx)config.status): Do not depend on add-on files.
($(common-objpfx)shlib-versions.v.i): Do not mention add-ons in
comment.
(all-subdirs): Do not include $(add-on-subdirs).
* Makefile (dist-prepare): Do not use $(sysdeps-add-ons).
* config.make.in (add-ons): Remove variable.
(add-on-subdirs): Likewise.
(sysdeps-add-ons): Likewise.
* manual/Makefile (add-chapters): Remove.
($(objpfx)texis): Do not depend on $(add-chapters).
(nonexamples): Do not handle $(add-chapters).
(examples): Do not handle $(add-ons).
(chapters.% top-menu.%): Do not pass '$(add-chapters)' to
libc-texinfo.sh.
* manual/install.texi (Installation): Do not mention add-ons.
(--enable-add-ons): Do not document configure option.
* INSTALL: Regenerated.
* manual/libc-texinfo.sh: Do not handle $2 add-ons argument.
* manual/maint.texi (Hierarchy Conventions): Do not mention
add-ons.
* scripts/build-many-glibcs.py (Glibc.build_glibc): Do not use
--enable-add-ons.
* scripts/gen-sorted.awk: Do not handle Subdirs files from
add-ons.
* scripts/test-installation.pl: Do not handle glibc-compat add-on.
* sysdeps/nptl/Makeconfig: Do not mention add-ons in comment.
2017-10-05 15:58:13 +00:00
case $sysnames in
2010-08-23 14:51:49 +00:00
*"$multi_arch_d"*)
;;
*)
2011-01-17 02:29:41 +00:00
test x"$multi_arch" = xdefault && multi_arch=no
2010-08-23 14:51:49 +00:00
;;
esac
if test x"$multi_arch" != xno; then
2010-07-10 02:25:39 +00:00
$as_echo "#define USE_MULTIARCH 1" >>confdefs.h
2009-12-24 04:22:46 +00:00
fi
2009-04-05 18:49:28 +00:00
if test -z "$os_used" && test "$os" != none; then
2010-12-25 01:14:37 +00:00
as_fn_error $? "Operating system $os is not supported." "$LINENO" 5
2003-04-24 23:45:17 +00:00
fi
2009-04-05 18:49:28 +00:00
if test -z "$machine_used" && test "$machine" != none; then
2010-12-25 01:14:37 +00:00
as_fn_error $? "The $machine is not supported." "$LINENO" 5
2003-04-24 23:45:17 +00:00
fi
2009-04-05 18:49:28 +00:00
if test -z "$submachine_used" && test -n "$submachine"; then
2010-12-25 01:14:37 +00:00
as_fn_error $? "The $submachine subspecies of $host_cpu is not supported." "$LINENO" 5
2003-04-24 23:45:17 +00:00
fi
2007-06-08 03:17:15 +00:00
2009-04-05 18:49:28 +00:00
# We have now validated the configuration.
# Expand the list of system names into a full list of directories
# from each element's parent name and Implies file (if present).
set $sysnames
names=
while test $# -gt 0; do
name=$1
shift
2007-06-08 03:17:15 +00:00
2009-04-05 18:49:28 +00:00
case " $names " in *" $name "*)
# Already in the list.
continue
esac
2003-04-24 23:45:17 +00:00
2009-04-05 18:49:28 +00:00
# Report each name as we discover it, so there is no long pause in output.
echo $ECHO_N "$name $ECHO_C" >&6
2003-04-24 23:45:17 +00:00
2009-04-05 18:49:28 +00:00
name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
case $name in
/*) xsrcdir= ;;
*) xsrcdir=$srcdir/ ;;
esac
test -n "$enable_debug_configure" &&
echo "DEBUG: name/Implies $xsrcdir$name/Implies" >&2
2012-05-09 22:45:53 +00:00
for implies_file in Implies Implies-before Implies-after; do
implies_type=`echo $implies_file | sed s/-/_/`
eval ${implies_type}=
if test -f $xsrcdir$name/$implies_file; then
# Collect more names from the `Implies' file (removing comments).
implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/$implies_file`"
for x in $implied_candidate; do
found=no
if test -d $xsrcdir$name_base/$x; then
eval "${implies_type}=\"\$${implies_type} \$name_base/\$x\""
2009-04-05 18:49:28 +00:00
found=yes
2012-05-09 22:45:53 +00:00
fi
Remove add-ons mechanism.
glibc has an add-ons mechanism to allow additional software to be
integrated into the glibc build. Such add-ons may be within the glibc
source tree, or outside it at a path passed to the --enable-add-ons
configure option.
localedata and crypt were once add-ons, distributed in separate
release tarballs, but long since stopped using that mechanism.
Linuxthreads was always an add-on. Ports spent some time as an add-on
with separate release tarballs, then was first moved into the glibc
source tree, then had its sysdeps files moved into the main sysdeps
hierarchy so the add-ons mechanism was no longer used. NPTL spent
some time as an add-on in the main glibc tree before stopping using
the add-on mechanism. libidn used to have separate release tarballs
but no longer does so, but still uses the add-ons mechanism within the
glibc source tree. Various other software has supported building with
the add-ons mechanism at times in the past, but I don't think any is
still widely used.
Add-ons involve significant, little-used complexity in the glibc build
system, and make it hard to understand what the space of possible
glibc configurations is. This patch removes the add-ons mechanism.
libidn is now built via the Subdirs mechanism to cause any
configuration using sysdeps/unix/inet to build libidn; HAVE_LIBIDN
(which effectively means shared libraries are available) is now
defined via sysdeps/unix/inet/configure. Various references to
add-ons around the source tree are removed (in the case of maint.texi,
the example list of sysdeps directories is still very out of date).
Externally maintained ports should now put their files in the normal
sysdeps directory structure rather than being arranged as add-ons;
they probably need to change e.g. elf.h anyway, rather than actually
being able to work just as a drop-in subtree. Hurd libpthread should
be arranged similarly to NPTL, so some files might go in a
hurd-pthreads (or similar) top-level directory in glibc, while sysdeps
files should go in the normal sysdeps directory structure (possibly in
hurd or hurd-pthreads subdirectories, just as there are nptl
subdirectories in the sysdeps tree).
Tested for x86_64, and with build-many-glibcs.py.
* configure.ac (--enable-add-ons): Remove option.
(machine): Do not mention add-ons in comment.
(LIBC_PRECONFIGURE): Likewise.
(add_ons): Remove variable and sanity checks and logic to locate
add-ons.
(add_ons_automatic): Remove variable.
(configured_add_ons): Likewise.
(add_ons_sfx): Likewise.
(add_ons_pfx): Likewise.
(add_on_subdirs): Likewise.
(sysnames_add_ons): Likewise. Remove loop over add-ons and
consideration of add-ons in Implies handling.
(sysdeps_add_ons): Likewise.
* configure: Regenerated.
* libidn/configure.ac: Remove.
* libidn/configure: Likewise.
* sysdeps/unix/inet/configure.ac: New file.
* sysdeps/unix/inet/configure: New generated file.
* sysdeps/unix/inet/Subdirs: Add libidn.
* Makeconfig (sysdeps-srcdirs): Remove variable.
(+sysdep_dirs): Do not include $(sysdeps-srcdirs).
($(common-objpfx)config.status): Do not depend on add-on files.
($(common-objpfx)shlib-versions.v.i): Do not mention add-ons in
comment.
(all-subdirs): Do not include $(add-on-subdirs).
* Makefile (dist-prepare): Do not use $(sysdeps-add-ons).
* config.make.in (add-ons): Remove variable.
(add-on-subdirs): Likewise.
(sysdeps-add-ons): Likewise.
* manual/Makefile (add-chapters): Remove.
($(objpfx)texis): Do not depend on $(add-chapters).
(nonexamples): Do not handle $(add-chapters).
(examples): Do not handle $(add-ons).
(chapters.% top-menu.%): Do not pass '$(add-chapters)' to
libc-texinfo.sh.
* manual/install.texi (Installation): Do not mention add-ons.
(--enable-add-ons): Do not document configure option.
* INSTALL: Regenerated.
* manual/libc-texinfo.sh: Do not handle $2 add-ons argument.
* manual/maint.texi (Hierarchy Conventions): Do not mention
add-ons.
* scripts/build-many-glibcs.py (Glibc.build_glibc): Do not use
--enable-add-ons.
* scripts/gen-sorted.awk: Do not handle Subdirs files from
add-ons.
* scripts/test-installation.pl: Do not handle glibc-compat add-on.
* sysdeps/nptl/Makeconfig: Do not mention add-ons in comment.
2017-10-05 15:58:13 +00:00
try="sysdeps/$x"
try_srcdir=$srcdir/
test -n "$enable_debug_configure" &&
echo "DEBUG: $name $implies_file $x try() {$try_srcdir}$try" >&2
if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
then
eval "${implies_type}=\"\$${implies_type} \$try\""
found=yes
fi
2012-05-09 22:45:53 +00:00
if test $found = no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $name/$implies_file specifies nonexistent $x" >&5
$as_echo "$as_me: WARNING: $name/$implies_file specifies nonexistent $x" >&2;}
2009-04-05 18:49:28 +00:00
fi
done
2012-05-09 22:45:53 +00:00
fi
done
2003-04-24 23:45:17 +00:00
2009-04-05 18:49:28 +00:00
# Add NAME to the list of names.
names="$names $name"
2003-04-24 23:45:17 +00:00
2009-04-05 18:49:28 +00:00
# Find the parent of NAME, using the empty string if it has none.
parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
2003-04-24 23:45:17 +00:00
2012-05-09 22:45:53 +00:00
test -n "$enable_debug_configure" &&
echo "DEBUG: $name Implies='$Implies' rest='$*' parent='$parent' \
2012-07-23 10:27:12 +00:00
Implies_before='$Implies_before' Implies_after='$Implies_after'" >&2
2012-05-09 22:45:53 +00:00
2009-04-05 18:49:28 +00:00
# Add the names implied by NAME, and NAME's parent (if it has one), to
# the list of names to be processed (the argument list). We prepend the
# implied names to the list and append the parent. We want implied
# directories to come before further directories inferred from the
# configuration components; this ensures that for sysv4, unix/common
# (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
# after sysv4).
2012-05-09 22:45:53 +00:00
sysnames="`echo $Implies $* $Implies_before $parent $Implies_after`"
2009-04-05 18:49:28 +00:00
test -n "$sysnames" && set $sysnames
done
2003-09-23 12:07:26 +00:00
2009-04-05 18:49:28 +00:00
# Add the default directories.
2012-03-28 07:37:36 +00:00
default_sysnames="sysdeps/generic"
2009-04-05 18:49:28 +00:00
sysnames="$names $default_sysnames"
2007-06-08 03:17:15 +00:00
2009-04-05 18:49:28 +00:00
# The other names were emitted during the scan.
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $default_sysnames" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$default_sysnames" >&6; }
2003-04-24 23:45:17 +00:00
2007-06-08 03:17:15 +00:00
2009-04-05 18:49:28 +00:00
### Locate tools.
2007-06-08 03:17:15 +00:00
2009-04-05 18:49:28 +00:00
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
2009-04-07 06:36:33 +00:00
# Reject install programs that cannot install multiple files.
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for a BSD-compatible install... " >&6; }
2009-04-05 18:49:28 +00:00
if test -z "$INSTALL"; then
2011-09-11 16:14:48 +00:00
if ${ac_cv_path_install+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2009-04-05 18:49:28 +00:00
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
# Account for people who put trailing slashes in PATH elements.
case $as_dir/ in #((
./ | .// | /[cC]/* | \
2009-04-05 18:49:28 +00:00
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
2010-07-10 02:25:39 +00:00
?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
2009-04-05 18:49:28 +00:00
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# Don't use installbsd from OSF since it installs stuff as root
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
2009-04-05 18:49:28 +00:00
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
2009-04-07 06:36:33 +00:00
rm -rf conftest.one conftest.two conftest.dir
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
then
ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
break 3
fi
2009-04-05 18:49:28 +00:00
fi
fi
done
done
;;
2007-06-08 03:17:15 +00:00
esac
2009-04-07 06:36:33 +00:00
2010-07-10 02:25:39 +00:00
done
2009-04-05 18:49:28 +00:00
IFS=$as_save_IFS
2003-09-23 12:07:26 +00:00
2009-04-07 06:36:33 +00:00
rm -rf conftest.one conftest.two conftest.dir
2007-06-08 03:17:15 +00:00
2003-04-24 23:45:17 +00:00
fi
2009-04-05 18:49:28 +00:00
if test "${ac_cv_path_install+set}" = set; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. Don't cache a
# value for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
INSTALL=$ac_install_sh
fi
2003-04-24 23:45:17 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$INSTALL" >&6; }
2003-04-24 23:45:17 +00:00
2009-04-05 18:49:28 +00:00
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
2007-06-08 03:17:15 +00:00
2009-04-05 18:49:28 +00:00
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
# The makefiles need to use a different form to find it in $srcdir.
INSTALL='\$(..)./scripts/install-sh -c'
2007-06-08 03:17:15 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking whether ln -s works... " >&6; }
2009-04-05 18:49:28 +00:00
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
2009-04-07 06:36:33 +00:00
$as_echo "yes" >&6; }
2007-06-08 03:17:15 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no, using $LN_S" >&6; }
2007-06-08 03:17:15 +00:00
fi
2009-04-05 18:49:28 +00:00
2003-04-24 23:45:17 +00:00
Update.
1997-09-25 00:23 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-profile.c: Correct implementation.
* io/ftwtest-sh: Don't depend on TMPDIR == /tmp.
* locale/setlocale.c: Rewrite a bit for more clarity.
* math/Makefile (libm-calls): Add w_exp2.
* math/math_private.h: Add prototypes for __ieee754_exp2{,f,l}.
* sysdeps/libm-i387/s_exp2.S: Change name to __ieee754_exp2.
* sysdeps/libm-i387/s_exp2f.S: Likewise.
* sysdeps/libm-i387/s_exp2l.S: Likewise.
* sysdeps/libm-ieee754/k_standard.c: Add error cases for exp2.
* string/bits/string2.h (__strcpy_small): Optimize.
(__stpcpy_small): Likewise.
(strncpy): Use variable for dest argument since it's used more than
once.
(strncat): Likewise.
(strcmp): Add optimization for this function.
* sysdeps/i386/i486/string.h (strlen): Correctly use __builtin_strlen.
(__strcpy_small): Optimize.
(__stpcpy_small): Likewise.
(__stpcpy_c): Correctly use __mempcpy_* macros.
(__mempcpy_by2, __mempcpy_by4, __mempcpy_byn): Return pointer to
byte following last copied.
(strncat): Use variable for dest argument since it's used more than
once.
(strcmp): Add optimization for this function.
* sysdeps/i386/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE): Use
.text and .previous to select correct section.
1997-09-23 19:56 Philip Blundell <Philip.Blundell@pobox.com>
* configure.in: Add `--disable-versioning' option to suppress the
use of symbol versions even if binutils claims to support it.
1997-09-24 20:10 Philip Blundell <Philip.Blundell@pobox.com>
* csu/Makefile (before-compile): Don't try to build abi-tags.h if
not using ELF.
1997-09-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/sofini.c [HAVE_DWARF2_UNWIND_INFO]: Supply termination for
the frame unwind info section.
* elf/soinit.c [HAVE_DWARF2_UNWIND_INFO]: Register and unregister
the frame unwind info.
* config.h.in (HAVE_DWARF2_UNWIND_INFO): Add #undef.
* configure.in: Check whether gcc supports DWARF2 unwind info.
* libc.map: Export frame handling tables.
1997-09-10 06:56 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/unix/sysv/linux/powerpc/bits/kernel_termios.h:
Use the size of the kernel's termios structure for ioctls.
* sysdeps/powerpc/dl-machine.h: Prepare for library profiling.
* sysdeps/powerpc/bits/mathinline.h: Add slightly slower versions
of the C9X FP comparison macros. Delete 'fabs' and 'sqrt' inline
routines, because gcc has them as internals.
* sysdeps/powerpc/Makefile (pic-ccflags): Define this instead of
CFLAGS-.os.
* sysdeps/powerpc/bzero.S: New file.
* sysdeps/powerpc/strcat.c: New file.
* sysdeps/powerpc/strcpy.S: New file.
* sysdeps/powerpc/stpcpy.S: New file.
* math/Makefile: Add atest_exp2, test-reduce.
* math/atest_exp2.c: New file.
* math/test-reduce.c: New file.
* sysdeps/libm-ieee754/Dist: New file.
* sysdeps/libm-ieee754/s_exp2.c: New file.
* sysdeps/libm-ieee754/s_exp2f.c: New file.
* sysdeps/libm-ieee754/t_exp2.h: New file.
* sysdeps/libm-ieee754/t_exp2f.h: New file.
* math/libm-test.c (exp2_test): Add some more tests.
* Rules: Use empty.os instead of empty.o, since it gets linked into
libc.so...
* configure.in: Add --disable-static to disable building .a files.
* config.make.in: Substitute the new variable.
* Makeconfig: Don't build .o files if not building .a files.
* elf/dl-runtime.c (fixup): Factor out call to elf_machine_relplt.
(profile_fixup): Likewise.
1997-09-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/globtest.c (main): Change to directory passed as first
argument.
* posix/globtest.sh: Don't cd before running the program, instead
pass testdir as argument, so that $common_objpfx remains valid.
1997-09-23 18:01 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nis_call.c (__do_niscall2): Fix multiple Server support.
* nis/nis_findserver.c: Save latest working sockaddr_in.
1997-09-17 22:07 Zack Weinberg <zack@rabi.phys.columbia.edu>
* configure.in: Automatically determine whether as and ld are the
GNU versions.
(options): --with-gnu-{as,ld,binutils} replaced by
single option --with-binutils=PATH specifying a -B option to gcc.
* aclocal.m4: Two new macros defined, LIBC_PROG_FOO_GNU and
LIBC_PROG_BINUTILS.
* configure.in: Allow the user to force configuration for
unsupported platforms with an undocumented option.
1997-09-22 16:55 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/get_myaddr.c (get_myaddress): Avoid loopback interfaces,
return loopback address only if there is no other interface.
* nis/Makefile: Add nis_callback libnsl-routines.
* nis/nis_add.c: Use new __do_niscall* interface.
* nis/nis_cache.c: Likewise.
* nis/nis_checkpoint.c: Likewise.
* nis/nis_lookup.c: Likewise.
* nis/nis_mkdir.c: Likewise.
* nis/nis_modify.c: Likewise.
* nis/nis_ping.c: Likewise.
* nis/nis_remove.c: Likewise.
* nis/nis_rmdir.c: Likewise.
* nis/nis_server.c: Likewise.
* nis/nis_util.c: Likewise.
* nis/rpcsvc/nis.h: Make C++ safe.
* nis/nss_nisplus/nisplus-publickey.c (getsecretkey): Fix use
of variables.
* nis/nis_findserv.c: Make thread safe.
* nis/nis_call.c: Add support for callback, Fix use of variables.
* nis/nis_table.c: Add support for callback, FOLLOW_PATH and
ALL_RESULTS.
* nis/nis_callback.c: New, callback functions.
* nis/nis_intern.h: Add callback declarations.
1997-09-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h: Fix logic in preprocessor directive.
(__strsep_1c, __strsep_g): Don't declare __retval as pointing to
const, to save a cast and a possible warning.
1997-09-22 04:12 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/i486/atomicity.h (exchange_and_add): Really address
memory in xadd not %1.
1997-09-21 13:56 Ulrich Drepper <drepper@cygnus.com>
* manual/maint.texi (Supported Configurations): Add SPARC64 to
list of supported platforms.
1997-09-24 23:03:42 +00:00
# Was a --with-binutils option given?
if test -n "$path_binutils"; then
# Make absolute; ensure a single trailing slash.
path_binutils=`(cd $path_binutils; pwd) | sed 's%/*$%/%'`
1998-04-02 17:42:53 +00:00
CC="$CC -B$path_binutils"
Update.
1997-09-25 00:23 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-profile.c: Correct implementation.
* io/ftwtest-sh: Don't depend on TMPDIR == /tmp.
* locale/setlocale.c: Rewrite a bit for more clarity.
* math/Makefile (libm-calls): Add w_exp2.
* math/math_private.h: Add prototypes for __ieee754_exp2{,f,l}.
* sysdeps/libm-i387/s_exp2.S: Change name to __ieee754_exp2.
* sysdeps/libm-i387/s_exp2f.S: Likewise.
* sysdeps/libm-i387/s_exp2l.S: Likewise.
* sysdeps/libm-ieee754/k_standard.c: Add error cases for exp2.
* string/bits/string2.h (__strcpy_small): Optimize.
(__stpcpy_small): Likewise.
(strncpy): Use variable for dest argument since it's used more than
once.
(strncat): Likewise.
(strcmp): Add optimization for this function.
* sysdeps/i386/i486/string.h (strlen): Correctly use __builtin_strlen.
(__strcpy_small): Optimize.
(__stpcpy_small): Likewise.
(__stpcpy_c): Correctly use __mempcpy_* macros.
(__mempcpy_by2, __mempcpy_by4, __mempcpy_byn): Return pointer to
byte following last copied.
(strncat): Use variable for dest argument since it's used more than
once.
(strcmp): Add optimization for this function.
* sysdeps/i386/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE): Use
.text and .previous to select correct section.
1997-09-23 19:56 Philip Blundell <Philip.Blundell@pobox.com>
* configure.in: Add `--disable-versioning' option to suppress the
use of symbol versions even if binutils claims to support it.
1997-09-24 20:10 Philip Blundell <Philip.Blundell@pobox.com>
* csu/Makefile (before-compile): Don't try to build abi-tags.h if
not using ELF.
1997-09-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/sofini.c [HAVE_DWARF2_UNWIND_INFO]: Supply termination for
the frame unwind info section.
* elf/soinit.c [HAVE_DWARF2_UNWIND_INFO]: Register and unregister
the frame unwind info.
* config.h.in (HAVE_DWARF2_UNWIND_INFO): Add #undef.
* configure.in: Check whether gcc supports DWARF2 unwind info.
* libc.map: Export frame handling tables.
1997-09-10 06:56 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/unix/sysv/linux/powerpc/bits/kernel_termios.h:
Use the size of the kernel's termios structure for ioctls.
* sysdeps/powerpc/dl-machine.h: Prepare for library profiling.
* sysdeps/powerpc/bits/mathinline.h: Add slightly slower versions
of the C9X FP comparison macros. Delete 'fabs' and 'sqrt' inline
routines, because gcc has them as internals.
* sysdeps/powerpc/Makefile (pic-ccflags): Define this instead of
CFLAGS-.os.
* sysdeps/powerpc/bzero.S: New file.
* sysdeps/powerpc/strcat.c: New file.
* sysdeps/powerpc/strcpy.S: New file.
* sysdeps/powerpc/stpcpy.S: New file.
* math/Makefile: Add atest_exp2, test-reduce.
* math/atest_exp2.c: New file.
* math/test-reduce.c: New file.
* sysdeps/libm-ieee754/Dist: New file.
* sysdeps/libm-ieee754/s_exp2.c: New file.
* sysdeps/libm-ieee754/s_exp2f.c: New file.
* sysdeps/libm-ieee754/t_exp2.h: New file.
* sysdeps/libm-ieee754/t_exp2f.h: New file.
* math/libm-test.c (exp2_test): Add some more tests.
* Rules: Use empty.os instead of empty.o, since it gets linked into
libc.so...
* configure.in: Add --disable-static to disable building .a files.
* config.make.in: Substitute the new variable.
* Makeconfig: Don't build .o files if not building .a files.
* elf/dl-runtime.c (fixup): Factor out call to elf_machine_relplt.
(profile_fixup): Likewise.
1997-09-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/globtest.c (main): Change to directory passed as first
argument.
* posix/globtest.sh: Don't cd before running the program, instead
pass testdir as argument, so that $common_objpfx remains valid.
1997-09-23 18:01 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nis_call.c (__do_niscall2): Fix multiple Server support.
* nis/nis_findserver.c: Save latest working sockaddr_in.
1997-09-17 22:07 Zack Weinberg <zack@rabi.phys.columbia.edu>
* configure.in: Automatically determine whether as and ld are the
GNU versions.
(options): --with-gnu-{as,ld,binutils} replaced by
single option --with-binutils=PATH specifying a -B option to gcc.
* aclocal.m4: Two new macros defined, LIBC_PROG_FOO_GNU and
LIBC_PROG_BINUTILS.
* configure.in: Allow the user to force configuration for
unsupported platforms with an undocumented option.
1997-09-22 16:55 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/get_myaddr.c (get_myaddress): Avoid loopback interfaces,
return loopback address only if there is no other interface.
* nis/Makefile: Add nis_callback libnsl-routines.
* nis/nis_add.c: Use new __do_niscall* interface.
* nis/nis_cache.c: Likewise.
* nis/nis_checkpoint.c: Likewise.
* nis/nis_lookup.c: Likewise.
* nis/nis_mkdir.c: Likewise.
* nis/nis_modify.c: Likewise.
* nis/nis_ping.c: Likewise.
* nis/nis_remove.c: Likewise.
* nis/nis_rmdir.c: Likewise.
* nis/nis_server.c: Likewise.
* nis/nis_util.c: Likewise.
* nis/rpcsvc/nis.h: Make C++ safe.
* nis/nss_nisplus/nisplus-publickey.c (getsecretkey): Fix use
of variables.
* nis/nis_findserv.c: Make thread safe.
* nis/nis_call.c: Add support for callback, Fix use of variables.
* nis/nis_table.c: Add support for callback, FOLLOW_PATH and
ALL_RESULTS.
* nis/nis_callback.c: New, callback functions.
* nis/nis_intern.h: Add callback declarations.
1997-09-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h: Fix logic in preprocessor directive.
(__strsep_1c, __strsep_g): Don't declare __retval as pointing to
const, to save a cast and a possible warning.
1997-09-22 04:12 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/i486/atomicity.h (exchange_and_add): Really address
memory in xadd not %1.
1997-09-21 13:56 Ulrich Drepper <drepper@cygnus.com>
* manual/maint.texi (Supported Configurations): Add SPARC64 to
list of supported platforms.
1997-09-24 23:03:42 +00:00
fi
2021-10-26 12:02:57 +00:00
case "$CC" in
*fuse-ld=lld*) LDNAME=ld.lld;;
*) LDNAME=ld;;
esac
1998-04-07 16:28:09 +00:00
AS=`$CC -print-prog-name=as`
2021-10-26 12:02:57 +00:00
LD=`$CC -print-prog-name=$LDNAME`
1998-11-20 17:27:07 +00:00
AR=`$CC -print-prog-name=ar`
1997-07-14 21:49:20 +00:00
2003-03-22 00:07:21 +00:00
OBJDUMP=`$CC -print-prog-name=objdump`
2011-06-25 07:06:42 +00:00
OBJCOPY=`$CC -print-prog-name=objcopy`
2017-08-15 13:49:40 +00:00
GPROF=`$CC -print-prog-name=gprof`
2003-03-22 00:07:21 +00:00
# Determine whether we are using GNU binutils.
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $AS is GNU as" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking whether $AS is GNU as... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_prog_as_gnu+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2003-03-22 00:07:21 +00:00
else
# Most GNU programs take a -v and spit out some text including
# the word 'GNU'. Some try to read stdin, so give them /dev/null.
if $AS -o conftest -v </dev/null 2>&1 | grep GNU > /dev/null 2>&1; then
libc_cv_prog_as_gnu=yes
else
libc_cv_prog_as_gnu=no
fi
rm -fr contest*
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_prog_as_gnu" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_prog_as_gnu" >&6; }
2003-03-22 00:07:21 +00:00
rm -f a.out
gnu_as=$libc_cv_prog_as_gnu
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $LD is GNU ld" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking whether $LD is GNU ld... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_prog_ld_gnu+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2003-03-22 00:07:21 +00:00
else
# Most GNU programs take a -v and spit out some text including
# the word 'GNU'. Some try to read stdin, so give them /dev/null.
if $LD -o conftest -v </dev/null 2>&1 | grep GNU > /dev/null 2>&1; then
libc_cv_prog_ld_gnu=yes
else
libc_cv_prog_ld_gnu=no
fi
rm -fr contest*
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_prog_ld_gnu" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_prog_ld_gnu" >&6; }
2003-03-22 00:07:21 +00:00
gnu_ld=$libc_cv_prog_ld_gnu
2017-09-26 01:01:23 +00:00
# Accept binutils 2.25 or newer.
2003-03-22 00:07:21 +00:00
for ac_prog in $AS
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_AS+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2003-03-22 00:07:21 +00:00
else
if test -n "$AS"; then
ac_cv_prog_AS="$AS" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2003-03-22 00:07:21 +00:00
ac_cv_prog_AS="$ac_prog"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2003-03-22 00:07:21 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
2003-03-22 00:07:21 +00:00
fi
fi
AS=$ac_cv_prog_AS
if test -n "$AS"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$AS" >&6; }
2003-03-22 00:07:21 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2003-03-22 00:07:21 +00:00
fi
2007-06-08 03:17:15 +00:00
2003-03-22 00:07:21 +00:00
test -n "$AS" && break
done
if test -z "$AS"; then
ac_verc_fail=yes
else
# Found it, now check the version.
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $AS" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking version of $AS... " >&6; }
2003-03-22 00:07:21 +00:00
ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2017-09-26 01:01:23 +00:00
2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
2003-03-22 00:07:21 +00:00
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
esac
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_prog_version" >&6; }
2003-03-22 00:07:21 +00:00
fi
if test $ac_verc_fail = yes; then
2003-04-01 06:53:27 +00:00
AS=: critic_missing="$critic_missing as"
2003-03-22 00:07:21 +00:00
fi
2017-06-28 11:03:57 +00:00
2021-08-30 20:59:33 +00:00
libc_cv_with_lld=no
case $($LD --version) in
"GNU gold"*)
2017-06-28 11:03:57 +00:00
# Accept gold 1.14 or higher
2021-08-30 20:59:33 +00:00
for ac_prog in $LD
2017-06-28 11:03:57 +00:00
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_LD+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$LD"; then
ac_cv_prog_LD="$LD" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_LD="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
LD=$ac_cv_prog_LD
if test -n "$LD"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
$as_echo "$LD" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$LD" && break
done
if test -z "$LD"; then
ac_verc_fail=yes
else
# Found it, now check the version.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5
$as_echo_n "checking version of $LD... " >&6; }
ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU gold.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
1.1[4-9]*|1.[2-9][0-9]*|1.1[0-9][0-9]*|[2-9].*|[1-9][0-9]*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
$as_echo "$ac_prog_version" >&6; }
fi
if test $ac_verc_fail = yes; then
LD=: critic_missing="$critic_missing GNU gold"
fi
2021-08-30 20:59:33 +00:00
;;
"LLD"*)
# Accept LLD 13.0.0 or higher
for ac_prog in $LD
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_LD+:} false; then :
$as_echo_n "(cached) " >&6
2017-06-28 11:03:57 +00:00
else
2021-08-30 20:59:33 +00:00
if test -n "$LD"; then
ac_cv_prog_LD="$LD" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_LD="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
LD=$ac_cv_prog_LD
if test -n "$LD"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
$as_echo "$LD" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$LD" && break
done
if test -z "$LD"; then
ac_verc_fail=yes
else
# Found it, now check the version.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5
$as_echo_n "checking version of $LD... " >&6; }
ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*LLD.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
1[3-9].*|[2-9][0-9].*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
$as_echo "$ac_prog_version" >&6; }
fi
if test $ac_verc_fail = yes; then
LD=: critic_missing="$critic_missing LLD"
fi
libc_cv_with_lld=yes
;;
*)
for ac_prog in $LD
2003-03-22 00:07:21 +00:00
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_LD+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2003-03-22 00:07:21 +00:00
else
if test -n "$LD"; then
ac_cv_prog_LD="$LD" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2003-03-22 00:07:21 +00:00
ac_cv_prog_LD="$ac_prog"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2003-03-22 00:07:21 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
2003-03-22 00:07:21 +00:00
fi
fi
LD=$ac_cv_prog_LD
if test -n "$LD"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$LD" >&6; }
2003-03-22 00:07:21 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2003-03-22 00:07:21 +00:00
fi
2007-06-08 03:17:15 +00:00
2003-03-22 00:07:21 +00:00
test -n "$LD" && break
done
if test -z "$LD"; then
ac_verc_fail=yes
else
# Found it, now check the version.
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking version of $LD... " >&6; }
2003-03-22 00:07:21 +00:00
ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2017-06-28 11:31:50 +00:00
2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
2003-03-22 00:07:21 +00:00
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
esac
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_prog_version" >&6; }
2003-03-22 00:07:21 +00:00
fi
if test $ac_verc_fail = yes; then
2017-06-28 11:03:57 +00:00
LD=: critic_missing="$critic_missing GNU ld"
2003-03-22 00:07:21 +00:00
fi
2021-08-30 20:59:33 +00:00
;;
esac
config_vars="$config_vars
with-lld = $libc_cv_with_lld"
2003-03-22 00:07:21 +00:00
# These programs are version sensitive.
for ac_prog in gnumake gmake make
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_MAKE+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2003-03-22 00:07:21 +00:00
else
if test -n "$MAKE"; then
ac_cv_prog_MAKE="$MAKE" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2003-03-22 00:07:21 +00:00
ac_cv_prog_MAKE="$ac_prog"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2003-03-22 00:07:21 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
2003-03-22 00:07:21 +00:00
fi
fi
MAKE=$ac_cv_prog_MAKE
if test -n "$MAKE"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKE" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$MAKE" >&6; }
2003-03-22 00:07:21 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2003-03-22 00:07:21 +00:00
fi
2007-06-08 03:17:15 +00:00
2003-03-22 00:07:21 +00:00
test -n "$MAKE" && break
done
if test -z "$MAKE"; then
ac_verc_fail=yes
else
# Found it, now check the version.
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $MAKE" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking version of $MAKE... " >&6; }
2003-03-22 00:07:21 +00:00
ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2018-07-04 13:27:24 +00:00
[4-9].* | [1-9][0-9]*)
2003-03-22 00:07:21 +00:00
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
esac
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_prog_version" >&6; }
2003-03-22 00:07:21 +00:00
fi
if test $ac_verc_fail = yes; then
critic_missing="$critic_missing make"
fi
2002-11-14 03:59:56 +00:00
1997-07-14 21:49:20 +00:00
2003-03-22 00:07:21 +00:00
for ac_prog in gnumsgfmt gmsgfmt msgfmt
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_MSGFMT+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
1997-07-14 21:49:20 +00:00
else
2003-03-22 00:07:21 +00:00
if test -n "$MSGFMT"; then
ac_cv_prog_MSGFMT="$MSGFMT" # Let the user override the test.
1997-07-14 21:49:20 +00:00
else
2002-10-17 23:48:55 +00:00
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2003-03-22 00:07:21 +00:00
ac_cv_prog_MSGFMT="$ac_prog"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2002-10-17 23:48:55 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
2002-10-17 23:48:55 +00:00
1997-07-14 21:49:20 +00:00
fi
fi
2003-03-22 00:07:21 +00:00
MSGFMT=$ac_cv_prog_MSGFMT
if test -n "$MSGFMT"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$MSGFMT" >&6; }
1997-07-14 21:49:20 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
1997-07-14 21:49:20 +00:00
fi
2007-06-08 03:17:15 +00:00
2003-03-22 00:07:21 +00:00
test -n "$MSGFMT" && break
done
if test -z "$MSGFMT"; then
ac_verc_fail=yes
else
# Found it, now check the version.
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $MSGFMT" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking version of $MSGFMT... " >&6; }
2003-03-22 00:07:21 +00:00
ac_prog_version=`$MSGFMT --version 2>&1 | sed -n 's/^.*GNU gettext.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
esac
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_prog_version" >&6; }
2002-10-17 23:48:55 +00:00
fi
2003-03-22 00:07:21 +00:00
if test $ac_verc_fail = yes; then
MSGFMT=: aux_missing="$aux_missing msgfmt"
fi
for ac_prog in makeinfo
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_MAKEINFO+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
1997-07-14 21:49:20 +00:00
else
2003-03-22 00:07:21 +00:00
if test -n "$MAKEINFO"; then
ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test.
1997-07-14 21:49:20 +00:00
else
2002-10-17 23:48:55 +00:00
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2003-03-22 00:07:21 +00:00
ac_cv_prog_MAKEINFO="$ac_prog"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2002-10-17 23:48:55 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
2002-10-17 23:48:55 +00:00
1997-07-14 21:49:20 +00:00
fi
fi
2003-03-22 00:07:21 +00:00
MAKEINFO=$ac_cv_prog_MAKEINFO
if test -n "$MAKEINFO"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKEINFO" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$MAKEINFO" >&6; }
1997-07-14 21:49:20 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
1997-07-14 21:49:20 +00:00
fi
2007-06-08 03:17:15 +00:00
2003-03-22 00:07:21 +00:00
test -n "$MAKEINFO" && break
done
1998-11-20 17:27:07 +00:00
2003-03-22 00:07:21 +00:00
if test -z "$MAKEINFO"; then
ac_verc_fail=yes
1998-11-20 17:27:07 +00:00
else
2003-03-22 00:07:21 +00:00
# Found it, now check the version.
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $MAKEINFO" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking version of $MAKEINFO... " >&6; }
2003-03-22 00:07:21 +00:00
ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2014-12-11 17:59:45 +00:00
4.[7-9]*|4.[1-9][0-9]*|[5-9].*)
2003-03-22 00:07:21 +00:00
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
1998-11-20 17:27:07 +00:00
2003-03-22 00:07:21 +00:00
esac
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_prog_version" >&6; }
1998-11-20 17:27:07 +00:00
fi
2003-03-22 00:07:21 +00:00
if test $ac_verc_fail = yes; then
MAKEINFO=: aux_missing="$aux_missing makeinfo"
1998-11-20 17:27:07 +00:00
fi
1997-07-14 21:49:20 +00:00
2003-03-22 00:07:21 +00:00
for ac_prog in sed
2002-11-06 08:54:01 +00:00
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_SED+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2002-11-06 08:54:01 +00:00
else
2003-03-22 00:07:21 +00:00
if test -n "$SED"; then
ac_cv_prog_SED="$SED" # Let the user override the test.
2002-11-06 08:54:01 +00:00
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2003-03-22 00:07:21 +00:00
ac_cv_prog_SED="$ac_prog"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2002-11-06 08:54:01 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
2002-11-06 08:54:01 +00:00
fi
fi
2003-03-22 00:07:21 +00:00
SED=$ac_cv_prog_SED
if test -n "$SED"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$SED" >&6; }
2002-11-06 08:54:01 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2002-11-06 08:54:01 +00:00
fi
2007-06-08 03:17:15 +00:00
2003-03-22 00:07:21 +00:00
test -n "$SED" && break
2002-11-06 08:54:01 +00:00
done
2003-03-22 00:07:21 +00:00
if test -z "$SED"; then
2002-11-06 08:54:01 +00:00
ac_verc_fail=yes
else
# Found it, now check the version.
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $SED" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking version of $SED... " >&6; }
2012-08-22 19:58:18 +00:00
ac_prog_version=`$SED --version 2>&1 | sed -n 's/^.*GNU sed[^0-9]* \([0-9]*\.[0-9.]*\).*$/\1/p'`
2002-11-06 08:54:01 +00:00
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2003-03-22 00:07:21 +00:00
3.0[2-9]*|3.[1-9]*|[4-9]*)
2002-11-06 08:54:01 +00:00
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
esac
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_prog_version" >&6; }
2002-11-06 08:54:01 +00:00
fi
if test $ac_verc_fail = yes; then
2003-03-22 00:07:21 +00:00
SED=: aux_missing="$aux_missing sed"
2002-11-06 08:54:01 +00:00
fi
2012-09-01 23:30:18 +00:00
for ac_prog in gawk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_AWK+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2012-09-01 23:30:18 +00:00
ac_cv_prog_AWK="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
$as_echo "$AWK" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$AWK" && break
done
if test -z "$AWK"; then
ac_verc_fail=yes
else
# Found it, now check the version.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $AWK" >&5
$as_echo_n "checking version of $AWK... " >&6; }
ac_prog_version=`$AWK --version 2>&1 | sed -n 's/^.*GNU Awk[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2013-06-17 16:54:51 +00:00
3.1.[2-9]*|3.[2-9]*|[4-9]*)
2012-09-01 23:30:18 +00:00
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
$as_echo "$ac_prog_version" >&6; }
fi
if test $ac_verc_fail = yes; then
critic_missing="$critic_missing gawk"
fi
2017-11-30 21:21:15 +00:00
for ac_prog in bison
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_BISON+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$BISON"; then
ac_cv_prog_BISON="$BISON" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_BISON="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
BISON=$ac_cv_prog_BISON
if test -n "$BISON"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $BISON" >&5
$as_echo "$BISON" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$BISON" && break
done
if test -z "$BISON"; then
ac_verc_fail=yes
else
# Found it, now check the version.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $BISON" >&5
$as_echo_n "checking version of $BISON... " >&6; }
ac_prog_version=`$BISON --version 2>&1 | sed -n 's/^.*bison (GNU Bison) \([0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.7*|[3-9].*|[1-9][0-9]*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
$as_echo "$ac_prog_version" >&6; }
fi
if test $ac_verc_fail = yes; then
critic_missing="$critic_missing bison"
fi
2003-03-22 00:07:21 +00:00
2014-10-24 21:45:47 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC is sufficient to build libc" >&5
$as_echo_n "checking if $CC is sufficient to build libc... " >&6; }
if ${libc_cv_compiler_ok+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
2019-02-01 16:27:44 +00:00
#if !defined __GNUC__ || __GNUC__ < 6 || (__GNUC__ == 6 && __GNUC_MINOR__ < 2)
2014-10-24 21:45:47 +00:00
#error insufficient compiler
#endif
;
return 0;
}
_ACEOF
2021-05-22 02:42:48 +00:00
if ac_fn_c_try_cpp "$LINENO"; then :
2014-10-24 21:45:47 +00:00
libc_cv_compiler_ok=yes
else
libc_cv_compiler_ok=no
fi
2021-05-22 02:42:48 +00:00
rm -f conftest.err conftest.i conftest.$ac_ext
2014-10-24 21:45:47 +00:00
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_compiler_ok" >&5
$as_echo "$libc_cv_compiler_ok" >&6; }
if test $libc_cv_compiler_ok != yes; then :
critic_missing="$critic_missing compiler"
fi
2012-05-14 23:08:25 +00:00
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args.
set dummy ${ac_tool_prefix}nm; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_NM+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$NM"; then
ac_cv_prog_NM="$NM" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2012-05-14 23:08:25 +00:00
ac_cv_prog_NM="${ac_tool_prefix}nm"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
NM=$ac_cv_prog_NM
if test -n "$NM"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
$as_echo "$NM" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_NM"; then
ac_ct_NM=$NM
# Extract the first word of "nm", so it can be a program name with args.
set dummy nm; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_NM+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_NM"; then
ac_cv_prog_ac_ct_NM="$ac_ct_NM" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2012-05-14 23:08:25 +00:00
ac_cv_prog_ac_ct_NM="nm"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_NM=$ac_cv_prog_ac_ct_NM
if test -n "$ac_ct_NM"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NM" >&5
$as_echo "$ac_ct_NM" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_ct_NM" = x; then
NM="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
NM=$ac_ct_NM
fi
else
NM="$ac_cv_prog_NM"
fi
2011-07-09 11:06:34 +00:00
2013-12-16 01:25:04 +00:00
if test "x$maintainer" = "xyes"; then
for ac_prog in autoconf
2002-11-06 08:54:01 +00:00
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_prog_AUTOCONF+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2002-11-06 08:54:01 +00:00
else
2003-03-22 00:07:21 +00:00
if test -n "$AUTOCONF"; then
ac_cv_prog_AUTOCONF="$AUTOCONF" # Let the user override the test.
2002-11-06 08:54:01 +00:00
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2003-03-22 00:07:21 +00:00
ac_cv_prog_AUTOCONF="$ac_prog"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2002-11-06 08:54:01 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
2002-11-06 08:54:01 +00:00
fi
fi
2003-03-22 00:07:21 +00:00
AUTOCONF=$ac_cv_prog_AUTOCONF
if test -n "$AUTOCONF"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $AUTOCONF" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$AUTOCONF" >&6; }
2002-11-06 08:54:01 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
2002-11-06 08:54:01 +00:00
fi
2007-06-08 03:17:15 +00:00
2003-03-22 00:07:21 +00:00
test -n "$AUTOCONF" && break
2002-11-06 08:54:01 +00:00
done
2003-03-22 00:07:21 +00:00
test -n "$AUTOCONF" || AUTOCONF="no"
2002-11-06 08:54:01 +00:00
2013-12-16 01:25:04 +00:00
case "x$AUTOCONF" in
xno|x|x:) AUTOCONF=no ;;
*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works" >&5
$as_echo_n "checking whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_autoconf_works+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2002-11-06 08:54:01 +00:00
else
2013-12-16 01:25:04 +00:00
if (cd $srcdir; $AUTOCONF $ACFLAGS configure.ac > /dev/null 2>&1); then
libc_cv_autoconf_works=yes
else
libc_cv_autoconf_works=no
fi
2002-11-06 08:54:01 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_autoconf_works" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_autoconf_works" >&6; }
2013-12-16 01:25:04 +00:00
test $libc_cv_autoconf_works = yes || AUTOCONF=no
;;
esac
if test "x$AUTOCONF" = xno; then
aux_missing="$aux_missing autoconf"
fi
2013-12-16 11:45:27 +00:00
else
AUTOCONF=no
2002-11-06 08:54:01 +00:00
fi
2016-12-22 17:37:52 +00:00
# Check for python3 if available, or else python.
for ac_prog in python3 python
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_PYTHON_PROG+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$PYTHON_PROG"; then
ac_cv_prog_PYTHON_PROG="$PYTHON_PROG" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_PYTHON_PROG="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
PYTHON_PROG=$ac_cv_prog_PYTHON_PROG
if test -n "$PYTHON_PROG"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_PROG" >&5
$as_echo "$PYTHON_PROG" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$PYTHON_PROG" && break
done
2018-10-29 15:28:05 +00:00
if test -z "$PYTHON_PROG"; then
ac_verc_fail=yes
2016-12-22 17:37:52 +00:00
else
2018-10-29 15:28:05 +00:00
# Found it, now check the version.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $PYTHON_PROG" >&5
$as_echo_n "checking version of $PYTHON_PROG... " >&6; }
ac_prog_version=`$PYTHON_PROG --version 2>&1 | sed -n 's/^.*Python \([0-9][0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
3.[4-9]*|3.[1-9][0-9]*|[4-9].*|[1-9][0-9]*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
2016-12-22 17:37:52 +00:00
2018-10-29 15:28:05 +00:00
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
$as_echo "$ac_prog_version" >&6; }
2016-12-22 17:37:52 +00:00
fi
2018-10-29 15:28:05 +00:00
if test $ac_verc_fail = yes; then
critic_missing="$critic_missing python"
fi
PYTHON="$PYTHON_PROG -B"
2016-12-22 17:37:52 +00:00
2010-12-25 01:14:37 +00:00
test -n "$critic_missing" && as_fn_error $? "
2003-03-19 00:34:41 +00:00
*** These critical programs are missing or too old:$critic_missing
2010-07-10 02:25:39 +00:00
*** Check the INSTALL file for required versions." "$LINENO" 5
2003-03-19 00:34:41 +00:00
2010-07-10 02:25:39 +00:00
test -n "$aux_missing" && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
2002-10-08 08:51:28 +00:00
*** These auxiliary programs are missing or incompatible versions:$aux_missing
2016-12-22 17:37:52 +00:00
*** some features or tests will be disabled.
2002-10-17 23:48:55 +00:00
*** Check the INSTALL file for required versions." >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING:
2002-10-17 23:48:55 +00:00
*** These auxiliary programs are missing or incompatible versions:$aux_missing
2016-12-22 17:37:52 +00:00
*** some features or tests will be disabled.
2002-10-17 23:48:55 +00:00
*** Check the INSTALL file for required versions." >&2;}
2001-01-23 08:03:26 +00:00
1998-04-07 20:39:52 +00:00
# if using special system headers, find out the compiler's sekrit
# header directory and add that to the list. NOTE: Only does the right
# thing on a system that doesn't need fixincludes. (Not presently a problem.)
if test -n "$sysheaders"; then
2008-02-01 00:20:11 +00:00
SYSINCLUDES=-nostdinc
for d in include include-fixed; do
2008-04-11 17:53:44 +00:00
i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" &&
2008-02-01 00:20:11 +00:00
SYSINCLUDES="$SYSINCLUDES -isystem $i"
done
SYSINCLUDES="$SYSINCLUDES \
2004-09-16 23:22:05 +00:00
-isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
2005-12-28 06:53:43 +00:00
if test -n "$CXX"; then
2011-10-15 18:08:45 +00:00
CXX_SYSINCLUDES=
2012-11-25 06:58:38 +00:00
for cxxheaders in `$CXX -v -S -x c++ /dev/null -o /dev/null 2>&1 \
| sed -n -e '1,/#include/d' -e 's/^ \(\/.*\/[cg]++\)/\1/p'`; do
test "x$cxxheaders" != x &&
CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders"
done
2005-12-28 06:53:43 +00:00
fi
1998-04-07 20:39:52 +00:00
fi
2005-12-28 06:53:43 +00:00
2016-09-21 08:45:32 +00:00
# Obtain some C++ header file paths. This is used to make a local
# copy of those headers in Makerules.
if test -n "$CXX"; then
find_cxx_header () {
2017-06-13 20:09:59 +00:00
echo "#include <$1>" | $CXX -M -MP -x c++ - 2>/dev/null \
| sed -n "\,$1:,{s/:\$//;p}"
2016-09-21 08:45:32 +00:00
}
CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)"
CXX_CMATH_HEADER="$(find_cxx_header cmath)"
2017-06-13 16:28:14 +00:00
CXX_BITS_STD_ABS_H="$(find_cxx_header bits/std_abs.h)"
2016-09-21 08:45:32 +00:00
fi
2017-06-13 16:28:14 +00:00
1998-03-23 12:30:14 +00:00
# Test if LD_LIBRARY_PATH contains the notation for the current directory
# since this would lead to problems installing/building glibc.
# LD_LIBRARY_PATH contains the current directory if one of the following
# is true:
# - one of the terminals (":" and ";") is the first or last sign
# - two terminals occur directly after each other
# - the path contains an element with a dot in it
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LD_LIBRARY_PATH variable" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking LD_LIBRARY_PATH variable... " >&6; }
1998-03-23 12:30:14 +00:00
case ${LD_LIBRARY_PATH} in
[:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
1998-03-23 13:47:20 +00:00
ld_library_path_setting="contains current directory"
1998-03-23 12:30:14 +00:00
;;
*)
ld_library_path_setting="ok"
;;
esac
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_library_path_setting" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ld_library_path_setting" >&6; }
1998-03-23 12:30:14 +00:00
if test "$ld_library_path_setting" != "ok"; then
2010-12-25 01:14:37 +00:00
as_fn_error $? "
2002-10-17 23:48:55 +00:00
*** LD_LIBRARY_PATH shouldn't contain the current directory when
*** building glibc. Please change the environment variable
2010-07-10 02:25:39 +00:00
*** and run configure again." "$LINENO" 5
1998-03-23 12:30:14 +00:00
fi
1997-07-14 21:49:20 +00:00
# Extract the first word of "bash", so it can be a program name with args.
set dummy bash; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_path_BASH_SHELL+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
1997-07-14 21:49:20 +00:00
else
2007-06-08 03:17:15 +00:00
case $BASH_SHELL in
2002-10-17 23:48:55 +00:00
[\\/]* | ?:[\\/]*)
2007-06-08 03:17:15 +00:00
ac_cv_path_BASH_SHELL="$BASH_SHELL" # Let the user override the test with a path.
1997-07-14 21:49:20 +00:00
;;
*)
2002-10-17 23:48:55 +00:00
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2007-06-08 03:17:15 +00:00
ac_cv_path_BASH_SHELL="$as_dir/$ac_word$ac_exec_ext"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2002-10-17 23:48:55 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
2002-10-17 23:48:55 +00:00
2007-06-08 03:17:15 +00:00
test -z "$ac_cv_path_BASH_SHELL" && ac_cv_path_BASH_SHELL="no"
1997-07-14 21:49:20 +00:00
;;
esac
fi
2007-06-08 03:17:15 +00:00
BASH_SHELL=$ac_cv_path_BASH_SHELL
if test -n "$BASH_SHELL"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH_SHELL" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$BASH_SHELL" >&6; }
1997-07-14 21:49:20 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
1997-07-14 21:49:20 +00:00
fi
2007-06-08 03:17:15 +00:00
1997-07-14 21:49:20 +00:00
1998-11-05 12:26:43 +00:00
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_path_PERL+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
1997-09-27 00:21:42 +00:00
else
2002-10-17 23:48:55 +00:00
case $PERL in
[\\/]* | ?:[\\/]*)
1997-09-27 00:21:42 +00:00
ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
;;
*)
2002-10-17 23:48:55 +00:00
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2002-10-17 23:48:55 +00:00
ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2002-10-17 23:48:55 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
2002-10-17 23:48:55 +00:00
1998-11-05 12:26:43 +00:00
test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
1997-09-27 00:21:42 +00:00
;;
esac
fi
2002-10-17 23:48:55 +00:00
PERL=$ac_cv_path_PERL
1997-09-27 00:21:42 +00:00
if test -n "$PERL"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$PERL" >&6; }
1997-09-27 00:21:42 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
1997-09-27 00:21:42 +00:00
fi
2007-06-08 03:17:15 +00:00
2000-03-09 21:48:28 +00:00
if test "$PERL" != no &&
(eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
PERL=no
2000-03-03 19:49:23 +00:00
fi
1998-11-05 12:26:43 +00:00
# Extract the first word of "install-info", so it can be a program name with args.
set dummy install-info; ac_word=$2
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for $ac_word... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_path_INSTALL_INFO+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
1998-11-05 12:26:43 +00:00
else
2002-10-17 23:48:55 +00:00
case $INSTALL_INFO in
[\\/]* | ?:[\\/]*)
1998-11-05 12:26:43 +00:00
ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path.
;;
*)
2002-10-17 23:48:55 +00:00
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2002-10-19 20:07:18 +00:00
as_dummy="$PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin"
for as_dir in $as_dummy
2002-10-17 23:48:55 +00:00
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
for ac_exec_ext in '' $ac_executable_extensions; do
2014-09-29 14:45:59 +00:00
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2002-10-17 23:48:55 +00:00
ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2002-10-17 23:48:55 +00:00
break 2
fi
done
2010-07-10 02:25:39 +00:00
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
2002-10-17 23:48:55 +00:00
1998-11-05 12:26:43 +00:00
test -z "$ac_cv_path_INSTALL_INFO" && ac_cv_path_INSTALL_INFO="no"
;;
esac
fi
2002-10-17 23:48:55 +00:00
INSTALL_INFO=$ac_cv_path_INSTALL_INFO
1998-11-05 12:26:43 +00:00
if test -n "$INSTALL_INFO"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL_INFO" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$INSTALL_INFO" >&6; }
1998-11-05 12:26:43 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2009-04-07 06:36:33 +00:00
$as_echo "no" >&6; }
1998-11-05 12:26:43 +00:00
fi
2007-06-08 03:17:15 +00:00
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .set assembler directive" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for .set assembler directive... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_asm_set_directive+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
1997-07-14 21:49:20 +00:00
else
cat > conftest.s <<EOF
2015-10-26 22:44:18 +00:00
.text
1997-07-14 21:49:20 +00:00
foo:
.set glibc_conftest_frobozz,foo
2012-07-10 12:30:24 +00:00
.globl glibc_conftest_frobozz
1997-07-14 21:49:20 +00:00
EOF
# The alpha-dec-osf1 assembler gives only a warning for `.set'
# (but it doesn't work), so we must do a linking check to be sure.
cat > conftest1.c <<\EOF
extern int glibc_conftest_frobozz;
2003-04-01 06:50:04 +00:00
void _start() { glibc_conftest_frobozz = 1; }
1997-07-14 21:49:20 +00:00
EOF
if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
2016-12-26 09:08:54 +00:00
-nostartfiles -nostdlib $no_ssp \
1997-07-14 21:49:20 +00:00
-o conftest conftest.s conftest1.c 1>&5 2>&5; then
libc_cv_asm_set_directive=yes
else
libc_cv_asm_set_directive=no
fi
rm -f conftest*
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_set_directive" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_asm_set_directive" >&6; }
1997-07-14 21:49:20 +00:00
if test $libc_cv_asm_set_directive = yes; then
2010-07-10 02:25:39 +00:00
$as_echo "#define HAVE_ASM_SET_DIRECTIVE 1" >>confdefs.h
1997-07-14 21:49:20 +00:00
fi
2015-10-29 12:48:24 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker support for protected data symbol" >&5
2015-03-31 12:20:55 +00:00
$as_echo_n "checking linker support for protected data symbol... " >&6; }
if ${libc_cv_protected_data+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.c <<EOF
2015-10-29 12:48:24 +00:00
int bar __attribute__ ((visibility ("protected"))) = 1;
2015-03-31 12:20:55 +00:00
EOF
2015-10-29 12:48:24 +00:00
libc_cv_protected_data=no
2016-12-26 09:08:54 +00:00
if { ac_try='${CC-cc} -nostdlib -nostartfiles $no_ssp -fPIC -shared conftest.c -o conftest.so'
2015-03-31 12:20:55 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
2015-10-29 12:48:24 +00:00
cat > conftest.c <<EOF
extern int bar;
int main (void) { return bar; }
2015-03-31 12:20:55 +00:00
EOF
2016-12-26 09:08:54 +00:00
if { ac_try='${CC-cc} -nostdlib -nostartfiles $no_ssp conftest.c -o conftest conftest.so'
2015-03-31 12:20:55 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
2015-10-29 12:48:24 +00:00
libc_cv_protected_data=yes
2015-03-31 12:20:55 +00:00
fi
2015-10-29 12:48:24 +00:00
fi
rm -f conftest.*
2015-03-31 12:20:55 +00:00
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_protected_data" >&5
$as_echo "$libc_cv_protected_data" >&6; }
2017-08-04 19:17:15 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker support for INSERT in linker script" >&5
$as_echo_n "checking linker support for INSERT in linker script... " >&6; }
if ${libc_cv_insert+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.c <<EOF
2021-09-13 19:39:20 +00:00
int __attribute__ ((section(".bar"))) bar = 0x12345678;
2017-08-04 19:17:15 +00:00
int test (void) { return bar; }
EOF
cat > conftest.t <<EOF
SECTIONS
{
.bar : { *(.bar) }
}
INSERT AFTER .rela.dyn;
EOF
libc_cv_insert=no
if { ac_try='${CC-cc} -nostdlib -nostartfiles $no_ssp -fPIC -shared conftest.c -Wl,-T,conftest.t -o conftest.so'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
libc_cv_insert=yes
fi
rm -f conftest.*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_insert" >&5
$as_echo "$libc_cv_insert" >&6; }
2012-01-08 05:45:01 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken __attribute__((alias()))" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for broken __attribute__((alias()))... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_broken_alias_attribute+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
Update.
2002-08-02 Ulrich Drepper <drepper@redhat.com>
* configure.in (HAVE_BROKEN_ALIAS_ATTRIBUTE): Add check for
broken alias attribute handling.
* config.h.in (HAVE_BROKEN_ALIAS_ATTRIBUTE): Add.
* assert/assert.c (__assert_fail): Fix typo in comment.
* include/rpc/rpc.h: Declare __libc_tsd_RPC_VARS if USE_TLS &&
HAVE___THREAD.
* sunrpc/rpc_thread.c: Don't define __libc_tsd_RPC_VARS as static
if USE_TLS && HAVE___THREAD.
* sunrpc/Versions [libc] (GLIBC_PRIVATE): Export __libc_tsd_RPC_VARS.
2002-08-02 Jakub Jelinek <jakub@redhat.com>
* assert/assert.c (__assert_fail): Remove undef.
Replace INTDEF with libc_hidden_def.
* assert/__assert.c (__assert): Remove INTUSE.
* elf/dl-minimal.c (__assert_fail): Replace INTDEF with
libc_hidden_weak.
* include/libc-symbols.h (hidden_proto, hidden_def, hidden_weak,
hidden_ver, libc_hidden_proto, libc_hidden_def, libc_hidden_weak,
libc_hidden_ver, rtld_hidden_proto, rtld_hidden_def, rtld_hidden_weak,
rltd_hidden_ver, libm_hidden_proto, libm_hidden_def, libm_hidden_weak,
libm_hiden_ver): Define.
* include/assert.h (__assert_fail_internal): Remove.
(__assert_fail): Add prototype. Add hidden_proto.
* include/libc-internal.h (__libc_freeres, __profile_frequency): Add
libc_hidden_proto.
* include/wchar.h (__mbrtowc_internal, __mbrlen_internal): Remove.
(__mbrtowc, __mbrlen): Use libc_hidden_proto. Remove macros.
* include/string.h (__mempcpy, __stpncpy, __rawmemchr, __strcasecmp):
Add libc_hidden_proto.
* include/fcntl.h (__open64, __libc_open, __libc_fcntl, __open,
__fcntl): Add libc_hidden_proto. Remove macros.
(__open_internal, __fcntl_internal): Remove.
* libio/iofdopen.c (_IO_fcntl): Remove INTUSE from __fcntl.
* malloc/set-freeres.c (__libc_freeres): Add libc_hidden_def.
* nss/nsswitch.h (__nss_database_lookup, __nss_next): Add
libc_hiden_proto.
* nss/nsswitch.c (__nss_database_lookup, __nss_next): Add
libc_hidden_def.
* sysdeps/generic/mempcpy.c (__mempcpy): Remove undef.
Add libc_hidden_def.
* sysdeps/generic/open64.c (__open64): Add libc_hidden_def.
* sysdeps/generic/open.c (__open): Remove undef.
Add libc_hidden_def. Remove INTDEF.
* sysdeps/generic/fcntl.c (__fcntl): Remove undef.
Add libc_hidden_def.
* sysdeps/mach/hurd/fcntl.c (__fcntl): Likewise.
* sysdeps/i386/i586/mempcpy.S (__mempcpy): Add libc_hidden_def.
* sysdeps/i386/i686/mempcpy.S (__mempcpy): Likewise.
* sysdeps/mach/hurd/fcntl.c (__libc_fcntl, __fcntl): Remove undef.
(__fcntl): Remove INTDEF2. Add libc_hidden_weak.
(__libc_fcntl): Add libc_hidden_def.
* sysdeps/mach/hurd/open.c (__libc_open, __open): Remove undef.
(__open): Remove INTDEF2. Add libc_hidden_weak.
(__libc_open): Add libc_hidden_def.
* sysdeps/posix/open64.c (__open64): Add libc_hidden_weak.
* sysdeps/standalone/open.c (__open): Add libc_hidden_def.
* sysdeps/unix/sysv/aix/fcntl.c (__libc_fcntl, __fcntl): Remove undef.
Add libc_hidden_def.
* sysdeps/unix/sysv/aix/open.c (__libc_open, __open): Remove undef.
Add libc_hidden_def.
* sysdeps/unix/sysv/linux/i386/fcntl.c (__libc_fcntl, __fcntl): Remove
undef.
(__fcntl): Remove INTDEF2. Add libc_hidden_weak.
(__libc_fcntl): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/syscalls.list (__fcntl_internal,
__getpgid_internal, __chown_internal): Remove.
(__GI___fcntl, __GI___libc_fcntl, __GI___getpgid, __GI___pipe,
__GI___sched_setscheduler, __GI___select, __GI___setpgid,
__GI___chown): Add.
* sysdeps/unix/syscalls.list (__close_internal, __dup2_internal,
__getpid_internal, __open_internal, __write_internal): Remove.
(__GI___fcntl, __GI___libc_fcntl, __GI___open, __GI___libc_open,
__GI___chown, __GI___close, __GI___dup2, __GI___getpid,
__GI___libc_open, __GI___open, __GI___read, __GI___libc_read,
__GI___select, __GI___statfs, __GI___write, __GI___libc_write): Add.
* wcsmbs/mbrlen.c (__mbrlen): Remove undef.
Replace INTDEF with libc_hidden_def.
* wcsmbs/mbrtowc.c (__mbrtowc): Likewise.
* catgets/catgetsinfo.h (__open_catalog): Add libc_hidden_proto.
* catgets/open_catalog.c (__open_catalog): Add libc_hidden_def.
* elf/dl-profile.c (__profile_frequency): Add libc_hidden_proto.
* include/rpc/rpc.h (__rpc_thread_svc_fdset, __rpc_thread_createerr):
Add libc_hidden_proto.
* include/sys/poll.h (__poll): Add libc_hidden_proto.
* include/sys/select.h (__select): Likewise.
* include/sys/socket.h (__send): Likewise.
* include/sys/statfs.h (__statfs): Likewise.
* include/unistd.h (__pwrite64, __libc_read, __pipe, __chown, __dup2,
__getpid, __getpgid, __setpgid, __close, __read, __write,
__getpagesize, __sbrk): Likewise.
(__chown_internal, __dup2_internal, __getpid_internal,
__getpgid_internal, __close_internal, __write_internal,
__getpagesize_internal): Remove.
(__close, __dup2, __getpagesize, __getpgid, __getpid, __libc_write):
Remove macros.
* include/printf.h (__printf_fp): Add libc_hidden_proto.
* include/sched.h (__sched_setscheduler): Likewise.
* include/resolv.h (__res_ninit, __res_randomid): Likewise.
* include/stdlib.h (__secure_getenv): Likewise.
* include/signal.h (__sigaction, __sigsuspend): Likewise.
* inet/getaliasent_r.c (NSS_attribute_hidden): Remove.
* inet/getaliasname_r.c (NSS_attribute_hidden): Remove.
* inet/getnetbyad_r.c (NSS_attribute_hidden): Remove.
* inet/getnetbynm_r.c (NSS_attribute_hidden): Remove.
* inet/getnetent_r.c (NSS_attribute_hidden): Remove.
* inet/getproto_r.c (NSS_attribute_hidden): Remove.
* inet/getprtent_r.c (NSS_attribute_hidden): Remove.
* inet/getprtname_r.c (NSS_attribute_hidden): Remove.
* inet/getrpcbyname_r.c (NSS_attribute_hidden): Remove.
* inet/getrpcbynumber_r.c (NSS_attribute_hidden): Remove.
* inet/getrpcent_r.c (NSS_attribute_hidden): Remove.
* inet/getservent_r.c (NSS_attribute_hidden): Remove.
* inet/getsrvbynm_r.c (NSS_attribute_hidden): Remove.
* inet/getsrvbypt_r.c (NSS_attribute_hidden): Remove.
* inet/gethstbyad_r.c (DB_LOOKUP_FCT): Remove INTUSE.
* inet/gethstbynm2_r.c (DB_LOOKUP_FCT): Likewise.
* inet/gethstbynm_r.c (DB_LOOKUP_FCT): Likewise.
* inet/gethstent_r.c (DB_LOOKUP_FCT): Likewise.
* libio/genops.c (__overflow): Add libc_hidden_def.
* libio/iovdprintf.c: Remove libio.h include.
* libio/libioP.h (libc_hidden_proto, libc_hidden_def,
libc_hidden_weak): Define to nothing if not defined.
(__overflow, __woverflow): Add libc_hidden_proto.
* libio/wgenops.c (__woverflow): Add libc_hidden_def.
* nss/getXXent_r.c (NSS_attribute_hidden): Remove.
(DB_LOOKUP_FCT): Add libc_hidden_proto.
* nss/getXXbyYY_r.c (NSS_attribute_hidden): Remove.
(DB_LOOKUP_FCT): Add libc_hidden_proto.
* nss/XXX-lookup.c (DB_LOOKUP_FCT): Add libc_hidden_proto
and libc_hidden_def.
* nss/hosts-lookup.c (__nss_hosts_lookup): Remove INTDEF.
* posix/bsd-getpgrp.c (__getpgid_internal): Remove.
(__getpgid): Add libc_hidden_proto.
(__bsd_getpgrp): Remove INTUSE.
* resolv/res_init.c (__res_ninit, __res_randomid): Add
libc_hidden_def.
* shadow/getspent_r.c (NSS_attribute_hidden): Remove.
* shadow/getspnam_r.c (NSS_attribute_hidden): Remove.
* stdio-common/printf_fp.c (__printf_fp): Add libc_hidden_def.
* stdlib/strfmon.c (__printf_fp): Add libc_hidden_proto.
* stdlib/secure-getenv.c (__secure_getenv): Add libc_hidden_def.
* sunrpc/rpc_thread.c (__rpc_thread_svc_fdset,
__rpc_thread_createerr): Add libc_hidden_def.
* sysdeps/alpha/alphaev67/rawmemchr.S (__rawmemchr): Add
libc_hidden_def.
* sysdeps/alpha/alphaev67/stpncpy.S (__stpncpy): Likewise.
* sysdeps/alpha/rawmemchr.S (__rawmemchr): Likewise.
* sysdeps/alpha/stpncpy.S (__stpncpy): Likewise.
* sysdeps/generic/chown.c (__chown): Likewise.
* sysdeps/generic/close.c (__close): Likewise.
* sysdeps/generic/dup2.c (__dup2): Likewise.
* sysdeps/generic/pipe.c (__pipe): Likewise.
* sysdeps/generic/prof-freq.c (__profile_frequency): Likewise.
* sysdeps/generic/pwrite64.c (__pwrite64): Likewise.
* sysdeps/generic/rawmemchr.c (__rawmemchr): Likewise.
* sysdeps/generic/read.c (__libc_read): Likewise.
(__read): Add libc_hidden_weak.
* sysdeps/generic/sbrk.c (__sbrk): Add libc_hidden_def.
* sysdeps/generic/sched_sets.c (__sched_setscheduler): Likewise.
* sysdeps/generic/select.c (__select): Likewise.
* sysdeps/generic/send.c (__send): Likewise.
* sysdeps/generic/setpgid.c (__setpgid): Likewise.
* sysdeps/generic/sigaction.c (__sigaction): Likewise.
* sysdeps/generic/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/generic/statfs.c (__statfs): Likewise.
* sysdeps/generic/stpncpy.c (__stpncpy): Likewise.
* sysdeps/generic/strcasecmp.c (__strcasecmp): Likewise.
* sysdeps/generic/getpagesize.c (__getpagesize): Likewise.
Remove undef and INTDEF.
* sysdeps/generic/getpgid.c (__getpgid): Likewise.
* sysdeps/generic/getpid.c (__getpid): Likewise.
* sysdeps/generic/write.c (__libc_write): Likewise.
(__write): Add libc_hidden_weak. Remove undef and INTDEF.
* sysdeps/i386/rawmemchr.S (__rawmemchr): Add libc_hidden_def.
* sysdeps/i386/stpncpy.S (__stpncpy): Likewise.
* sysdeps/m68k/rawmemchr.S (__rawmemchr): Likewise.
* sysdeps/mach/hurd/chown.c (__chown): Likewise. Remove INTDEF.
* sysdeps/mach/hurd/close.c (__close): Add libc_hidden_def.
Remove undef and INTDEF.
* sysdeps/mach/hurd/dup2.c (__dup2): Likewise.
* sysdeps/mach/hurd/getpgid.c (__getpgid): Likewise.
* sysdeps/mach/hurd/getpid.c (__getpid): Likewise.
* sysdeps/mach/getpagesize.c (__getpagesize): Likewise.
* sysdeps/mach/hurd/write.c (__libc_write): Likewise.
(__write): Add libc_hidden_weak. Remove undef and INTDEF.
* sysdeps/mach/hurd/pipe.c: Include unistd.h.
(__pipe): Add libc_hidden_def.
* sysdeps/mach/hurd/dl-sysdep.c (__libc_read, __libc_write): Add
libc_hidden_weak.
* sysdeps/mach/hurd/poll.c (__poll): Add libc_hidden_def.
* sysdeps/mach/hurd/profil.c (__profile_frequency): Likewise.
* sysdeps/mach/hurd/read.c (__libc_read): Likewise.
(__read): Add libc_hidden_weak.
* sysdeps/mach/hurd/pwrite64.c (__pwrite64): Likewise.
(__libc_pwrite64): Add libc_hidden_def.
* sysdeps/mach/hurd/sbrk.c (__sbrk): Likewise.
* sysdeps/mach/hurd/select.c (__select): Likewise.
* sysdeps/mach/hurd/send.c (__send): Likewise.
* sysdeps/mach/hurd/setpgid.c (__setpgid): Likewise.
* sysdeps/mach/hurd/sigaction.c (__sigaction): Likewise.
* sysdeps/mach/hurd/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/mach/hurd/statfs.c (__statfs): Likewise.
* sysdeps/posix/dup2.c: Likewise.
Remove undef and INTDEF.
* sysdeps/posix/getpagesize.c (__getpagesize): Likewise.
* sysdeps/posix/pwrite64.c (__libc_pwrite64): Add libc_hidden_def.
(__pwrite64): Add libc_hidden_weak.
* sysdeps/posix/sigsuspend.c (__sigsuspend): Add libc_hidden_def.
* sysdeps/sparc/sparc64/rawmemchr.S (__rawmemchr): Likewise.
* sysdeps/sparc/sparc64/stpncpy.S (__stpncpy): Likewise.
* sysdeps/standalone/close.c (__close): Likewise.
* sysdeps/standalone/write.c (__libc_write): Likewise.
(__write): Add libc_hidden_weak.
* sysdeps/standalone/read.c (__read): Likewise.
(__libc_read): Add libc_hidden_def.
* sysdeps/unix/grantpt.c (grantpt): Remove INTUSE.
* sysdeps/unix/bsd/m68k/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/bsd/osf/alpha/pipe.S (__pipe): Likewise.
* sysdeps/unix/bsd/vax/pipe.S (__pipe): Likewise.
* sysdeps/unix/bsd/syscalls.list (__GI___getpagesize): Likewise.
* sysdeps/unix/bsd/poll.c (__poll): Likewise.
* sysdeps/unix/bsd/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/bsd/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/unix/common/syscalls.list (__GI___getpgid, __GI___setpgid,
__GI___sigaction): Add.
* sysdeps/unix/i386/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/inet/syscalls.list (__GI___send): Add.
* sysdeps/unix/mips/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/sparc/pipe.S (__pipe): Likewise.
* sysdeps/unix/sysv/irix4/syscalls.list (__GI___getpgid,
__GI___setpgid): Add.
* sysdeps/unix/sysv/aix/chown.c (__chown): Add libc_hidden_def.
Remove undef and INTDEF.
* sysdeps/unix/sysv/aix/getpgid.c (__getpgid): Likewise.
* sysdeps/unix/sysv/aix/write.c (__write, __libc_write): Likewise.
* sysdeps/unix/sysv/aix/close.c (__close): Add libc_hidden_def.
* sysdeps/unix/sysv/aix/getpid.c (__getpid): Likewise.
* sysdeps/unix/sysv/aix/pipe.c (__pipe): Likewise.
* sysdeps/unix/sysv/aix/read.c (__read, __libc_read): Likewise.
* sysdeps/unix/sysv/aix/poll.c (__poll): Likewise.
* sysdeps/unix/sysv/aix/sbrk.c (__sbrk): Likewise.
* sysdeps/unix/sysv/aix/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/sysv/aix/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/unix/sysv/aix/statfs.c (__statfs): Likewise.
* sysdeps/unix/sysv/aix/select.c (__select): Likewise.
* sysdeps/unix/sysv/aix/setpgid.c (__setpgid): Likewise.
* sysdeps/unix/sysv/linux/alpha/pipe.S (__pipe): Likewise.
* sysdeps/unix/sysv/linux/alpha/syscalls.list (__GI___pwrite64,
__GI___statfs, __GI___send): Add.
* sysdeps/unix/sysv/linux/alpha/select.S (__select): Add
libc_hidden_ver resp. libc_hidden_def.
* sysdeps/unix/sysv/linux/alpha/sigsuspend.S (__sigsuspend): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/ia64/getpagesize.c (__getpagesize):
Likewise. Remove undef and INTDEF.
* sysdeps/unix/sysv/linux/ia64/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/ia64/syscalls.list (__GI___pwrite64,
__GI___statfs, __GI___send): Add.
* sysdeps/unix/sysv/linux/ia64/sigaction.c (__sigaction): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/ia64/sigsuspend.c (__sigsuspend):
Likewise.
* sysdeps/unix/sysv/linux/sh/pipe.S (__pipe): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/chown.c (__chown): Add
libc_hidden_ver resp. libc_hidden_def.
* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (__GI___pwrite64,
__GI___send): Add.
* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c (__sigaction):
Add libc_hidden_weak.
* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c (__sigsuspend):
Add libc_hidden_def.
* sysdeps/unix/sysv/linux/hppa/syscalls.list (__GI___send): Add.
* sysdeps/unix/sysv/linux/arm/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/i386/chown.c (__chown): Add libc_hidden_ver
resp. libc_hidden_def.
* sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/m68k/chown.c (__chown): Likewise. Remove
INTDEF.
* sysdeps/unix/sysv/linux/m68k/getpagesize.c (__getpagesize):
Likewise. Remove undef.
* sysdeps/unix/sysv/linux/mips/pwrite64.c (__pwrite64): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/mips/syscalls.list (__GI___send): Add.
* sysdeps/unix/sysv/linux/mips/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/powerpc/chown.c (__chown): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/powerpc/pwrite64.c (__pwrite64): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c (__getpagesize):
Likewise. Remove undef and INTDEF.
* sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S (__pipe): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S (__pipe): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
(__GI___pwrite64, __GI___statfs, __GI___select, __GI___send): Add.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c (__sigsuspend):
Add libc_hidden_def.
* sysdeps/unix/sysv/linux/x86_64/syscalls.list (__GI___pwrite64,
__GI___statfs): Add.
* sysdeps/unix/sysv/linux/x86_64/send.c (__send): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/x86_64/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/sysv/linux/getpagesize.c: Add libc_hidden_def.
Remove undef and INTDEF.
* sysdeps/unix/sysv/linux/poll.c (__poll): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/pwrite64.c (__pwrite64): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/send.S (__send): Likewise.
* sysdeps/unix/sysv/linux/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Add
libc_hidden_def.
* sysdeps/unix/sysv/sco3.2.4/__setpgid.c (__setpgid): Likewise.
* sysdeps/unix/sysv/sco3.2.4/sigaction.S (__sigaction): Likewise.
* sysdeps/unix/sysv/sysv4/solaris2/syscalls.list (__GI___sigaction):
Add.
* sysdeps/unix/sysv/sysv4/__getpgid.c (__getpgid): Add
libc_hidden_def. Remove undef and INTDEF.
* sysdeps/unix/sysv/sysv4/getpgid.c (__getpgid): Likewise.
* sysdeps/unix/sysv/sysv4/__setpgid.c (__setpgid): Add
libc_hidden_def.
* sysdeps/unix/sysv/sysv4/setpgid.c (__setpgid): Likewise.
* sysdeps/unix/sysv/sysv4/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/sysv/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/getpagesize.c (__getpagesize): Add libc_hidden_def.
Remove undef and INTDEF.
* configure.in (HAVE_BROKEN_VISIBILITY_ATTRIBUTE): Add check for
broken visibility attribute handling.
* config.h.in (HAVE_BROKEN_VISIBILITY_ATTRIBUTE): Add.
2002-08-02 Ulrich Drepper <drepper@redhat.com>
2002-08-03 07:02:10 +00:00
else
cat > conftest.c <<EOF
2012-01-08 05:45:01 +00:00
extern int foo (int x) __asm ("xyzzy");
int bar (int x) { return x; }
extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
extern int dfoo;
extern __typeof (dfoo) dfoo __asm ("abccb");
int dfoo = 1;
Update.
2002-08-02 Ulrich Drepper <drepper@redhat.com>
* configure.in (HAVE_BROKEN_ALIAS_ATTRIBUTE): Add check for
broken alias attribute handling.
* config.h.in (HAVE_BROKEN_ALIAS_ATTRIBUTE): Add.
* assert/assert.c (__assert_fail): Fix typo in comment.
* include/rpc/rpc.h: Declare __libc_tsd_RPC_VARS if USE_TLS &&
HAVE___THREAD.
* sunrpc/rpc_thread.c: Don't define __libc_tsd_RPC_VARS as static
if USE_TLS && HAVE___THREAD.
* sunrpc/Versions [libc] (GLIBC_PRIVATE): Export __libc_tsd_RPC_VARS.
2002-08-02 Jakub Jelinek <jakub@redhat.com>
* assert/assert.c (__assert_fail): Remove undef.
Replace INTDEF with libc_hidden_def.
* assert/__assert.c (__assert): Remove INTUSE.
* elf/dl-minimal.c (__assert_fail): Replace INTDEF with
libc_hidden_weak.
* include/libc-symbols.h (hidden_proto, hidden_def, hidden_weak,
hidden_ver, libc_hidden_proto, libc_hidden_def, libc_hidden_weak,
libc_hidden_ver, rtld_hidden_proto, rtld_hidden_def, rtld_hidden_weak,
rltd_hidden_ver, libm_hidden_proto, libm_hidden_def, libm_hidden_weak,
libm_hiden_ver): Define.
* include/assert.h (__assert_fail_internal): Remove.
(__assert_fail): Add prototype. Add hidden_proto.
* include/libc-internal.h (__libc_freeres, __profile_frequency): Add
libc_hidden_proto.
* include/wchar.h (__mbrtowc_internal, __mbrlen_internal): Remove.
(__mbrtowc, __mbrlen): Use libc_hidden_proto. Remove macros.
* include/string.h (__mempcpy, __stpncpy, __rawmemchr, __strcasecmp):
Add libc_hidden_proto.
* include/fcntl.h (__open64, __libc_open, __libc_fcntl, __open,
__fcntl): Add libc_hidden_proto. Remove macros.
(__open_internal, __fcntl_internal): Remove.
* libio/iofdopen.c (_IO_fcntl): Remove INTUSE from __fcntl.
* malloc/set-freeres.c (__libc_freeres): Add libc_hidden_def.
* nss/nsswitch.h (__nss_database_lookup, __nss_next): Add
libc_hiden_proto.
* nss/nsswitch.c (__nss_database_lookup, __nss_next): Add
libc_hidden_def.
* sysdeps/generic/mempcpy.c (__mempcpy): Remove undef.
Add libc_hidden_def.
* sysdeps/generic/open64.c (__open64): Add libc_hidden_def.
* sysdeps/generic/open.c (__open): Remove undef.
Add libc_hidden_def. Remove INTDEF.
* sysdeps/generic/fcntl.c (__fcntl): Remove undef.
Add libc_hidden_def.
* sysdeps/mach/hurd/fcntl.c (__fcntl): Likewise.
* sysdeps/i386/i586/mempcpy.S (__mempcpy): Add libc_hidden_def.
* sysdeps/i386/i686/mempcpy.S (__mempcpy): Likewise.
* sysdeps/mach/hurd/fcntl.c (__libc_fcntl, __fcntl): Remove undef.
(__fcntl): Remove INTDEF2. Add libc_hidden_weak.
(__libc_fcntl): Add libc_hidden_def.
* sysdeps/mach/hurd/open.c (__libc_open, __open): Remove undef.
(__open): Remove INTDEF2. Add libc_hidden_weak.
(__libc_open): Add libc_hidden_def.
* sysdeps/posix/open64.c (__open64): Add libc_hidden_weak.
* sysdeps/standalone/open.c (__open): Add libc_hidden_def.
* sysdeps/unix/sysv/aix/fcntl.c (__libc_fcntl, __fcntl): Remove undef.
Add libc_hidden_def.
* sysdeps/unix/sysv/aix/open.c (__libc_open, __open): Remove undef.
Add libc_hidden_def.
* sysdeps/unix/sysv/linux/i386/fcntl.c (__libc_fcntl, __fcntl): Remove
undef.
(__fcntl): Remove INTDEF2. Add libc_hidden_weak.
(__libc_fcntl): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/syscalls.list (__fcntl_internal,
__getpgid_internal, __chown_internal): Remove.
(__GI___fcntl, __GI___libc_fcntl, __GI___getpgid, __GI___pipe,
__GI___sched_setscheduler, __GI___select, __GI___setpgid,
__GI___chown): Add.
* sysdeps/unix/syscalls.list (__close_internal, __dup2_internal,
__getpid_internal, __open_internal, __write_internal): Remove.
(__GI___fcntl, __GI___libc_fcntl, __GI___open, __GI___libc_open,
__GI___chown, __GI___close, __GI___dup2, __GI___getpid,
__GI___libc_open, __GI___open, __GI___read, __GI___libc_read,
__GI___select, __GI___statfs, __GI___write, __GI___libc_write): Add.
* wcsmbs/mbrlen.c (__mbrlen): Remove undef.
Replace INTDEF with libc_hidden_def.
* wcsmbs/mbrtowc.c (__mbrtowc): Likewise.
* catgets/catgetsinfo.h (__open_catalog): Add libc_hidden_proto.
* catgets/open_catalog.c (__open_catalog): Add libc_hidden_def.
* elf/dl-profile.c (__profile_frequency): Add libc_hidden_proto.
* include/rpc/rpc.h (__rpc_thread_svc_fdset, __rpc_thread_createerr):
Add libc_hidden_proto.
* include/sys/poll.h (__poll): Add libc_hidden_proto.
* include/sys/select.h (__select): Likewise.
* include/sys/socket.h (__send): Likewise.
* include/sys/statfs.h (__statfs): Likewise.
* include/unistd.h (__pwrite64, __libc_read, __pipe, __chown, __dup2,
__getpid, __getpgid, __setpgid, __close, __read, __write,
__getpagesize, __sbrk): Likewise.
(__chown_internal, __dup2_internal, __getpid_internal,
__getpgid_internal, __close_internal, __write_internal,
__getpagesize_internal): Remove.
(__close, __dup2, __getpagesize, __getpgid, __getpid, __libc_write):
Remove macros.
* include/printf.h (__printf_fp): Add libc_hidden_proto.
* include/sched.h (__sched_setscheduler): Likewise.
* include/resolv.h (__res_ninit, __res_randomid): Likewise.
* include/stdlib.h (__secure_getenv): Likewise.
* include/signal.h (__sigaction, __sigsuspend): Likewise.
* inet/getaliasent_r.c (NSS_attribute_hidden): Remove.
* inet/getaliasname_r.c (NSS_attribute_hidden): Remove.
* inet/getnetbyad_r.c (NSS_attribute_hidden): Remove.
* inet/getnetbynm_r.c (NSS_attribute_hidden): Remove.
* inet/getnetent_r.c (NSS_attribute_hidden): Remove.
* inet/getproto_r.c (NSS_attribute_hidden): Remove.
* inet/getprtent_r.c (NSS_attribute_hidden): Remove.
* inet/getprtname_r.c (NSS_attribute_hidden): Remove.
* inet/getrpcbyname_r.c (NSS_attribute_hidden): Remove.
* inet/getrpcbynumber_r.c (NSS_attribute_hidden): Remove.
* inet/getrpcent_r.c (NSS_attribute_hidden): Remove.
* inet/getservent_r.c (NSS_attribute_hidden): Remove.
* inet/getsrvbynm_r.c (NSS_attribute_hidden): Remove.
* inet/getsrvbypt_r.c (NSS_attribute_hidden): Remove.
* inet/gethstbyad_r.c (DB_LOOKUP_FCT): Remove INTUSE.
* inet/gethstbynm2_r.c (DB_LOOKUP_FCT): Likewise.
* inet/gethstbynm_r.c (DB_LOOKUP_FCT): Likewise.
* inet/gethstent_r.c (DB_LOOKUP_FCT): Likewise.
* libio/genops.c (__overflow): Add libc_hidden_def.
* libio/iovdprintf.c: Remove libio.h include.
* libio/libioP.h (libc_hidden_proto, libc_hidden_def,
libc_hidden_weak): Define to nothing if not defined.
(__overflow, __woverflow): Add libc_hidden_proto.
* libio/wgenops.c (__woverflow): Add libc_hidden_def.
* nss/getXXent_r.c (NSS_attribute_hidden): Remove.
(DB_LOOKUP_FCT): Add libc_hidden_proto.
* nss/getXXbyYY_r.c (NSS_attribute_hidden): Remove.
(DB_LOOKUP_FCT): Add libc_hidden_proto.
* nss/XXX-lookup.c (DB_LOOKUP_FCT): Add libc_hidden_proto
and libc_hidden_def.
* nss/hosts-lookup.c (__nss_hosts_lookup): Remove INTDEF.
* posix/bsd-getpgrp.c (__getpgid_internal): Remove.
(__getpgid): Add libc_hidden_proto.
(__bsd_getpgrp): Remove INTUSE.
* resolv/res_init.c (__res_ninit, __res_randomid): Add
libc_hidden_def.
* shadow/getspent_r.c (NSS_attribute_hidden): Remove.
* shadow/getspnam_r.c (NSS_attribute_hidden): Remove.
* stdio-common/printf_fp.c (__printf_fp): Add libc_hidden_def.
* stdlib/strfmon.c (__printf_fp): Add libc_hidden_proto.
* stdlib/secure-getenv.c (__secure_getenv): Add libc_hidden_def.
* sunrpc/rpc_thread.c (__rpc_thread_svc_fdset,
__rpc_thread_createerr): Add libc_hidden_def.
* sysdeps/alpha/alphaev67/rawmemchr.S (__rawmemchr): Add
libc_hidden_def.
* sysdeps/alpha/alphaev67/stpncpy.S (__stpncpy): Likewise.
* sysdeps/alpha/rawmemchr.S (__rawmemchr): Likewise.
* sysdeps/alpha/stpncpy.S (__stpncpy): Likewise.
* sysdeps/generic/chown.c (__chown): Likewise.
* sysdeps/generic/close.c (__close): Likewise.
* sysdeps/generic/dup2.c (__dup2): Likewise.
* sysdeps/generic/pipe.c (__pipe): Likewise.
* sysdeps/generic/prof-freq.c (__profile_frequency): Likewise.
* sysdeps/generic/pwrite64.c (__pwrite64): Likewise.
* sysdeps/generic/rawmemchr.c (__rawmemchr): Likewise.
* sysdeps/generic/read.c (__libc_read): Likewise.
(__read): Add libc_hidden_weak.
* sysdeps/generic/sbrk.c (__sbrk): Add libc_hidden_def.
* sysdeps/generic/sched_sets.c (__sched_setscheduler): Likewise.
* sysdeps/generic/select.c (__select): Likewise.
* sysdeps/generic/send.c (__send): Likewise.
* sysdeps/generic/setpgid.c (__setpgid): Likewise.
* sysdeps/generic/sigaction.c (__sigaction): Likewise.
* sysdeps/generic/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/generic/statfs.c (__statfs): Likewise.
* sysdeps/generic/stpncpy.c (__stpncpy): Likewise.
* sysdeps/generic/strcasecmp.c (__strcasecmp): Likewise.
* sysdeps/generic/getpagesize.c (__getpagesize): Likewise.
Remove undef and INTDEF.
* sysdeps/generic/getpgid.c (__getpgid): Likewise.
* sysdeps/generic/getpid.c (__getpid): Likewise.
* sysdeps/generic/write.c (__libc_write): Likewise.
(__write): Add libc_hidden_weak. Remove undef and INTDEF.
* sysdeps/i386/rawmemchr.S (__rawmemchr): Add libc_hidden_def.
* sysdeps/i386/stpncpy.S (__stpncpy): Likewise.
* sysdeps/m68k/rawmemchr.S (__rawmemchr): Likewise.
* sysdeps/mach/hurd/chown.c (__chown): Likewise. Remove INTDEF.
* sysdeps/mach/hurd/close.c (__close): Add libc_hidden_def.
Remove undef and INTDEF.
* sysdeps/mach/hurd/dup2.c (__dup2): Likewise.
* sysdeps/mach/hurd/getpgid.c (__getpgid): Likewise.
* sysdeps/mach/hurd/getpid.c (__getpid): Likewise.
* sysdeps/mach/getpagesize.c (__getpagesize): Likewise.
* sysdeps/mach/hurd/write.c (__libc_write): Likewise.
(__write): Add libc_hidden_weak. Remove undef and INTDEF.
* sysdeps/mach/hurd/pipe.c: Include unistd.h.
(__pipe): Add libc_hidden_def.
* sysdeps/mach/hurd/dl-sysdep.c (__libc_read, __libc_write): Add
libc_hidden_weak.
* sysdeps/mach/hurd/poll.c (__poll): Add libc_hidden_def.
* sysdeps/mach/hurd/profil.c (__profile_frequency): Likewise.
* sysdeps/mach/hurd/read.c (__libc_read): Likewise.
(__read): Add libc_hidden_weak.
* sysdeps/mach/hurd/pwrite64.c (__pwrite64): Likewise.
(__libc_pwrite64): Add libc_hidden_def.
* sysdeps/mach/hurd/sbrk.c (__sbrk): Likewise.
* sysdeps/mach/hurd/select.c (__select): Likewise.
* sysdeps/mach/hurd/send.c (__send): Likewise.
* sysdeps/mach/hurd/setpgid.c (__setpgid): Likewise.
* sysdeps/mach/hurd/sigaction.c (__sigaction): Likewise.
* sysdeps/mach/hurd/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/mach/hurd/statfs.c (__statfs): Likewise.
* sysdeps/posix/dup2.c: Likewise.
Remove undef and INTDEF.
* sysdeps/posix/getpagesize.c (__getpagesize): Likewise.
* sysdeps/posix/pwrite64.c (__libc_pwrite64): Add libc_hidden_def.
(__pwrite64): Add libc_hidden_weak.
* sysdeps/posix/sigsuspend.c (__sigsuspend): Add libc_hidden_def.
* sysdeps/sparc/sparc64/rawmemchr.S (__rawmemchr): Likewise.
* sysdeps/sparc/sparc64/stpncpy.S (__stpncpy): Likewise.
* sysdeps/standalone/close.c (__close): Likewise.
* sysdeps/standalone/write.c (__libc_write): Likewise.
(__write): Add libc_hidden_weak.
* sysdeps/standalone/read.c (__read): Likewise.
(__libc_read): Add libc_hidden_def.
* sysdeps/unix/grantpt.c (grantpt): Remove INTUSE.
* sysdeps/unix/bsd/m68k/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/bsd/osf/alpha/pipe.S (__pipe): Likewise.
* sysdeps/unix/bsd/vax/pipe.S (__pipe): Likewise.
* sysdeps/unix/bsd/syscalls.list (__GI___getpagesize): Likewise.
* sysdeps/unix/bsd/poll.c (__poll): Likewise.
* sysdeps/unix/bsd/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/bsd/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/unix/common/syscalls.list (__GI___getpgid, __GI___setpgid,
__GI___sigaction): Add.
* sysdeps/unix/i386/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/inet/syscalls.list (__GI___send): Add.
* sysdeps/unix/mips/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/sparc/pipe.S (__pipe): Likewise.
* sysdeps/unix/sysv/irix4/syscalls.list (__GI___getpgid,
__GI___setpgid): Add.
* sysdeps/unix/sysv/aix/chown.c (__chown): Add libc_hidden_def.
Remove undef and INTDEF.
* sysdeps/unix/sysv/aix/getpgid.c (__getpgid): Likewise.
* sysdeps/unix/sysv/aix/write.c (__write, __libc_write): Likewise.
* sysdeps/unix/sysv/aix/close.c (__close): Add libc_hidden_def.
* sysdeps/unix/sysv/aix/getpid.c (__getpid): Likewise.
* sysdeps/unix/sysv/aix/pipe.c (__pipe): Likewise.
* sysdeps/unix/sysv/aix/read.c (__read, __libc_read): Likewise.
* sysdeps/unix/sysv/aix/poll.c (__poll): Likewise.
* sysdeps/unix/sysv/aix/sbrk.c (__sbrk): Likewise.
* sysdeps/unix/sysv/aix/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/sysv/aix/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/unix/sysv/aix/statfs.c (__statfs): Likewise.
* sysdeps/unix/sysv/aix/select.c (__select): Likewise.
* sysdeps/unix/sysv/aix/setpgid.c (__setpgid): Likewise.
* sysdeps/unix/sysv/linux/alpha/pipe.S (__pipe): Likewise.
* sysdeps/unix/sysv/linux/alpha/syscalls.list (__GI___pwrite64,
__GI___statfs, __GI___send): Add.
* sysdeps/unix/sysv/linux/alpha/select.S (__select): Add
libc_hidden_ver resp. libc_hidden_def.
* sysdeps/unix/sysv/linux/alpha/sigsuspend.S (__sigsuspend): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/ia64/getpagesize.c (__getpagesize):
Likewise. Remove undef and INTDEF.
* sysdeps/unix/sysv/linux/ia64/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/ia64/syscalls.list (__GI___pwrite64,
__GI___statfs, __GI___send): Add.
* sysdeps/unix/sysv/linux/ia64/sigaction.c (__sigaction): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/ia64/sigsuspend.c (__sigsuspend):
Likewise.
* sysdeps/unix/sysv/linux/sh/pipe.S (__pipe): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/chown.c (__chown): Add
libc_hidden_ver resp. libc_hidden_def.
* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (__GI___pwrite64,
__GI___send): Add.
* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c (__sigaction):
Add libc_hidden_weak.
* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c (__sigsuspend):
Add libc_hidden_def.
* sysdeps/unix/sysv/linux/hppa/syscalls.list (__GI___send): Add.
* sysdeps/unix/sysv/linux/arm/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/i386/chown.c (__chown): Add libc_hidden_ver
resp. libc_hidden_def.
* sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/m68k/chown.c (__chown): Likewise. Remove
INTDEF.
* sysdeps/unix/sysv/linux/m68k/getpagesize.c (__getpagesize):
Likewise. Remove undef.
* sysdeps/unix/sysv/linux/mips/pwrite64.c (__pwrite64): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/mips/syscalls.list (__GI___send): Add.
* sysdeps/unix/sysv/linux/mips/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/powerpc/chown.c (__chown): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/powerpc/pwrite64.c (__pwrite64): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c (__getpagesize):
Likewise. Remove undef and INTDEF.
* sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S (__pipe): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S (__pipe): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
(__GI___pwrite64, __GI___statfs, __GI___select, __GI___send): Add.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c (__sigsuspend):
Add libc_hidden_def.
* sysdeps/unix/sysv/linux/x86_64/syscalls.list (__GI___pwrite64,
__GI___statfs): Add.
* sysdeps/unix/sysv/linux/x86_64/send.c (__send): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/x86_64/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/sysv/linux/getpagesize.c: Add libc_hidden_def.
Remove undef and INTDEF.
* sysdeps/unix/sysv/linux/poll.c (__poll): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/pwrite64.c (__pwrite64): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/send.S (__send): Likewise.
* sysdeps/unix/sysv/linux/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Add
libc_hidden_def.
* sysdeps/unix/sysv/sco3.2.4/__setpgid.c (__setpgid): Likewise.
* sysdeps/unix/sysv/sco3.2.4/sigaction.S (__sigaction): Likewise.
* sysdeps/unix/sysv/sysv4/solaris2/syscalls.list (__GI___sigaction):
Add.
* sysdeps/unix/sysv/sysv4/__getpgid.c (__getpgid): Add
libc_hidden_def. Remove undef and INTDEF.
* sysdeps/unix/sysv/sysv4/getpgid.c (__getpgid): Likewise.
* sysdeps/unix/sysv/sysv4/__setpgid.c (__setpgid): Add
libc_hidden_def.
* sysdeps/unix/sysv/sysv4/setpgid.c (__setpgid): Likewise.
* sysdeps/unix/sysv/sysv4/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/sysv/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/getpagesize.c (__getpagesize): Add libc_hidden_def.
Remove undef and INTDEF.
* configure.in (HAVE_BROKEN_VISIBILITY_ATTRIBUTE): Add check for
broken visibility attribute handling.
* config.h.in (HAVE_BROKEN_VISIBILITY_ATTRIBUTE): Add.
2002-08-02 Ulrich Drepper <drepper@redhat.com>
2002-08-03 07:02:10 +00:00
EOF
2012-01-08 05:45:01 +00:00
libc_cv_broken_alias_attribute=yes
if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s 1>&5'
2010-07-10 02:25:39 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
2003-03-16 02:47:28 +00:00
(eval $ac_try) 2>&5
ac_status=$?
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
2012-01-08 05:45:01 +00:00
if grep 'xyzzy' conftest.s >/dev/null &&
grep 'abccb' conftest.s >/dev/null; then
libc_cv_broken_alias_attribute=no
fi
fi
rm -f conftest.c conftest.s
Update.
2002-08-02 Ulrich Drepper <drepper@redhat.com>
* configure.in (HAVE_BROKEN_ALIAS_ATTRIBUTE): Add check for
broken alias attribute handling.
* config.h.in (HAVE_BROKEN_ALIAS_ATTRIBUTE): Add.
* assert/assert.c (__assert_fail): Fix typo in comment.
* include/rpc/rpc.h: Declare __libc_tsd_RPC_VARS if USE_TLS &&
HAVE___THREAD.
* sunrpc/rpc_thread.c: Don't define __libc_tsd_RPC_VARS as static
if USE_TLS && HAVE___THREAD.
* sunrpc/Versions [libc] (GLIBC_PRIVATE): Export __libc_tsd_RPC_VARS.
2002-08-02 Jakub Jelinek <jakub@redhat.com>
* assert/assert.c (__assert_fail): Remove undef.
Replace INTDEF with libc_hidden_def.
* assert/__assert.c (__assert): Remove INTUSE.
* elf/dl-minimal.c (__assert_fail): Replace INTDEF with
libc_hidden_weak.
* include/libc-symbols.h (hidden_proto, hidden_def, hidden_weak,
hidden_ver, libc_hidden_proto, libc_hidden_def, libc_hidden_weak,
libc_hidden_ver, rtld_hidden_proto, rtld_hidden_def, rtld_hidden_weak,
rltd_hidden_ver, libm_hidden_proto, libm_hidden_def, libm_hidden_weak,
libm_hiden_ver): Define.
* include/assert.h (__assert_fail_internal): Remove.
(__assert_fail): Add prototype. Add hidden_proto.
* include/libc-internal.h (__libc_freeres, __profile_frequency): Add
libc_hidden_proto.
* include/wchar.h (__mbrtowc_internal, __mbrlen_internal): Remove.
(__mbrtowc, __mbrlen): Use libc_hidden_proto. Remove macros.
* include/string.h (__mempcpy, __stpncpy, __rawmemchr, __strcasecmp):
Add libc_hidden_proto.
* include/fcntl.h (__open64, __libc_open, __libc_fcntl, __open,
__fcntl): Add libc_hidden_proto. Remove macros.
(__open_internal, __fcntl_internal): Remove.
* libio/iofdopen.c (_IO_fcntl): Remove INTUSE from __fcntl.
* malloc/set-freeres.c (__libc_freeres): Add libc_hidden_def.
* nss/nsswitch.h (__nss_database_lookup, __nss_next): Add
libc_hiden_proto.
* nss/nsswitch.c (__nss_database_lookup, __nss_next): Add
libc_hidden_def.
* sysdeps/generic/mempcpy.c (__mempcpy): Remove undef.
Add libc_hidden_def.
* sysdeps/generic/open64.c (__open64): Add libc_hidden_def.
* sysdeps/generic/open.c (__open): Remove undef.
Add libc_hidden_def. Remove INTDEF.
* sysdeps/generic/fcntl.c (__fcntl): Remove undef.
Add libc_hidden_def.
* sysdeps/mach/hurd/fcntl.c (__fcntl): Likewise.
* sysdeps/i386/i586/mempcpy.S (__mempcpy): Add libc_hidden_def.
* sysdeps/i386/i686/mempcpy.S (__mempcpy): Likewise.
* sysdeps/mach/hurd/fcntl.c (__libc_fcntl, __fcntl): Remove undef.
(__fcntl): Remove INTDEF2. Add libc_hidden_weak.
(__libc_fcntl): Add libc_hidden_def.
* sysdeps/mach/hurd/open.c (__libc_open, __open): Remove undef.
(__open): Remove INTDEF2. Add libc_hidden_weak.
(__libc_open): Add libc_hidden_def.
* sysdeps/posix/open64.c (__open64): Add libc_hidden_weak.
* sysdeps/standalone/open.c (__open): Add libc_hidden_def.
* sysdeps/unix/sysv/aix/fcntl.c (__libc_fcntl, __fcntl): Remove undef.
Add libc_hidden_def.
* sysdeps/unix/sysv/aix/open.c (__libc_open, __open): Remove undef.
Add libc_hidden_def.
* sysdeps/unix/sysv/linux/i386/fcntl.c (__libc_fcntl, __fcntl): Remove
undef.
(__fcntl): Remove INTDEF2. Add libc_hidden_weak.
(__libc_fcntl): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/syscalls.list (__fcntl_internal,
__getpgid_internal, __chown_internal): Remove.
(__GI___fcntl, __GI___libc_fcntl, __GI___getpgid, __GI___pipe,
__GI___sched_setscheduler, __GI___select, __GI___setpgid,
__GI___chown): Add.
* sysdeps/unix/syscalls.list (__close_internal, __dup2_internal,
__getpid_internal, __open_internal, __write_internal): Remove.
(__GI___fcntl, __GI___libc_fcntl, __GI___open, __GI___libc_open,
__GI___chown, __GI___close, __GI___dup2, __GI___getpid,
__GI___libc_open, __GI___open, __GI___read, __GI___libc_read,
__GI___select, __GI___statfs, __GI___write, __GI___libc_write): Add.
* wcsmbs/mbrlen.c (__mbrlen): Remove undef.
Replace INTDEF with libc_hidden_def.
* wcsmbs/mbrtowc.c (__mbrtowc): Likewise.
* catgets/catgetsinfo.h (__open_catalog): Add libc_hidden_proto.
* catgets/open_catalog.c (__open_catalog): Add libc_hidden_def.
* elf/dl-profile.c (__profile_frequency): Add libc_hidden_proto.
* include/rpc/rpc.h (__rpc_thread_svc_fdset, __rpc_thread_createerr):
Add libc_hidden_proto.
* include/sys/poll.h (__poll): Add libc_hidden_proto.
* include/sys/select.h (__select): Likewise.
* include/sys/socket.h (__send): Likewise.
* include/sys/statfs.h (__statfs): Likewise.
* include/unistd.h (__pwrite64, __libc_read, __pipe, __chown, __dup2,
__getpid, __getpgid, __setpgid, __close, __read, __write,
__getpagesize, __sbrk): Likewise.
(__chown_internal, __dup2_internal, __getpid_internal,
__getpgid_internal, __close_internal, __write_internal,
__getpagesize_internal): Remove.
(__close, __dup2, __getpagesize, __getpgid, __getpid, __libc_write):
Remove macros.
* include/printf.h (__printf_fp): Add libc_hidden_proto.
* include/sched.h (__sched_setscheduler): Likewise.
* include/resolv.h (__res_ninit, __res_randomid): Likewise.
* include/stdlib.h (__secure_getenv): Likewise.
* include/signal.h (__sigaction, __sigsuspend): Likewise.
* inet/getaliasent_r.c (NSS_attribute_hidden): Remove.
* inet/getaliasname_r.c (NSS_attribute_hidden): Remove.
* inet/getnetbyad_r.c (NSS_attribute_hidden): Remove.
* inet/getnetbynm_r.c (NSS_attribute_hidden): Remove.
* inet/getnetent_r.c (NSS_attribute_hidden): Remove.
* inet/getproto_r.c (NSS_attribute_hidden): Remove.
* inet/getprtent_r.c (NSS_attribute_hidden): Remove.
* inet/getprtname_r.c (NSS_attribute_hidden): Remove.
* inet/getrpcbyname_r.c (NSS_attribute_hidden): Remove.
* inet/getrpcbynumber_r.c (NSS_attribute_hidden): Remove.
* inet/getrpcent_r.c (NSS_attribute_hidden): Remove.
* inet/getservent_r.c (NSS_attribute_hidden): Remove.
* inet/getsrvbynm_r.c (NSS_attribute_hidden): Remove.
* inet/getsrvbypt_r.c (NSS_attribute_hidden): Remove.
* inet/gethstbyad_r.c (DB_LOOKUP_FCT): Remove INTUSE.
* inet/gethstbynm2_r.c (DB_LOOKUP_FCT): Likewise.
* inet/gethstbynm_r.c (DB_LOOKUP_FCT): Likewise.
* inet/gethstent_r.c (DB_LOOKUP_FCT): Likewise.
* libio/genops.c (__overflow): Add libc_hidden_def.
* libio/iovdprintf.c: Remove libio.h include.
* libio/libioP.h (libc_hidden_proto, libc_hidden_def,
libc_hidden_weak): Define to nothing if not defined.
(__overflow, __woverflow): Add libc_hidden_proto.
* libio/wgenops.c (__woverflow): Add libc_hidden_def.
* nss/getXXent_r.c (NSS_attribute_hidden): Remove.
(DB_LOOKUP_FCT): Add libc_hidden_proto.
* nss/getXXbyYY_r.c (NSS_attribute_hidden): Remove.
(DB_LOOKUP_FCT): Add libc_hidden_proto.
* nss/XXX-lookup.c (DB_LOOKUP_FCT): Add libc_hidden_proto
and libc_hidden_def.
* nss/hosts-lookup.c (__nss_hosts_lookup): Remove INTDEF.
* posix/bsd-getpgrp.c (__getpgid_internal): Remove.
(__getpgid): Add libc_hidden_proto.
(__bsd_getpgrp): Remove INTUSE.
* resolv/res_init.c (__res_ninit, __res_randomid): Add
libc_hidden_def.
* shadow/getspent_r.c (NSS_attribute_hidden): Remove.
* shadow/getspnam_r.c (NSS_attribute_hidden): Remove.
* stdio-common/printf_fp.c (__printf_fp): Add libc_hidden_def.
* stdlib/strfmon.c (__printf_fp): Add libc_hidden_proto.
* stdlib/secure-getenv.c (__secure_getenv): Add libc_hidden_def.
* sunrpc/rpc_thread.c (__rpc_thread_svc_fdset,
__rpc_thread_createerr): Add libc_hidden_def.
* sysdeps/alpha/alphaev67/rawmemchr.S (__rawmemchr): Add
libc_hidden_def.
* sysdeps/alpha/alphaev67/stpncpy.S (__stpncpy): Likewise.
* sysdeps/alpha/rawmemchr.S (__rawmemchr): Likewise.
* sysdeps/alpha/stpncpy.S (__stpncpy): Likewise.
* sysdeps/generic/chown.c (__chown): Likewise.
* sysdeps/generic/close.c (__close): Likewise.
* sysdeps/generic/dup2.c (__dup2): Likewise.
* sysdeps/generic/pipe.c (__pipe): Likewise.
* sysdeps/generic/prof-freq.c (__profile_frequency): Likewise.
* sysdeps/generic/pwrite64.c (__pwrite64): Likewise.
* sysdeps/generic/rawmemchr.c (__rawmemchr): Likewise.
* sysdeps/generic/read.c (__libc_read): Likewise.
(__read): Add libc_hidden_weak.
* sysdeps/generic/sbrk.c (__sbrk): Add libc_hidden_def.
* sysdeps/generic/sched_sets.c (__sched_setscheduler): Likewise.
* sysdeps/generic/select.c (__select): Likewise.
* sysdeps/generic/send.c (__send): Likewise.
* sysdeps/generic/setpgid.c (__setpgid): Likewise.
* sysdeps/generic/sigaction.c (__sigaction): Likewise.
* sysdeps/generic/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/generic/statfs.c (__statfs): Likewise.
* sysdeps/generic/stpncpy.c (__stpncpy): Likewise.
* sysdeps/generic/strcasecmp.c (__strcasecmp): Likewise.
* sysdeps/generic/getpagesize.c (__getpagesize): Likewise.
Remove undef and INTDEF.
* sysdeps/generic/getpgid.c (__getpgid): Likewise.
* sysdeps/generic/getpid.c (__getpid): Likewise.
* sysdeps/generic/write.c (__libc_write): Likewise.
(__write): Add libc_hidden_weak. Remove undef and INTDEF.
* sysdeps/i386/rawmemchr.S (__rawmemchr): Add libc_hidden_def.
* sysdeps/i386/stpncpy.S (__stpncpy): Likewise.
* sysdeps/m68k/rawmemchr.S (__rawmemchr): Likewise.
* sysdeps/mach/hurd/chown.c (__chown): Likewise. Remove INTDEF.
* sysdeps/mach/hurd/close.c (__close): Add libc_hidden_def.
Remove undef and INTDEF.
* sysdeps/mach/hurd/dup2.c (__dup2): Likewise.
* sysdeps/mach/hurd/getpgid.c (__getpgid): Likewise.
* sysdeps/mach/hurd/getpid.c (__getpid): Likewise.
* sysdeps/mach/getpagesize.c (__getpagesize): Likewise.
* sysdeps/mach/hurd/write.c (__libc_write): Likewise.
(__write): Add libc_hidden_weak. Remove undef and INTDEF.
* sysdeps/mach/hurd/pipe.c: Include unistd.h.
(__pipe): Add libc_hidden_def.
* sysdeps/mach/hurd/dl-sysdep.c (__libc_read, __libc_write): Add
libc_hidden_weak.
* sysdeps/mach/hurd/poll.c (__poll): Add libc_hidden_def.
* sysdeps/mach/hurd/profil.c (__profile_frequency): Likewise.
* sysdeps/mach/hurd/read.c (__libc_read): Likewise.
(__read): Add libc_hidden_weak.
* sysdeps/mach/hurd/pwrite64.c (__pwrite64): Likewise.
(__libc_pwrite64): Add libc_hidden_def.
* sysdeps/mach/hurd/sbrk.c (__sbrk): Likewise.
* sysdeps/mach/hurd/select.c (__select): Likewise.
* sysdeps/mach/hurd/send.c (__send): Likewise.
* sysdeps/mach/hurd/setpgid.c (__setpgid): Likewise.
* sysdeps/mach/hurd/sigaction.c (__sigaction): Likewise.
* sysdeps/mach/hurd/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/mach/hurd/statfs.c (__statfs): Likewise.
* sysdeps/posix/dup2.c: Likewise.
Remove undef and INTDEF.
* sysdeps/posix/getpagesize.c (__getpagesize): Likewise.
* sysdeps/posix/pwrite64.c (__libc_pwrite64): Add libc_hidden_def.
(__pwrite64): Add libc_hidden_weak.
* sysdeps/posix/sigsuspend.c (__sigsuspend): Add libc_hidden_def.
* sysdeps/sparc/sparc64/rawmemchr.S (__rawmemchr): Likewise.
* sysdeps/sparc/sparc64/stpncpy.S (__stpncpy): Likewise.
* sysdeps/standalone/close.c (__close): Likewise.
* sysdeps/standalone/write.c (__libc_write): Likewise.
(__write): Add libc_hidden_weak.
* sysdeps/standalone/read.c (__read): Likewise.
(__libc_read): Add libc_hidden_def.
* sysdeps/unix/grantpt.c (grantpt): Remove INTUSE.
* sysdeps/unix/bsd/m68k/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/bsd/osf/alpha/pipe.S (__pipe): Likewise.
* sysdeps/unix/bsd/vax/pipe.S (__pipe): Likewise.
* sysdeps/unix/bsd/syscalls.list (__GI___getpagesize): Likewise.
* sysdeps/unix/bsd/poll.c (__poll): Likewise.
* sysdeps/unix/bsd/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/bsd/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/unix/common/syscalls.list (__GI___getpgid, __GI___setpgid,
__GI___sigaction): Add.
* sysdeps/unix/i386/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/inet/syscalls.list (__GI___send): Add.
* sysdeps/unix/mips/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/sparc/pipe.S (__pipe): Likewise.
* sysdeps/unix/sysv/irix4/syscalls.list (__GI___getpgid,
__GI___setpgid): Add.
* sysdeps/unix/sysv/aix/chown.c (__chown): Add libc_hidden_def.
Remove undef and INTDEF.
* sysdeps/unix/sysv/aix/getpgid.c (__getpgid): Likewise.
* sysdeps/unix/sysv/aix/write.c (__write, __libc_write): Likewise.
* sysdeps/unix/sysv/aix/close.c (__close): Add libc_hidden_def.
* sysdeps/unix/sysv/aix/getpid.c (__getpid): Likewise.
* sysdeps/unix/sysv/aix/pipe.c (__pipe): Likewise.
* sysdeps/unix/sysv/aix/read.c (__read, __libc_read): Likewise.
* sysdeps/unix/sysv/aix/poll.c (__poll): Likewise.
* sysdeps/unix/sysv/aix/sbrk.c (__sbrk): Likewise.
* sysdeps/unix/sysv/aix/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/sysv/aix/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/unix/sysv/aix/statfs.c (__statfs): Likewise.
* sysdeps/unix/sysv/aix/select.c (__select): Likewise.
* sysdeps/unix/sysv/aix/setpgid.c (__setpgid): Likewise.
* sysdeps/unix/sysv/linux/alpha/pipe.S (__pipe): Likewise.
* sysdeps/unix/sysv/linux/alpha/syscalls.list (__GI___pwrite64,
__GI___statfs, __GI___send): Add.
* sysdeps/unix/sysv/linux/alpha/select.S (__select): Add
libc_hidden_ver resp. libc_hidden_def.
* sysdeps/unix/sysv/linux/alpha/sigsuspend.S (__sigsuspend): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/ia64/getpagesize.c (__getpagesize):
Likewise. Remove undef and INTDEF.
* sysdeps/unix/sysv/linux/ia64/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/ia64/syscalls.list (__GI___pwrite64,
__GI___statfs, __GI___send): Add.
* sysdeps/unix/sysv/linux/ia64/sigaction.c (__sigaction): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/ia64/sigsuspend.c (__sigsuspend):
Likewise.
* sysdeps/unix/sysv/linux/sh/pipe.S (__pipe): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/chown.c (__chown): Add
libc_hidden_ver resp. libc_hidden_def.
* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (__GI___pwrite64,
__GI___send): Add.
* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c (__sigaction):
Add libc_hidden_weak.
* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c (__sigsuspend):
Add libc_hidden_def.
* sysdeps/unix/sysv/linux/hppa/syscalls.list (__GI___send): Add.
* sysdeps/unix/sysv/linux/arm/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/i386/chown.c (__chown): Add libc_hidden_ver
resp. libc_hidden_def.
* sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/m68k/chown.c (__chown): Likewise. Remove
INTDEF.
* sysdeps/unix/sysv/linux/m68k/getpagesize.c (__getpagesize):
Likewise. Remove undef.
* sysdeps/unix/sysv/linux/mips/pwrite64.c (__pwrite64): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/mips/syscalls.list (__GI___send): Add.
* sysdeps/unix/sysv/linux/mips/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/powerpc/chown.c (__chown): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/powerpc/pwrite64.c (__pwrite64): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c (__getpagesize):
Likewise. Remove undef and INTDEF.
* sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S (__pipe): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S (__pipe): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
(__GI___pwrite64, __GI___statfs, __GI___select, __GI___send): Add.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c (__sigsuspend):
Add libc_hidden_def.
* sysdeps/unix/sysv/linux/x86_64/syscalls.list (__GI___pwrite64,
__GI___statfs): Add.
* sysdeps/unix/sysv/linux/x86_64/send.c (__send): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/x86_64/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/sysv/linux/getpagesize.c: Add libc_hidden_def.
Remove undef and INTDEF.
* sysdeps/unix/sysv/linux/poll.c (__poll): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/pwrite64.c (__pwrite64): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/send.S (__send): Likewise.
* sysdeps/unix/sysv/linux/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Add
libc_hidden_def.
* sysdeps/unix/sysv/sco3.2.4/__setpgid.c (__setpgid): Likewise.
* sysdeps/unix/sysv/sco3.2.4/sigaction.S (__sigaction): Likewise.
* sysdeps/unix/sysv/sysv4/solaris2/syscalls.list (__GI___sigaction):
Add.
* sysdeps/unix/sysv/sysv4/__getpgid.c (__getpgid): Add
libc_hidden_def. Remove undef and INTDEF.
* sysdeps/unix/sysv/sysv4/getpgid.c (__getpgid): Likewise.
* sysdeps/unix/sysv/sysv4/__setpgid.c (__setpgid): Add
libc_hidden_def.
* sysdeps/unix/sysv/sysv4/setpgid.c (__setpgid): Likewise.
* sysdeps/unix/sysv/sysv4/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/sysv/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/getpagesize.c (__getpagesize): Add libc_hidden_def.
Remove undef and INTDEF.
* configure.in (HAVE_BROKEN_VISIBILITY_ATTRIBUTE): Add check for
broken visibility attribute handling.
* config.h.in (HAVE_BROKEN_VISIBILITY_ATTRIBUTE): Add.
2002-08-02 Ulrich Drepper <drepper@redhat.com>
2002-08-03 07:02:10 +00:00
2002-10-17 23:48:55 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_broken_alias_attribute" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_broken_alias_attribute" >&6; }
2012-01-08 05:45:01 +00:00
if test $libc_cv_broken_alias_attribute = yes; then
as_fn_error $? "working alias attribute support required" "$LINENO" 5
fi
Update.
2002-08-02 Ulrich Drepper <drepper@redhat.com>
* configure.in (HAVE_BROKEN_ALIAS_ATTRIBUTE): Add check for
broken alias attribute handling.
* config.h.in (HAVE_BROKEN_ALIAS_ATTRIBUTE): Add.
* assert/assert.c (__assert_fail): Fix typo in comment.
* include/rpc/rpc.h: Declare __libc_tsd_RPC_VARS if USE_TLS &&
HAVE___THREAD.
* sunrpc/rpc_thread.c: Don't define __libc_tsd_RPC_VARS as static
if USE_TLS && HAVE___THREAD.
* sunrpc/Versions [libc] (GLIBC_PRIVATE): Export __libc_tsd_RPC_VARS.
2002-08-02 Jakub Jelinek <jakub@redhat.com>
* assert/assert.c (__assert_fail): Remove undef.
Replace INTDEF with libc_hidden_def.
* assert/__assert.c (__assert): Remove INTUSE.
* elf/dl-minimal.c (__assert_fail): Replace INTDEF with
libc_hidden_weak.
* include/libc-symbols.h (hidden_proto, hidden_def, hidden_weak,
hidden_ver, libc_hidden_proto, libc_hidden_def, libc_hidden_weak,
libc_hidden_ver, rtld_hidden_proto, rtld_hidden_def, rtld_hidden_weak,
rltd_hidden_ver, libm_hidden_proto, libm_hidden_def, libm_hidden_weak,
libm_hiden_ver): Define.
* include/assert.h (__assert_fail_internal): Remove.
(__assert_fail): Add prototype. Add hidden_proto.
* include/libc-internal.h (__libc_freeres, __profile_frequency): Add
libc_hidden_proto.
* include/wchar.h (__mbrtowc_internal, __mbrlen_internal): Remove.
(__mbrtowc, __mbrlen): Use libc_hidden_proto. Remove macros.
* include/string.h (__mempcpy, __stpncpy, __rawmemchr, __strcasecmp):
Add libc_hidden_proto.
* include/fcntl.h (__open64, __libc_open, __libc_fcntl, __open,
__fcntl): Add libc_hidden_proto. Remove macros.
(__open_internal, __fcntl_internal): Remove.
* libio/iofdopen.c (_IO_fcntl): Remove INTUSE from __fcntl.
* malloc/set-freeres.c (__libc_freeres): Add libc_hidden_def.
* nss/nsswitch.h (__nss_database_lookup, __nss_next): Add
libc_hiden_proto.
* nss/nsswitch.c (__nss_database_lookup, __nss_next): Add
libc_hidden_def.
* sysdeps/generic/mempcpy.c (__mempcpy): Remove undef.
Add libc_hidden_def.
* sysdeps/generic/open64.c (__open64): Add libc_hidden_def.
* sysdeps/generic/open.c (__open): Remove undef.
Add libc_hidden_def. Remove INTDEF.
* sysdeps/generic/fcntl.c (__fcntl): Remove undef.
Add libc_hidden_def.
* sysdeps/mach/hurd/fcntl.c (__fcntl): Likewise.
* sysdeps/i386/i586/mempcpy.S (__mempcpy): Add libc_hidden_def.
* sysdeps/i386/i686/mempcpy.S (__mempcpy): Likewise.
* sysdeps/mach/hurd/fcntl.c (__libc_fcntl, __fcntl): Remove undef.
(__fcntl): Remove INTDEF2. Add libc_hidden_weak.
(__libc_fcntl): Add libc_hidden_def.
* sysdeps/mach/hurd/open.c (__libc_open, __open): Remove undef.
(__open): Remove INTDEF2. Add libc_hidden_weak.
(__libc_open): Add libc_hidden_def.
* sysdeps/posix/open64.c (__open64): Add libc_hidden_weak.
* sysdeps/standalone/open.c (__open): Add libc_hidden_def.
* sysdeps/unix/sysv/aix/fcntl.c (__libc_fcntl, __fcntl): Remove undef.
Add libc_hidden_def.
* sysdeps/unix/sysv/aix/open.c (__libc_open, __open): Remove undef.
Add libc_hidden_def.
* sysdeps/unix/sysv/linux/i386/fcntl.c (__libc_fcntl, __fcntl): Remove
undef.
(__fcntl): Remove INTDEF2. Add libc_hidden_weak.
(__libc_fcntl): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/syscalls.list (__fcntl_internal,
__getpgid_internal, __chown_internal): Remove.
(__GI___fcntl, __GI___libc_fcntl, __GI___getpgid, __GI___pipe,
__GI___sched_setscheduler, __GI___select, __GI___setpgid,
__GI___chown): Add.
* sysdeps/unix/syscalls.list (__close_internal, __dup2_internal,
__getpid_internal, __open_internal, __write_internal): Remove.
(__GI___fcntl, __GI___libc_fcntl, __GI___open, __GI___libc_open,
__GI___chown, __GI___close, __GI___dup2, __GI___getpid,
__GI___libc_open, __GI___open, __GI___read, __GI___libc_read,
__GI___select, __GI___statfs, __GI___write, __GI___libc_write): Add.
* wcsmbs/mbrlen.c (__mbrlen): Remove undef.
Replace INTDEF with libc_hidden_def.
* wcsmbs/mbrtowc.c (__mbrtowc): Likewise.
* catgets/catgetsinfo.h (__open_catalog): Add libc_hidden_proto.
* catgets/open_catalog.c (__open_catalog): Add libc_hidden_def.
* elf/dl-profile.c (__profile_frequency): Add libc_hidden_proto.
* include/rpc/rpc.h (__rpc_thread_svc_fdset, __rpc_thread_createerr):
Add libc_hidden_proto.
* include/sys/poll.h (__poll): Add libc_hidden_proto.
* include/sys/select.h (__select): Likewise.
* include/sys/socket.h (__send): Likewise.
* include/sys/statfs.h (__statfs): Likewise.
* include/unistd.h (__pwrite64, __libc_read, __pipe, __chown, __dup2,
__getpid, __getpgid, __setpgid, __close, __read, __write,
__getpagesize, __sbrk): Likewise.
(__chown_internal, __dup2_internal, __getpid_internal,
__getpgid_internal, __close_internal, __write_internal,
__getpagesize_internal): Remove.
(__close, __dup2, __getpagesize, __getpgid, __getpid, __libc_write):
Remove macros.
* include/printf.h (__printf_fp): Add libc_hidden_proto.
* include/sched.h (__sched_setscheduler): Likewise.
* include/resolv.h (__res_ninit, __res_randomid): Likewise.
* include/stdlib.h (__secure_getenv): Likewise.
* include/signal.h (__sigaction, __sigsuspend): Likewise.
* inet/getaliasent_r.c (NSS_attribute_hidden): Remove.
* inet/getaliasname_r.c (NSS_attribute_hidden): Remove.
* inet/getnetbyad_r.c (NSS_attribute_hidden): Remove.
* inet/getnetbynm_r.c (NSS_attribute_hidden): Remove.
* inet/getnetent_r.c (NSS_attribute_hidden): Remove.
* inet/getproto_r.c (NSS_attribute_hidden): Remove.
* inet/getprtent_r.c (NSS_attribute_hidden): Remove.
* inet/getprtname_r.c (NSS_attribute_hidden): Remove.
* inet/getrpcbyname_r.c (NSS_attribute_hidden): Remove.
* inet/getrpcbynumber_r.c (NSS_attribute_hidden): Remove.
* inet/getrpcent_r.c (NSS_attribute_hidden): Remove.
* inet/getservent_r.c (NSS_attribute_hidden): Remove.
* inet/getsrvbynm_r.c (NSS_attribute_hidden): Remove.
* inet/getsrvbypt_r.c (NSS_attribute_hidden): Remove.
* inet/gethstbyad_r.c (DB_LOOKUP_FCT): Remove INTUSE.
* inet/gethstbynm2_r.c (DB_LOOKUP_FCT): Likewise.
* inet/gethstbynm_r.c (DB_LOOKUP_FCT): Likewise.
* inet/gethstent_r.c (DB_LOOKUP_FCT): Likewise.
* libio/genops.c (__overflow): Add libc_hidden_def.
* libio/iovdprintf.c: Remove libio.h include.
* libio/libioP.h (libc_hidden_proto, libc_hidden_def,
libc_hidden_weak): Define to nothing if not defined.
(__overflow, __woverflow): Add libc_hidden_proto.
* libio/wgenops.c (__woverflow): Add libc_hidden_def.
* nss/getXXent_r.c (NSS_attribute_hidden): Remove.
(DB_LOOKUP_FCT): Add libc_hidden_proto.
* nss/getXXbyYY_r.c (NSS_attribute_hidden): Remove.
(DB_LOOKUP_FCT): Add libc_hidden_proto.
* nss/XXX-lookup.c (DB_LOOKUP_FCT): Add libc_hidden_proto
and libc_hidden_def.
* nss/hosts-lookup.c (__nss_hosts_lookup): Remove INTDEF.
* posix/bsd-getpgrp.c (__getpgid_internal): Remove.
(__getpgid): Add libc_hidden_proto.
(__bsd_getpgrp): Remove INTUSE.
* resolv/res_init.c (__res_ninit, __res_randomid): Add
libc_hidden_def.
* shadow/getspent_r.c (NSS_attribute_hidden): Remove.
* shadow/getspnam_r.c (NSS_attribute_hidden): Remove.
* stdio-common/printf_fp.c (__printf_fp): Add libc_hidden_def.
* stdlib/strfmon.c (__printf_fp): Add libc_hidden_proto.
* stdlib/secure-getenv.c (__secure_getenv): Add libc_hidden_def.
* sunrpc/rpc_thread.c (__rpc_thread_svc_fdset,
__rpc_thread_createerr): Add libc_hidden_def.
* sysdeps/alpha/alphaev67/rawmemchr.S (__rawmemchr): Add
libc_hidden_def.
* sysdeps/alpha/alphaev67/stpncpy.S (__stpncpy): Likewise.
* sysdeps/alpha/rawmemchr.S (__rawmemchr): Likewise.
* sysdeps/alpha/stpncpy.S (__stpncpy): Likewise.
* sysdeps/generic/chown.c (__chown): Likewise.
* sysdeps/generic/close.c (__close): Likewise.
* sysdeps/generic/dup2.c (__dup2): Likewise.
* sysdeps/generic/pipe.c (__pipe): Likewise.
* sysdeps/generic/prof-freq.c (__profile_frequency): Likewise.
* sysdeps/generic/pwrite64.c (__pwrite64): Likewise.
* sysdeps/generic/rawmemchr.c (__rawmemchr): Likewise.
* sysdeps/generic/read.c (__libc_read): Likewise.
(__read): Add libc_hidden_weak.
* sysdeps/generic/sbrk.c (__sbrk): Add libc_hidden_def.
* sysdeps/generic/sched_sets.c (__sched_setscheduler): Likewise.
* sysdeps/generic/select.c (__select): Likewise.
* sysdeps/generic/send.c (__send): Likewise.
* sysdeps/generic/setpgid.c (__setpgid): Likewise.
* sysdeps/generic/sigaction.c (__sigaction): Likewise.
* sysdeps/generic/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/generic/statfs.c (__statfs): Likewise.
* sysdeps/generic/stpncpy.c (__stpncpy): Likewise.
* sysdeps/generic/strcasecmp.c (__strcasecmp): Likewise.
* sysdeps/generic/getpagesize.c (__getpagesize): Likewise.
Remove undef and INTDEF.
* sysdeps/generic/getpgid.c (__getpgid): Likewise.
* sysdeps/generic/getpid.c (__getpid): Likewise.
* sysdeps/generic/write.c (__libc_write): Likewise.
(__write): Add libc_hidden_weak. Remove undef and INTDEF.
* sysdeps/i386/rawmemchr.S (__rawmemchr): Add libc_hidden_def.
* sysdeps/i386/stpncpy.S (__stpncpy): Likewise.
* sysdeps/m68k/rawmemchr.S (__rawmemchr): Likewise.
* sysdeps/mach/hurd/chown.c (__chown): Likewise. Remove INTDEF.
* sysdeps/mach/hurd/close.c (__close): Add libc_hidden_def.
Remove undef and INTDEF.
* sysdeps/mach/hurd/dup2.c (__dup2): Likewise.
* sysdeps/mach/hurd/getpgid.c (__getpgid): Likewise.
* sysdeps/mach/hurd/getpid.c (__getpid): Likewise.
* sysdeps/mach/getpagesize.c (__getpagesize): Likewise.
* sysdeps/mach/hurd/write.c (__libc_write): Likewise.
(__write): Add libc_hidden_weak. Remove undef and INTDEF.
* sysdeps/mach/hurd/pipe.c: Include unistd.h.
(__pipe): Add libc_hidden_def.
* sysdeps/mach/hurd/dl-sysdep.c (__libc_read, __libc_write): Add
libc_hidden_weak.
* sysdeps/mach/hurd/poll.c (__poll): Add libc_hidden_def.
* sysdeps/mach/hurd/profil.c (__profile_frequency): Likewise.
* sysdeps/mach/hurd/read.c (__libc_read): Likewise.
(__read): Add libc_hidden_weak.
* sysdeps/mach/hurd/pwrite64.c (__pwrite64): Likewise.
(__libc_pwrite64): Add libc_hidden_def.
* sysdeps/mach/hurd/sbrk.c (__sbrk): Likewise.
* sysdeps/mach/hurd/select.c (__select): Likewise.
* sysdeps/mach/hurd/send.c (__send): Likewise.
* sysdeps/mach/hurd/setpgid.c (__setpgid): Likewise.
* sysdeps/mach/hurd/sigaction.c (__sigaction): Likewise.
* sysdeps/mach/hurd/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/mach/hurd/statfs.c (__statfs): Likewise.
* sysdeps/posix/dup2.c: Likewise.
Remove undef and INTDEF.
* sysdeps/posix/getpagesize.c (__getpagesize): Likewise.
* sysdeps/posix/pwrite64.c (__libc_pwrite64): Add libc_hidden_def.
(__pwrite64): Add libc_hidden_weak.
* sysdeps/posix/sigsuspend.c (__sigsuspend): Add libc_hidden_def.
* sysdeps/sparc/sparc64/rawmemchr.S (__rawmemchr): Likewise.
* sysdeps/sparc/sparc64/stpncpy.S (__stpncpy): Likewise.
* sysdeps/standalone/close.c (__close): Likewise.
* sysdeps/standalone/write.c (__libc_write): Likewise.
(__write): Add libc_hidden_weak.
* sysdeps/standalone/read.c (__read): Likewise.
(__libc_read): Add libc_hidden_def.
* sysdeps/unix/grantpt.c (grantpt): Remove INTUSE.
* sysdeps/unix/bsd/m68k/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/bsd/osf/alpha/pipe.S (__pipe): Likewise.
* sysdeps/unix/bsd/vax/pipe.S (__pipe): Likewise.
* sysdeps/unix/bsd/syscalls.list (__GI___getpagesize): Likewise.
* sysdeps/unix/bsd/poll.c (__poll): Likewise.
* sysdeps/unix/bsd/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/bsd/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/unix/common/syscalls.list (__GI___getpgid, __GI___setpgid,
__GI___sigaction): Add.
* sysdeps/unix/i386/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/inet/syscalls.list (__GI___send): Add.
* sysdeps/unix/mips/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/sparc/pipe.S (__pipe): Likewise.
* sysdeps/unix/sysv/irix4/syscalls.list (__GI___getpgid,
__GI___setpgid): Add.
* sysdeps/unix/sysv/aix/chown.c (__chown): Add libc_hidden_def.
Remove undef and INTDEF.
* sysdeps/unix/sysv/aix/getpgid.c (__getpgid): Likewise.
* sysdeps/unix/sysv/aix/write.c (__write, __libc_write): Likewise.
* sysdeps/unix/sysv/aix/close.c (__close): Add libc_hidden_def.
* sysdeps/unix/sysv/aix/getpid.c (__getpid): Likewise.
* sysdeps/unix/sysv/aix/pipe.c (__pipe): Likewise.
* sysdeps/unix/sysv/aix/read.c (__read, __libc_read): Likewise.
* sysdeps/unix/sysv/aix/poll.c (__poll): Likewise.
* sysdeps/unix/sysv/aix/sbrk.c (__sbrk): Likewise.
* sysdeps/unix/sysv/aix/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/sysv/aix/sigsuspend.c (__sigsuspend): Likewise.
* sysdeps/unix/sysv/aix/statfs.c (__statfs): Likewise.
* sysdeps/unix/sysv/aix/select.c (__select): Likewise.
* sysdeps/unix/sysv/aix/setpgid.c (__setpgid): Likewise.
* sysdeps/unix/sysv/linux/alpha/pipe.S (__pipe): Likewise.
* sysdeps/unix/sysv/linux/alpha/syscalls.list (__GI___pwrite64,
__GI___statfs, __GI___send): Add.
* sysdeps/unix/sysv/linux/alpha/select.S (__select): Add
libc_hidden_ver resp. libc_hidden_def.
* sysdeps/unix/sysv/linux/alpha/sigsuspend.S (__sigsuspend): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/ia64/getpagesize.c (__getpagesize):
Likewise. Remove undef and INTDEF.
* sysdeps/unix/sysv/linux/ia64/pipe.S (__pipe): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/ia64/syscalls.list (__GI___pwrite64,
__GI___statfs, __GI___send): Add.
* sysdeps/unix/sysv/linux/ia64/sigaction.c (__sigaction): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/ia64/sigsuspend.c (__sigsuspend):
Likewise.
* sysdeps/unix/sysv/linux/sh/pipe.S (__pipe): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/chown.c (__chown): Add
libc_hidden_ver resp. libc_hidden_def.
* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (__GI___pwrite64,
__GI___send): Add.
* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c (__sigaction):
Add libc_hidden_weak.
* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c (__sigsuspend):
Add libc_hidden_def.
* sysdeps/unix/sysv/linux/hppa/syscalls.list (__GI___send): Add.
* sysdeps/unix/sysv/linux/arm/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/i386/chown.c (__chown): Add libc_hidden_ver
resp. libc_hidden_def.
* sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/m68k/chown.c (__chown): Likewise. Remove
INTDEF.
* sysdeps/unix/sysv/linux/m68k/getpagesize.c (__getpagesize):
Likewise. Remove undef.
* sysdeps/unix/sysv/linux/mips/pwrite64.c (__pwrite64): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/mips/syscalls.list (__GI___send): Add.
* sysdeps/unix/sysv/linux/mips/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/powerpc/chown.c (__chown): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/powerpc/pwrite64.c (__pwrite64): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c (__getpagesize):
Likewise. Remove undef and INTDEF.
* sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S (__pipe): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S (__pipe): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
(__GI___pwrite64, __GI___statfs, __GI___select, __GI___send): Add.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c (__sigsuspend):
Add libc_hidden_def.
* sysdeps/unix/sysv/linux/x86_64/syscalls.list (__GI___pwrite64,
__GI___statfs): Add.
* sysdeps/unix/sysv/linux/x86_64/send.c (__send): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/x86_64/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/sysv/linux/getpagesize.c: Add libc_hidden_def.
Remove undef and INTDEF.
* sysdeps/unix/sysv/linux/poll.c (__poll): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/pwrite64.c (__pwrite64): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/send.S (__send): Likewise.
* sysdeps/unix/sysv/linux/sigaction.c (__sigaction): Add
libc_hidden_weak.
* sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Add
libc_hidden_def.
* sysdeps/unix/sysv/sco3.2.4/__setpgid.c (__setpgid): Likewise.
* sysdeps/unix/sysv/sco3.2.4/sigaction.S (__sigaction): Likewise.
* sysdeps/unix/sysv/sysv4/solaris2/syscalls.list (__GI___sigaction):
Add.
* sysdeps/unix/sysv/sysv4/__getpgid.c (__getpgid): Add
libc_hidden_def. Remove undef and INTDEF.
* sysdeps/unix/sysv/sysv4/getpgid.c (__getpgid): Likewise.
* sysdeps/unix/sysv/sysv4/__setpgid.c (__setpgid): Add
libc_hidden_def.
* sysdeps/unix/sysv/sysv4/setpgid.c (__setpgid): Likewise.
* sysdeps/unix/sysv/sysv4/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/sysv/sigaction.c (__sigaction): Likewise.
* sysdeps/unix/getpagesize.c (__getpagesize): Add libc_hidden_def.
Remove undef and INTDEF.
* configure.in (HAVE_BROKEN_VISIBILITY_ATTRIBUTE): Add check for
broken visibility attribute handling.
* config.h.in (HAVE_BROKEN_VISIBILITY_ATTRIBUTE): Add.
2002-08-02 Ulrich Drepper <drepper@redhat.com>
2002-08-03 07:02:10 +00:00
2015-10-29 12:48:24 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to put _rtld_local into .sdata section" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking whether to put _rtld_local into .sdata section... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_have_sdata_section+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2002-02-28 22:38:00 +00:00
else
echo "int i;" > conftest.c
2015-10-29 12:48:24 +00:00
libc_cv_have_sdata_section=no
if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
| grep '\.sdata' >/dev/null; then
libc_cv_have_sdata_section=yes
fi
rm -f conftest.c conftest.so
2002-02-28 22:38:00 +00:00
2002-10-17 23:48:55 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_sdata_section" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_have_sdata_section" >&6; }
2015-10-29 12:48:24 +00:00
if test $libc_cv_have_sdata_section = yes; then
$as_echo "#define HAVE_SDATA_SECTION 1" >>confdefs.h
2002-02-28 22:38:00 +00:00
2012-01-08 05:45:01 +00:00
fi
2002-02-28 22:38:00 +00:00
2012-01-08 05:45:01 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libunwind-support in compiler" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for libunwind-support in compiler... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_cc_with_libunwind+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2003-12-10 23:02:33 +00:00
else
2012-01-08 05:45:01 +00:00
cat > conftest.c <<EOF
2004-12-15 18:54:41 +00:00
int main (void) { return 0; }
EOF
2012-01-08 05:45:01 +00:00
if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
2012-10-24 02:37:50 +00:00
conftest.c -v 2>&1 >/dev/null | grep ' -lunwind ' >/dev/null; then
2012-01-08 05:45:01 +00:00
libc_cv_cc_with_libunwind=yes
else
libc_cv_cc_with_libunwind=no
fi
rm -f conftest*
2003-12-10 23:02:33 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_with_libunwind" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_cc_with_libunwind" >&6; }
2003-12-10 23:02:33 +00:00
2012-01-08 05:45:01 +00:00
if test $libc_cv_cc_with_libunwind = yes; then
$as_echo "#define HAVE_CC_WITH_LIBUNWIND 1" >>confdefs.h
2003-12-10 23:02:33 +00:00
2012-01-08 05:45:01 +00:00
fi
2003-12-10 23:02:33 +00:00
2012-01-08 05:45:01 +00:00
ASFLAGS_config=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether --noexecstack is desirable for .S files" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking whether --noexecstack is desirable for .S files... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_as_noexecstack+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2003-06-04 21:41:25 +00:00
else
2012-01-08 05:45:01 +00:00
cat > conftest.c <<EOF
2003-06-04 21:41:25 +00:00
void foo (void) { }
EOF
2012-01-08 05:45:01 +00:00
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS
-S -o conftest.s conftest.c 1>&5'
2010-07-10 02:25:39 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
2003-06-04 21:41:25 +00:00
(eval $ac_try) 2>&5
ac_status=$?
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; } \
2012-10-24 02:37:50 +00:00
&& grep .note.GNU-stack conftest.s >/dev/null \
2012-01-08 05:45:01 +00:00
&& { ac_try='${CC-cc} $ASFLAGS -Wa,--noexecstack
-c -o conftest.o conftest.s 1>&5'
2010-07-10 02:25:39 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
2003-06-04 21:41:25 +00:00
(eval $ac_try) 2>&5
ac_status=$?
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
2012-01-08 05:45:01 +00:00
then
libc_cv_as_noexecstack=yes
else
libc_cv_as_noexecstack=no
fi
rm -f conftest*
2003-06-04 21:41:25 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_as_noexecstack" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_as_noexecstack" >&6; }
2012-01-08 05:45:01 +00:00
if test $libc_cv_as_noexecstack = yes; then
ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
fi
2003-06-04 21:41:25 +00:00
2003-09-23 12:07:26 +00:00
2012-01-08 05:45:01 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -z combreloc" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for -z combreloc... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_z_combreloc+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2001-08-26 09:17:23 +00:00
else
2012-01-08 05:45:01 +00:00
cat > conftest.c <<EOF
2002-02-07 17:54:45 +00:00
extern int bar (int);
extern int mumble;
int foo (void) { return bar (mumble); }
2001-08-26 09:17:23 +00:00
EOF
2012-01-08 05:45:01 +00:00
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
2016-12-26 09:08:54 +00:00
-fPIC -shared $no_ssp -o conftest.so conftest.c
2001-12-12 18:36:44 +00:00
-nostdlib -nostartfiles
2002-10-17 23:48:55 +00:00
-Wl,-z,combreloc 1>&5'
2010-07-10 02:25:39 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
2002-10-17 23:48:55 +00:00
(eval $ac_try) 2>&5
ac_status=$?
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
2012-01-08 05:45:01 +00:00
then
2017-03-12 20:16:18 +00:00
if $READELF -S conftest.so | grep -E '.rela?.dyn' > /dev/null; then
2012-01-08 05:45:01 +00:00
libc_cv_z_combreloc=yes
2001-08-27 00:45:49 +00:00
else
libc_cv_z_combreloc=no
2001-08-26 09:17:23 +00:00
fi
2012-01-08 05:45:01 +00:00
else
libc_cv_z_combreloc=no
fi
rm -f conftest*
2001-08-26 09:17:23 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_z_combreloc" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_z_combreloc" >&6; }
2012-01-08 05:45:01 +00:00
if test "$libc_cv_z_combreloc" = yes; then
$as_echo "#define HAVE_Z_COMBRELOC 1" >>confdefs.h
2001-08-27 00:45:49 +00:00
2012-01-08 05:45:01 +00:00
fi
2003-09-23 12:07:26 +00:00
2012-11-21 20:31:01 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker that supports -z execstack" >&5
$as_echo_n "checking for linker that supports -z execstack... " >&6; }
libc_linker_feature=no
if test x"$gnu_ld" = x"yes"; then
2021-10-25 20:17:44 +00:00
cat > conftest.c <<EOF
2003-09-23 12:07:26 +00:00
int _start (void) { return 42; }
EOF
2021-10-25 20:17:44 +00:00
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
-Wl,-z,execstack -nostdlib -nostartfiles
-fPIC -shared -o conftest.so conftest.c
1>&5'
2010-07-10 02:25:39 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
2003-09-23 12:07:26 +00:00
(eval $ac_try) 2>&5
ac_status=$?
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
2021-10-25 20:17:44 +00:00
then
2022-01-02 14:01:21 +00:00
if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,-z,execstack -nostdlib \
-nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
| grep "warning: -z execstack ignored" > /dev/null 2>&1; then
true
else
libc_linker_feature=yes
fi
2012-11-21 20:31:01 +00:00
fi
2021-10-25 20:17:44 +00:00
rm -f conftest*
2012-11-21 20:31:01 +00:00
fi
if test $libc_linker_feature = yes; then
2012-01-08 05:45:01 +00:00
libc_cv_z_execstack=yes
else
libc_cv_z_execstack=no
fi
2012-11-21 20:31:01 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
$as_echo "$libc_linker_feature" >&6; }
1997-07-14 21:49:20 +00:00
2003-09-24 17:38:32 +00:00
2021-04-16 18:26:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker that supports -z start-stop-gc" >&5
$as_echo_n "checking for linker that supports -z start-stop-gc... " >&6; }
libc_linker_feature=no
if test x"$gnu_ld" = x"yes"; then
2021-10-25 20:17:44 +00:00
cat > conftest.c <<EOF
2021-04-16 18:26:39 +00:00
int _start (void) { return 42; }
EOF
2021-10-25 20:17:44 +00:00
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
-Wl,-z,start-stop-gc -nostdlib -nostartfiles
-fPIC -shared -o conftest.so conftest.c
1>&5'
2021-04-16 18:26:39 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
2021-10-25 20:17:44 +00:00
then
2022-01-02 14:01:21 +00:00
if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,-z,start-stop-gc -nostdlib \
-nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
| grep "warning: -z start-stop-gc ignored" > /dev/null 2>&1; then
true
else
libc_linker_feature=yes
fi
2021-04-16 18:26:39 +00:00
fi
2021-10-25 20:17:44 +00:00
rm -f conftest*
2021-04-16 18:26:39 +00:00
fi
if test $libc_linker_feature = yes; then
libc_cv_z_start_stop_gc=yes
else
libc_cv_z_start_stop_gc=no
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
$as_echo "$libc_linker_feature" >&6; }
config_vars="$config_vars
have-z-start-stop-gc = $libc_cv_z_start_stop_gc"
2021-08-24 16:35:32 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker that supports --depaudit" >&5
$as_echo_n "checking for linker that supports --depaudit... " >&6; }
libc_linker_feature=no
if test x"$gnu_ld" = x"yes"; then
2021-10-25 20:17:44 +00:00
cat > conftest.c <<EOF
2021-08-24 16:35:32 +00:00
int _start (void) { return 42; }
EOF
2021-10-25 20:17:44 +00:00
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
-Wl,--depaudit,x -nostdlib -nostartfiles
-fPIC -shared -o conftest.so conftest.c
1>&5'
2021-08-24 16:35:32 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
2021-10-25 20:17:44 +00:00
then
2022-01-02 14:01:21 +00:00
if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,--depaudit,x -nostdlib \
-nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
| grep "warning: --depaudit ignored" > /dev/null 2>&1; then
true
else
libc_linker_feature=yes
fi
2021-08-24 16:35:32 +00:00
fi
2021-10-25 20:17:44 +00:00
rm -f conftest*
2021-08-24 16:35:32 +00:00
fi
if test $libc_linker_feature = yes; then
libc_cv_depaudit=yes
else
libc_cv_depaudit=no
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
$as_echo "$libc_linker_feature" >&6; }
config_vars="$config_vars
have-depaudit = $libc_cv_depaudit"
Add --enable-static-pie configure option to build static PIE [BZ #19574]
Static PIE extends address space layout randomization to static
executables. It provides additional security hardening benefits at
the cost of some memory and performance.
Dynamic linker, ld.so, is a standalone program which can be loaded at
any address. This patch adds a configure option, --enable-static-pie,
to embed the part of ld.so in static executable to create static position
independent executable (static PIE). A static PIE is similar to static
executable, but can be loaded at any address without help from a dynamic
linker. When --enable-static-pie is used to configure glibc, libc.a is
built as PIE and all static executables, including tests, are built as
static PIE. The resulting libc.a can be used together with GCC 8 or
above to build static PIE with the compiler option, -static-pie. But
GCC 8 isn't required to build glibc with --enable-static-pie. Only GCC
with PIE support is needed. When an older GCC is used to build glibc
with --enable-static-pie, proper input files are passed to linker to
create static executables as static PIE, together with "-z text" to
prevent dynamic relocations in read-only segments, which are not allowed
in static PIE.
The following changes are made for static PIE:
1. Add a new function, _dl_relocate_static_pie, to:
a. Get the run-time load address.
b. Read the dynamic section.
c. Perform dynamic relocations.
Dynamic linker also performs these steps. But static PIE doesn't load
any shared objects.
2. Call _dl_relocate_static_pie at entrance of LIBC_START_MAIN in
libc.a. crt1.o, which is used to create dynamic and non-PIE static
executables, is updated to include a dummy _dl_relocate_static_pie.
rcrt1.o is added to create static PIE, which will link in the real
_dl_relocate_static_pie. grcrt1.o is also added to create static PIE
with -pg. GCC 8 has been updated to support rcrt1.o and grcrt1.o for
static PIE.
Static PIE can work on all architectures which support PIE, provided:
1. Target must support accessing of local functions without dynamic
relocations, which is needed in start.S to call __libc_start_main with
function addresses of __libc_csu_init, __libc_csu_fini and main. All
functions in static PIE are local functions. If PIE start.S can't reach
main () defined in a shared object, the code sequence:
pass address of local_main to __libc_start_main
...
local_main:
tail call to main via PLT
can be used.
2. start.S is updated to check PIC instead SHARED for PIC code path and
avoid dynamic relocation, when PIC is defined and SHARED isn't defined,
to support static PIE.
3. All assembly codes are updated check PIC instead SHARED for PIC code
path to avoid dynamic relocations in read-only sections.
4. All assembly codes are updated check SHARED instead PIC for static
symbol name.
5. elf_machine_load_address in dl-machine.h are updated to support static
PIE.
6. __brk works without TLS nor dynamic relocations in read-only section
so that it can be used by __libc_setup_tls to initializes TLS in static
PIE.
NB: When glibc is built with GCC defaulted to PIE, libc.a is compiled
with -fPIE, regardless if --enable-static-pie is used to configure glibc.
When glibc is configured with --enable-static-pie, libc.a is compiled
with -fPIE, regardless whether GCC defaults to PIE or not. The same
libc.a can be used to build both static executable and static PIE.
There is no need for separate PIE copy of libc.a.
On x86-64, the normal static sln:
text data bss dec hex filename
625425 8284 5456 639165 9c0bd elf/sln
the static PIE sln:
text data bss dec hex filename
657626 20636 5392 683654 a6e86 elf/sln
The code size is increased by 5% and the binary size is increased by 7%.
Linker requirements to build glibc with --enable-static-pie:
1. Linker supports --no-dynamic-linker to remove PT_INTERP segment from
static PIE.
2. Linker can create working static PIE. The x86-64 linker needs the
fix for
https://sourceware.org/bugzilla/show_bug.cgi?id=21782
The i386 linker needs to be able to convert "movl main@GOT(%ebx), %eax"
to "leal main@GOTOFF(%ebx), %eax" if main is defined locally.
Binutils 2.29 or above are OK for i686 and x86-64. But linker status for
other targets need to be verified.
3. Linker should resolve undefined weak symbols to 0 in static PIE:
https://sourceware.org/bugzilla/show_bug.cgi?id=22269
4. Many ELF backend linkers incorrectly check bfd_link_pic for TLS
relocations, which should check bfd_link_executable instead:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Tested on aarch64, i686 and x86-64.
Using GCC 7 and binutils master branch, build-many-glibcs.py with
--enable-static-pie with all patches for static PIE applied have the
following build successes:
PASS: glibcs-aarch64_be-linux-gnu build
PASS: glibcs-aarch64-linux-gnu build
PASS: glibcs-armeb-linux-gnueabi-be8 build
PASS: glibcs-armeb-linux-gnueabi build
PASS: glibcs-armeb-linux-gnueabihf-be8 build
PASS: glibcs-armeb-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabi build
PASS: glibcs-arm-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabihf-v7a build
PASS: glibcs-arm-linux-gnueabihf-v7a-disable-multi-arch build
PASS: glibcs-m68k-linux-gnu build
PASS: glibcs-microblazeel-linux-gnu build
PASS: glibcs-microblaze-linux-gnu build
PASS: glibcs-mips64el-linux-gnu-n32 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n32-soft build
PASS: glibcs-mips64el-linux-gnu-n64 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n64-soft build
PASS: glibcs-mips64-linux-gnu-n32 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n32-soft build
PASS: glibcs-mips64-linux-gnu-n64 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n64-soft build
PASS: glibcs-mipsel-linux-gnu build
PASS: glibcs-mipsel-linux-gnu-nan2008 build
PASS: glibcs-mipsel-linux-gnu-nan2008-soft build
PASS: glibcs-mipsel-linux-gnu-soft build
PASS: glibcs-mips-linux-gnu build
PASS: glibcs-mips-linux-gnu-nan2008 build
PASS: glibcs-mips-linux-gnu-nan2008-soft build
PASS: glibcs-mips-linux-gnu-soft build
PASS: glibcs-nios2-linux-gnu build
PASS: glibcs-powerpc64le-linux-gnu build
PASS: glibcs-powerpc64-linux-gnu build
PASS: glibcs-tilegxbe-linux-gnu-32 build
PASS: glibcs-tilegxbe-linux-gnu build
PASS: glibcs-tilegx-linux-gnu-32 build
PASS: glibcs-tilegx-linux-gnu build
PASS: glibcs-tilepro-linux-gnu build
and the following build failures:
FAIL: glibcs-alpha-linux-gnu build
elf/sln is failed to link due to:
assertion fail bfd/elf64-alpha.c:4125
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-hppa-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
https://sourceware.org/bugzilla/show_bug.cgi?id=22537
FAIL: glibcs-ia64-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
FAIL: glibcs-powerpc-linux-gnu build
FAIL: glibcs-powerpc-linux-gnu-soft build
FAIL: glibcs-powerpc-linux-gnuspe build
FAIL: glibcs-powerpc-linux-gnuspe-e500v1 build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22264
FAIL: glibcs-powerpc-linux-gnu-power4 build
elf/sln is failed to link due to:
findlocale.c:96:(.text+0x22c): @local call to ifunc memchr
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-s390-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
assertion fail bfd/elflink.c:14299
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-sh3eb-linux-gnu build
FAIL: glibcs-sh3-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu-soft build
FAIL: glibcs-sh4-linux-gnu build
FAIL: glibcs-sh4-linux-gnu-soft build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Also TLS code sequence in SH assembly syscalls in glibc doesn't match TLS
code sequence expected by ld:
https://sourceware.org/bugzilla/show_bug.cgi?id=22270
FAIL: glibcs-sparc64-linux-gnu build
FAIL: glibcs-sparcv9-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu-32 build
FAIL: glibcs-tilegx-linux-gnu build
FAIL: glibcs-tilegx-linux-gnu-32 build
FAIL: glibcs-tilepro-linux-gnu build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
[BZ #19574]
* INSTALL: Regenerated.
* Makeconfig (real-static-start-installed-name): New.
(pic-default): Updated for --enable-static-pie.
(pie-default): New for --enable-static-pie.
(default-pie-ldflag): Likewise.
(+link-static-before-libc): Replace $(DEFAULT-LDFLAGS-$(@F))
with $(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)).
Replace $(static-start-installed-name) with
$(real-static-start-installed-name).
(+prectorT): Updated for --enable-static-pie.
(+postctorT): Likewise.
(CFLAGS-.o): Add $(pie-default).
(CFLAGS-.op): Likewise.
* NEWS: Mention --enable-static-pie.
* config.h.in (ENABLE_STATIC_PIE): New.
* configure.ac (--enable-static-pie): New configure option.
(have-no-dynamic-linker): New LIBC_CONFIG_VAR.
(have-static-pie): Likewise.
Enable static PIE if linker supports --no-dynamic-linker.
(ENABLE_STATIC_PIE): New AC_DEFINE.
(enable-static-pie): New LIBC_CONFIG_VAR.
* configure: Regenerated.
* csu/Makefile (omit-deps): Add r$(start-installed-name) and
gr$(start-installed-name) for --enable-static-pie.
(extra-objs): Likewise.
(install-lib): Likewise.
(extra-objs): Add static-reloc.o and static-reloc.os
($(objpfx)$(start-installed-name)): Also depend on
$(objpfx)static-reloc.o.
($(objpfx)r$(start-installed-name)): New.
($(objpfx)g$(start-installed-name)): Also depend on
$(objpfx)static-reloc.os.
($(objpfx)gr$(start-installed-name)): New.
* csu/libc-start.c (LIBC_START_MAIN): Call _dl_relocate_static_pie
in libc.a.
* csu/libc-tls.c (__libc_setup_tls): Add main_map->l_addr to
initimage.
* csu/static-reloc.c: New file.
* elf/Makefile (routines): Add dl-reloc-static-pie.
(elide-routines.os): Likewise.
(DEFAULT-LDFLAGS-tst-tls1-static-non-pie): Removed.
(tst-tls1-static-non-pie-no-pie): New.
* elf/dl-reloc-static-pie.c: New file.
* elf/dl-support.c (_dl_get_dl_main_map): New function.
* elf/dynamic-link.h (ELF_DURING_STARTUP): Also check
STATIC_PIE_BOOTSTRAP.
* elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
* gmon/Makefile (tests): Add tst-gmon-static-pie.
(tests-static): Likewise.
(DEFAULT-LDFLAGS-tst-gmon-static): Removed.
(tst-gmon-static-no-pie): New.
(CFLAGS-tst-gmon-static-pie.c): Likewise.
(CRT-tst-gmon-static-pie): Likewise.
(tst-gmon-static-pie-ENV): Likewise.
(tests-special): Likewise.
($(objpfx)tst-gmon-static-pie.out): Likewise.
(clean-tst-gmon-static-pie-data): Likewise.
($(objpfx)tst-gmon-static-pie-gprof.out): Likewise.
* gmon/tst-gmon-static-pie.c: New file.
* manual/install.texi: Document --enable-static-pie.
* sysdeps/generic/ldsodefs.h (_dl_relocate_static_pie): New.
(_dl_get_dl_main_map): Likewise.
* sysdeps/i386/configure.ac: Check if linker supports static PIE.
* sysdeps/x86_64/configure.ac: Likewise.
* sysdeps/i386/configure: Regenerated.
* sysdeps/x86_64/configure: Likewise.
* sysdeps/mips/Makefile (ASFLAGS-.o): Add $(pie-default).
(ASFLAGS-.op): Likewise.
2017-12-16 00:59:33 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker that supports --no-dynamic-linker" >&5
$as_echo_n "checking for linker that supports --no-dynamic-linker... " >&6; }
libc_linker_feature=no
if test x"$gnu_ld" = x"yes"; then
2021-10-25 20:17:44 +00:00
cat > conftest.c <<EOF
Add --enable-static-pie configure option to build static PIE [BZ #19574]
Static PIE extends address space layout randomization to static
executables. It provides additional security hardening benefits at
the cost of some memory and performance.
Dynamic linker, ld.so, is a standalone program which can be loaded at
any address. This patch adds a configure option, --enable-static-pie,
to embed the part of ld.so in static executable to create static position
independent executable (static PIE). A static PIE is similar to static
executable, but can be loaded at any address without help from a dynamic
linker. When --enable-static-pie is used to configure glibc, libc.a is
built as PIE and all static executables, including tests, are built as
static PIE. The resulting libc.a can be used together with GCC 8 or
above to build static PIE with the compiler option, -static-pie. But
GCC 8 isn't required to build glibc with --enable-static-pie. Only GCC
with PIE support is needed. When an older GCC is used to build glibc
with --enable-static-pie, proper input files are passed to linker to
create static executables as static PIE, together with "-z text" to
prevent dynamic relocations in read-only segments, which are not allowed
in static PIE.
The following changes are made for static PIE:
1. Add a new function, _dl_relocate_static_pie, to:
a. Get the run-time load address.
b. Read the dynamic section.
c. Perform dynamic relocations.
Dynamic linker also performs these steps. But static PIE doesn't load
any shared objects.
2. Call _dl_relocate_static_pie at entrance of LIBC_START_MAIN in
libc.a. crt1.o, which is used to create dynamic and non-PIE static
executables, is updated to include a dummy _dl_relocate_static_pie.
rcrt1.o is added to create static PIE, which will link in the real
_dl_relocate_static_pie. grcrt1.o is also added to create static PIE
with -pg. GCC 8 has been updated to support rcrt1.o and grcrt1.o for
static PIE.
Static PIE can work on all architectures which support PIE, provided:
1. Target must support accessing of local functions without dynamic
relocations, which is needed in start.S to call __libc_start_main with
function addresses of __libc_csu_init, __libc_csu_fini and main. All
functions in static PIE are local functions. If PIE start.S can't reach
main () defined in a shared object, the code sequence:
pass address of local_main to __libc_start_main
...
local_main:
tail call to main via PLT
can be used.
2. start.S is updated to check PIC instead SHARED for PIC code path and
avoid dynamic relocation, when PIC is defined and SHARED isn't defined,
to support static PIE.
3. All assembly codes are updated check PIC instead SHARED for PIC code
path to avoid dynamic relocations in read-only sections.
4. All assembly codes are updated check SHARED instead PIC for static
symbol name.
5. elf_machine_load_address in dl-machine.h are updated to support static
PIE.
6. __brk works without TLS nor dynamic relocations in read-only section
so that it can be used by __libc_setup_tls to initializes TLS in static
PIE.
NB: When glibc is built with GCC defaulted to PIE, libc.a is compiled
with -fPIE, regardless if --enable-static-pie is used to configure glibc.
When glibc is configured with --enable-static-pie, libc.a is compiled
with -fPIE, regardless whether GCC defaults to PIE or not. The same
libc.a can be used to build both static executable and static PIE.
There is no need for separate PIE copy of libc.a.
On x86-64, the normal static sln:
text data bss dec hex filename
625425 8284 5456 639165 9c0bd elf/sln
the static PIE sln:
text data bss dec hex filename
657626 20636 5392 683654 a6e86 elf/sln
The code size is increased by 5% and the binary size is increased by 7%.
Linker requirements to build glibc with --enable-static-pie:
1. Linker supports --no-dynamic-linker to remove PT_INTERP segment from
static PIE.
2. Linker can create working static PIE. The x86-64 linker needs the
fix for
https://sourceware.org/bugzilla/show_bug.cgi?id=21782
The i386 linker needs to be able to convert "movl main@GOT(%ebx), %eax"
to "leal main@GOTOFF(%ebx), %eax" if main is defined locally.
Binutils 2.29 or above are OK for i686 and x86-64. But linker status for
other targets need to be verified.
3. Linker should resolve undefined weak symbols to 0 in static PIE:
https://sourceware.org/bugzilla/show_bug.cgi?id=22269
4. Many ELF backend linkers incorrectly check bfd_link_pic for TLS
relocations, which should check bfd_link_executable instead:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Tested on aarch64, i686 and x86-64.
Using GCC 7 and binutils master branch, build-many-glibcs.py with
--enable-static-pie with all patches for static PIE applied have the
following build successes:
PASS: glibcs-aarch64_be-linux-gnu build
PASS: glibcs-aarch64-linux-gnu build
PASS: glibcs-armeb-linux-gnueabi-be8 build
PASS: glibcs-armeb-linux-gnueabi build
PASS: glibcs-armeb-linux-gnueabihf-be8 build
PASS: glibcs-armeb-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabi build
PASS: glibcs-arm-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabihf-v7a build
PASS: glibcs-arm-linux-gnueabihf-v7a-disable-multi-arch build
PASS: glibcs-m68k-linux-gnu build
PASS: glibcs-microblazeel-linux-gnu build
PASS: glibcs-microblaze-linux-gnu build
PASS: glibcs-mips64el-linux-gnu-n32 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n32-soft build
PASS: glibcs-mips64el-linux-gnu-n64 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n64-soft build
PASS: glibcs-mips64-linux-gnu-n32 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n32-soft build
PASS: glibcs-mips64-linux-gnu-n64 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n64-soft build
PASS: glibcs-mipsel-linux-gnu build
PASS: glibcs-mipsel-linux-gnu-nan2008 build
PASS: glibcs-mipsel-linux-gnu-nan2008-soft build
PASS: glibcs-mipsel-linux-gnu-soft build
PASS: glibcs-mips-linux-gnu build
PASS: glibcs-mips-linux-gnu-nan2008 build
PASS: glibcs-mips-linux-gnu-nan2008-soft build
PASS: glibcs-mips-linux-gnu-soft build
PASS: glibcs-nios2-linux-gnu build
PASS: glibcs-powerpc64le-linux-gnu build
PASS: glibcs-powerpc64-linux-gnu build
PASS: glibcs-tilegxbe-linux-gnu-32 build
PASS: glibcs-tilegxbe-linux-gnu build
PASS: glibcs-tilegx-linux-gnu-32 build
PASS: glibcs-tilegx-linux-gnu build
PASS: glibcs-tilepro-linux-gnu build
and the following build failures:
FAIL: glibcs-alpha-linux-gnu build
elf/sln is failed to link due to:
assertion fail bfd/elf64-alpha.c:4125
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-hppa-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
https://sourceware.org/bugzilla/show_bug.cgi?id=22537
FAIL: glibcs-ia64-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
FAIL: glibcs-powerpc-linux-gnu build
FAIL: glibcs-powerpc-linux-gnu-soft build
FAIL: glibcs-powerpc-linux-gnuspe build
FAIL: glibcs-powerpc-linux-gnuspe-e500v1 build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22264
FAIL: glibcs-powerpc-linux-gnu-power4 build
elf/sln is failed to link due to:
findlocale.c:96:(.text+0x22c): @local call to ifunc memchr
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-s390-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
assertion fail bfd/elflink.c:14299
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-sh3eb-linux-gnu build
FAIL: glibcs-sh3-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu-soft build
FAIL: glibcs-sh4-linux-gnu build
FAIL: glibcs-sh4-linux-gnu-soft build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Also TLS code sequence in SH assembly syscalls in glibc doesn't match TLS
code sequence expected by ld:
https://sourceware.org/bugzilla/show_bug.cgi?id=22270
FAIL: glibcs-sparc64-linux-gnu build
FAIL: glibcs-sparcv9-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu-32 build
FAIL: glibcs-tilegx-linux-gnu build
FAIL: glibcs-tilegx-linux-gnu-32 build
FAIL: glibcs-tilepro-linux-gnu build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
[BZ #19574]
* INSTALL: Regenerated.
* Makeconfig (real-static-start-installed-name): New.
(pic-default): Updated for --enable-static-pie.
(pie-default): New for --enable-static-pie.
(default-pie-ldflag): Likewise.
(+link-static-before-libc): Replace $(DEFAULT-LDFLAGS-$(@F))
with $(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)).
Replace $(static-start-installed-name) with
$(real-static-start-installed-name).
(+prectorT): Updated for --enable-static-pie.
(+postctorT): Likewise.
(CFLAGS-.o): Add $(pie-default).
(CFLAGS-.op): Likewise.
* NEWS: Mention --enable-static-pie.
* config.h.in (ENABLE_STATIC_PIE): New.
* configure.ac (--enable-static-pie): New configure option.
(have-no-dynamic-linker): New LIBC_CONFIG_VAR.
(have-static-pie): Likewise.
Enable static PIE if linker supports --no-dynamic-linker.
(ENABLE_STATIC_PIE): New AC_DEFINE.
(enable-static-pie): New LIBC_CONFIG_VAR.
* configure: Regenerated.
* csu/Makefile (omit-deps): Add r$(start-installed-name) and
gr$(start-installed-name) for --enable-static-pie.
(extra-objs): Likewise.
(install-lib): Likewise.
(extra-objs): Add static-reloc.o and static-reloc.os
($(objpfx)$(start-installed-name)): Also depend on
$(objpfx)static-reloc.o.
($(objpfx)r$(start-installed-name)): New.
($(objpfx)g$(start-installed-name)): Also depend on
$(objpfx)static-reloc.os.
($(objpfx)gr$(start-installed-name)): New.
* csu/libc-start.c (LIBC_START_MAIN): Call _dl_relocate_static_pie
in libc.a.
* csu/libc-tls.c (__libc_setup_tls): Add main_map->l_addr to
initimage.
* csu/static-reloc.c: New file.
* elf/Makefile (routines): Add dl-reloc-static-pie.
(elide-routines.os): Likewise.
(DEFAULT-LDFLAGS-tst-tls1-static-non-pie): Removed.
(tst-tls1-static-non-pie-no-pie): New.
* elf/dl-reloc-static-pie.c: New file.
* elf/dl-support.c (_dl_get_dl_main_map): New function.
* elf/dynamic-link.h (ELF_DURING_STARTUP): Also check
STATIC_PIE_BOOTSTRAP.
* elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
* gmon/Makefile (tests): Add tst-gmon-static-pie.
(tests-static): Likewise.
(DEFAULT-LDFLAGS-tst-gmon-static): Removed.
(tst-gmon-static-no-pie): New.
(CFLAGS-tst-gmon-static-pie.c): Likewise.
(CRT-tst-gmon-static-pie): Likewise.
(tst-gmon-static-pie-ENV): Likewise.
(tests-special): Likewise.
($(objpfx)tst-gmon-static-pie.out): Likewise.
(clean-tst-gmon-static-pie-data): Likewise.
($(objpfx)tst-gmon-static-pie-gprof.out): Likewise.
* gmon/tst-gmon-static-pie.c: New file.
* manual/install.texi: Document --enable-static-pie.
* sysdeps/generic/ldsodefs.h (_dl_relocate_static_pie): New.
(_dl_get_dl_main_map): Likewise.
* sysdeps/i386/configure.ac: Check if linker supports static PIE.
* sysdeps/x86_64/configure.ac: Likewise.
* sysdeps/i386/configure: Regenerated.
* sysdeps/x86_64/configure: Likewise.
* sysdeps/mips/Makefile (ASFLAGS-.o): Add $(pie-default).
(ASFLAGS-.op): Likewise.
2017-12-16 00:59:33 +00:00
int _start (void) { return 42; }
EOF
2021-10-25 20:17:44 +00:00
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
-Wl,--no-dynamic-linker -nostdlib -nostartfiles
-fPIC -shared -o conftest.so conftest.c
1>&5'
Add --enable-static-pie configure option to build static PIE [BZ #19574]
Static PIE extends address space layout randomization to static
executables. It provides additional security hardening benefits at
the cost of some memory and performance.
Dynamic linker, ld.so, is a standalone program which can be loaded at
any address. This patch adds a configure option, --enable-static-pie,
to embed the part of ld.so in static executable to create static position
independent executable (static PIE). A static PIE is similar to static
executable, but can be loaded at any address without help from a dynamic
linker. When --enable-static-pie is used to configure glibc, libc.a is
built as PIE and all static executables, including tests, are built as
static PIE. The resulting libc.a can be used together with GCC 8 or
above to build static PIE with the compiler option, -static-pie. But
GCC 8 isn't required to build glibc with --enable-static-pie. Only GCC
with PIE support is needed. When an older GCC is used to build glibc
with --enable-static-pie, proper input files are passed to linker to
create static executables as static PIE, together with "-z text" to
prevent dynamic relocations in read-only segments, which are not allowed
in static PIE.
The following changes are made for static PIE:
1. Add a new function, _dl_relocate_static_pie, to:
a. Get the run-time load address.
b. Read the dynamic section.
c. Perform dynamic relocations.
Dynamic linker also performs these steps. But static PIE doesn't load
any shared objects.
2. Call _dl_relocate_static_pie at entrance of LIBC_START_MAIN in
libc.a. crt1.o, which is used to create dynamic and non-PIE static
executables, is updated to include a dummy _dl_relocate_static_pie.
rcrt1.o is added to create static PIE, which will link in the real
_dl_relocate_static_pie. grcrt1.o is also added to create static PIE
with -pg. GCC 8 has been updated to support rcrt1.o and grcrt1.o for
static PIE.
Static PIE can work on all architectures which support PIE, provided:
1. Target must support accessing of local functions without dynamic
relocations, which is needed in start.S to call __libc_start_main with
function addresses of __libc_csu_init, __libc_csu_fini and main. All
functions in static PIE are local functions. If PIE start.S can't reach
main () defined in a shared object, the code sequence:
pass address of local_main to __libc_start_main
...
local_main:
tail call to main via PLT
can be used.
2. start.S is updated to check PIC instead SHARED for PIC code path and
avoid dynamic relocation, when PIC is defined and SHARED isn't defined,
to support static PIE.
3. All assembly codes are updated check PIC instead SHARED for PIC code
path to avoid dynamic relocations in read-only sections.
4. All assembly codes are updated check SHARED instead PIC for static
symbol name.
5. elf_machine_load_address in dl-machine.h are updated to support static
PIE.
6. __brk works without TLS nor dynamic relocations in read-only section
so that it can be used by __libc_setup_tls to initializes TLS in static
PIE.
NB: When glibc is built with GCC defaulted to PIE, libc.a is compiled
with -fPIE, regardless if --enable-static-pie is used to configure glibc.
When glibc is configured with --enable-static-pie, libc.a is compiled
with -fPIE, regardless whether GCC defaults to PIE or not. The same
libc.a can be used to build both static executable and static PIE.
There is no need for separate PIE copy of libc.a.
On x86-64, the normal static sln:
text data bss dec hex filename
625425 8284 5456 639165 9c0bd elf/sln
the static PIE sln:
text data bss dec hex filename
657626 20636 5392 683654 a6e86 elf/sln
The code size is increased by 5% and the binary size is increased by 7%.
Linker requirements to build glibc with --enable-static-pie:
1. Linker supports --no-dynamic-linker to remove PT_INTERP segment from
static PIE.
2. Linker can create working static PIE. The x86-64 linker needs the
fix for
https://sourceware.org/bugzilla/show_bug.cgi?id=21782
The i386 linker needs to be able to convert "movl main@GOT(%ebx), %eax"
to "leal main@GOTOFF(%ebx), %eax" if main is defined locally.
Binutils 2.29 or above are OK for i686 and x86-64. But linker status for
other targets need to be verified.
3. Linker should resolve undefined weak symbols to 0 in static PIE:
https://sourceware.org/bugzilla/show_bug.cgi?id=22269
4. Many ELF backend linkers incorrectly check bfd_link_pic for TLS
relocations, which should check bfd_link_executable instead:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Tested on aarch64, i686 and x86-64.
Using GCC 7 and binutils master branch, build-many-glibcs.py with
--enable-static-pie with all patches for static PIE applied have the
following build successes:
PASS: glibcs-aarch64_be-linux-gnu build
PASS: glibcs-aarch64-linux-gnu build
PASS: glibcs-armeb-linux-gnueabi-be8 build
PASS: glibcs-armeb-linux-gnueabi build
PASS: glibcs-armeb-linux-gnueabihf-be8 build
PASS: glibcs-armeb-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabi build
PASS: glibcs-arm-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabihf-v7a build
PASS: glibcs-arm-linux-gnueabihf-v7a-disable-multi-arch build
PASS: glibcs-m68k-linux-gnu build
PASS: glibcs-microblazeel-linux-gnu build
PASS: glibcs-microblaze-linux-gnu build
PASS: glibcs-mips64el-linux-gnu-n32 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n32-soft build
PASS: glibcs-mips64el-linux-gnu-n64 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n64-soft build
PASS: glibcs-mips64-linux-gnu-n32 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n32-soft build
PASS: glibcs-mips64-linux-gnu-n64 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n64-soft build
PASS: glibcs-mipsel-linux-gnu build
PASS: glibcs-mipsel-linux-gnu-nan2008 build
PASS: glibcs-mipsel-linux-gnu-nan2008-soft build
PASS: glibcs-mipsel-linux-gnu-soft build
PASS: glibcs-mips-linux-gnu build
PASS: glibcs-mips-linux-gnu-nan2008 build
PASS: glibcs-mips-linux-gnu-nan2008-soft build
PASS: glibcs-mips-linux-gnu-soft build
PASS: glibcs-nios2-linux-gnu build
PASS: glibcs-powerpc64le-linux-gnu build
PASS: glibcs-powerpc64-linux-gnu build
PASS: glibcs-tilegxbe-linux-gnu-32 build
PASS: glibcs-tilegxbe-linux-gnu build
PASS: glibcs-tilegx-linux-gnu-32 build
PASS: glibcs-tilegx-linux-gnu build
PASS: glibcs-tilepro-linux-gnu build
and the following build failures:
FAIL: glibcs-alpha-linux-gnu build
elf/sln is failed to link due to:
assertion fail bfd/elf64-alpha.c:4125
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-hppa-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
https://sourceware.org/bugzilla/show_bug.cgi?id=22537
FAIL: glibcs-ia64-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
FAIL: glibcs-powerpc-linux-gnu build
FAIL: glibcs-powerpc-linux-gnu-soft build
FAIL: glibcs-powerpc-linux-gnuspe build
FAIL: glibcs-powerpc-linux-gnuspe-e500v1 build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22264
FAIL: glibcs-powerpc-linux-gnu-power4 build
elf/sln is failed to link due to:
findlocale.c:96:(.text+0x22c): @local call to ifunc memchr
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-s390-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
assertion fail bfd/elflink.c:14299
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-sh3eb-linux-gnu build
FAIL: glibcs-sh3-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu-soft build
FAIL: glibcs-sh4-linux-gnu build
FAIL: glibcs-sh4-linux-gnu-soft build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Also TLS code sequence in SH assembly syscalls in glibc doesn't match TLS
code sequence expected by ld:
https://sourceware.org/bugzilla/show_bug.cgi?id=22270
FAIL: glibcs-sparc64-linux-gnu build
FAIL: glibcs-sparcv9-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu-32 build
FAIL: glibcs-tilegx-linux-gnu build
FAIL: glibcs-tilegx-linux-gnu-32 build
FAIL: glibcs-tilepro-linux-gnu build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
[BZ #19574]
* INSTALL: Regenerated.
* Makeconfig (real-static-start-installed-name): New.
(pic-default): Updated for --enable-static-pie.
(pie-default): New for --enable-static-pie.
(default-pie-ldflag): Likewise.
(+link-static-before-libc): Replace $(DEFAULT-LDFLAGS-$(@F))
with $(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)).
Replace $(static-start-installed-name) with
$(real-static-start-installed-name).
(+prectorT): Updated for --enable-static-pie.
(+postctorT): Likewise.
(CFLAGS-.o): Add $(pie-default).
(CFLAGS-.op): Likewise.
* NEWS: Mention --enable-static-pie.
* config.h.in (ENABLE_STATIC_PIE): New.
* configure.ac (--enable-static-pie): New configure option.
(have-no-dynamic-linker): New LIBC_CONFIG_VAR.
(have-static-pie): Likewise.
Enable static PIE if linker supports --no-dynamic-linker.
(ENABLE_STATIC_PIE): New AC_DEFINE.
(enable-static-pie): New LIBC_CONFIG_VAR.
* configure: Regenerated.
* csu/Makefile (omit-deps): Add r$(start-installed-name) and
gr$(start-installed-name) for --enable-static-pie.
(extra-objs): Likewise.
(install-lib): Likewise.
(extra-objs): Add static-reloc.o and static-reloc.os
($(objpfx)$(start-installed-name)): Also depend on
$(objpfx)static-reloc.o.
($(objpfx)r$(start-installed-name)): New.
($(objpfx)g$(start-installed-name)): Also depend on
$(objpfx)static-reloc.os.
($(objpfx)gr$(start-installed-name)): New.
* csu/libc-start.c (LIBC_START_MAIN): Call _dl_relocate_static_pie
in libc.a.
* csu/libc-tls.c (__libc_setup_tls): Add main_map->l_addr to
initimage.
* csu/static-reloc.c: New file.
* elf/Makefile (routines): Add dl-reloc-static-pie.
(elide-routines.os): Likewise.
(DEFAULT-LDFLAGS-tst-tls1-static-non-pie): Removed.
(tst-tls1-static-non-pie-no-pie): New.
* elf/dl-reloc-static-pie.c: New file.
* elf/dl-support.c (_dl_get_dl_main_map): New function.
* elf/dynamic-link.h (ELF_DURING_STARTUP): Also check
STATIC_PIE_BOOTSTRAP.
* elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
* gmon/Makefile (tests): Add tst-gmon-static-pie.
(tests-static): Likewise.
(DEFAULT-LDFLAGS-tst-gmon-static): Removed.
(tst-gmon-static-no-pie): New.
(CFLAGS-tst-gmon-static-pie.c): Likewise.
(CRT-tst-gmon-static-pie): Likewise.
(tst-gmon-static-pie-ENV): Likewise.
(tests-special): Likewise.
($(objpfx)tst-gmon-static-pie.out): Likewise.
(clean-tst-gmon-static-pie-data): Likewise.
($(objpfx)tst-gmon-static-pie-gprof.out): Likewise.
* gmon/tst-gmon-static-pie.c: New file.
* manual/install.texi: Document --enable-static-pie.
* sysdeps/generic/ldsodefs.h (_dl_relocate_static_pie): New.
(_dl_get_dl_main_map): Likewise.
* sysdeps/i386/configure.ac: Check if linker supports static PIE.
* sysdeps/x86_64/configure.ac: Likewise.
* sysdeps/i386/configure: Regenerated.
* sysdeps/x86_64/configure: Likewise.
* sysdeps/mips/Makefile (ASFLAGS-.o): Add $(pie-default).
(ASFLAGS-.op): Likewise.
2017-12-16 00:59:33 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
2021-10-25 20:17:44 +00:00
then
2022-01-02 14:01:21 +00:00
if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,--no-dynamic-linker -nostdlib \
-nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
| grep "warning: --no-dynamic-linker ignored" > /dev/null 2>&1; then
true
else
libc_linker_feature=yes
fi
Add --enable-static-pie configure option to build static PIE [BZ #19574]
Static PIE extends address space layout randomization to static
executables. It provides additional security hardening benefits at
the cost of some memory and performance.
Dynamic linker, ld.so, is a standalone program which can be loaded at
any address. This patch adds a configure option, --enable-static-pie,
to embed the part of ld.so in static executable to create static position
independent executable (static PIE). A static PIE is similar to static
executable, but can be loaded at any address without help from a dynamic
linker. When --enable-static-pie is used to configure glibc, libc.a is
built as PIE and all static executables, including tests, are built as
static PIE. The resulting libc.a can be used together with GCC 8 or
above to build static PIE with the compiler option, -static-pie. But
GCC 8 isn't required to build glibc with --enable-static-pie. Only GCC
with PIE support is needed. When an older GCC is used to build glibc
with --enable-static-pie, proper input files are passed to linker to
create static executables as static PIE, together with "-z text" to
prevent dynamic relocations in read-only segments, which are not allowed
in static PIE.
The following changes are made for static PIE:
1. Add a new function, _dl_relocate_static_pie, to:
a. Get the run-time load address.
b. Read the dynamic section.
c. Perform dynamic relocations.
Dynamic linker also performs these steps. But static PIE doesn't load
any shared objects.
2. Call _dl_relocate_static_pie at entrance of LIBC_START_MAIN in
libc.a. crt1.o, which is used to create dynamic and non-PIE static
executables, is updated to include a dummy _dl_relocate_static_pie.
rcrt1.o is added to create static PIE, which will link in the real
_dl_relocate_static_pie. grcrt1.o is also added to create static PIE
with -pg. GCC 8 has been updated to support rcrt1.o and grcrt1.o for
static PIE.
Static PIE can work on all architectures which support PIE, provided:
1. Target must support accessing of local functions without dynamic
relocations, which is needed in start.S to call __libc_start_main with
function addresses of __libc_csu_init, __libc_csu_fini and main. All
functions in static PIE are local functions. If PIE start.S can't reach
main () defined in a shared object, the code sequence:
pass address of local_main to __libc_start_main
...
local_main:
tail call to main via PLT
can be used.
2. start.S is updated to check PIC instead SHARED for PIC code path and
avoid dynamic relocation, when PIC is defined and SHARED isn't defined,
to support static PIE.
3. All assembly codes are updated check PIC instead SHARED for PIC code
path to avoid dynamic relocations in read-only sections.
4. All assembly codes are updated check SHARED instead PIC for static
symbol name.
5. elf_machine_load_address in dl-machine.h are updated to support static
PIE.
6. __brk works without TLS nor dynamic relocations in read-only section
so that it can be used by __libc_setup_tls to initializes TLS in static
PIE.
NB: When glibc is built with GCC defaulted to PIE, libc.a is compiled
with -fPIE, regardless if --enable-static-pie is used to configure glibc.
When glibc is configured with --enable-static-pie, libc.a is compiled
with -fPIE, regardless whether GCC defaults to PIE or not. The same
libc.a can be used to build both static executable and static PIE.
There is no need for separate PIE copy of libc.a.
On x86-64, the normal static sln:
text data bss dec hex filename
625425 8284 5456 639165 9c0bd elf/sln
the static PIE sln:
text data bss dec hex filename
657626 20636 5392 683654 a6e86 elf/sln
The code size is increased by 5% and the binary size is increased by 7%.
Linker requirements to build glibc with --enable-static-pie:
1. Linker supports --no-dynamic-linker to remove PT_INTERP segment from
static PIE.
2. Linker can create working static PIE. The x86-64 linker needs the
fix for
https://sourceware.org/bugzilla/show_bug.cgi?id=21782
The i386 linker needs to be able to convert "movl main@GOT(%ebx), %eax"
to "leal main@GOTOFF(%ebx), %eax" if main is defined locally.
Binutils 2.29 or above are OK for i686 and x86-64. But linker status for
other targets need to be verified.
3. Linker should resolve undefined weak symbols to 0 in static PIE:
https://sourceware.org/bugzilla/show_bug.cgi?id=22269
4. Many ELF backend linkers incorrectly check bfd_link_pic for TLS
relocations, which should check bfd_link_executable instead:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Tested on aarch64, i686 and x86-64.
Using GCC 7 and binutils master branch, build-many-glibcs.py with
--enable-static-pie with all patches for static PIE applied have the
following build successes:
PASS: glibcs-aarch64_be-linux-gnu build
PASS: glibcs-aarch64-linux-gnu build
PASS: glibcs-armeb-linux-gnueabi-be8 build
PASS: glibcs-armeb-linux-gnueabi build
PASS: glibcs-armeb-linux-gnueabihf-be8 build
PASS: glibcs-armeb-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabi build
PASS: glibcs-arm-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabihf-v7a build
PASS: glibcs-arm-linux-gnueabihf-v7a-disable-multi-arch build
PASS: glibcs-m68k-linux-gnu build
PASS: glibcs-microblazeel-linux-gnu build
PASS: glibcs-microblaze-linux-gnu build
PASS: glibcs-mips64el-linux-gnu-n32 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n32-soft build
PASS: glibcs-mips64el-linux-gnu-n64 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n64-soft build
PASS: glibcs-mips64-linux-gnu-n32 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n32-soft build
PASS: glibcs-mips64-linux-gnu-n64 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n64-soft build
PASS: glibcs-mipsel-linux-gnu build
PASS: glibcs-mipsel-linux-gnu-nan2008 build
PASS: glibcs-mipsel-linux-gnu-nan2008-soft build
PASS: glibcs-mipsel-linux-gnu-soft build
PASS: glibcs-mips-linux-gnu build
PASS: glibcs-mips-linux-gnu-nan2008 build
PASS: glibcs-mips-linux-gnu-nan2008-soft build
PASS: glibcs-mips-linux-gnu-soft build
PASS: glibcs-nios2-linux-gnu build
PASS: glibcs-powerpc64le-linux-gnu build
PASS: glibcs-powerpc64-linux-gnu build
PASS: glibcs-tilegxbe-linux-gnu-32 build
PASS: glibcs-tilegxbe-linux-gnu build
PASS: glibcs-tilegx-linux-gnu-32 build
PASS: glibcs-tilegx-linux-gnu build
PASS: glibcs-tilepro-linux-gnu build
and the following build failures:
FAIL: glibcs-alpha-linux-gnu build
elf/sln is failed to link due to:
assertion fail bfd/elf64-alpha.c:4125
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-hppa-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
https://sourceware.org/bugzilla/show_bug.cgi?id=22537
FAIL: glibcs-ia64-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
FAIL: glibcs-powerpc-linux-gnu build
FAIL: glibcs-powerpc-linux-gnu-soft build
FAIL: glibcs-powerpc-linux-gnuspe build
FAIL: glibcs-powerpc-linux-gnuspe-e500v1 build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22264
FAIL: glibcs-powerpc-linux-gnu-power4 build
elf/sln is failed to link due to:
findlocale.c:96:(.text+0x22c): @local call to ifunc memchr
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-s390-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
assertion fail bfd/elflink.c:14299
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-sh3eb-linux-gnu build
FAIL: glibcs-sh3-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu-soft build
FAIL: glibcs-sh4-linux-gnu build
FAIL: glibcs-sh4-linux-gnu-soft build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Also TLS code sequence in SH assembly syscalls in glibc doesn't match TLS
code sequence expected by ld:
https://sourceware.org/bugzilla/show_bug.cgi?id=22270
FAIL: glibcs-sparc64-linux-gnu build
FAIL: glibcs-sparcv9-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu-32 build
FAIL: glibcs-tilegx-linux-gnu build
FAIL: glibcs-tilegx-linux-gnu-32 build
FAIL: glibcs-tilepro-linux-gnu build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
[BZ #19574]
* INSTALL: Regenerated.
* Makeconfig (real-static-start-installed-name): New.
(pic-default): Updated for --enable-static-pie.
(pie-default): New for --enable-static-pie.
(default-pie-ldflag): Likewise.
(+link-static-before-libc): Replace $(DEFAULT-LDFLAGS-$(@F))
with $(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)).
Replace $(static-start-installed-name) with
$(real-static-start-installed-name).
(+prectorT): Updated for --enable-static-pie.
(+postctorT): Likewise.
(CFLAGS-.o): Add $(pie-default).
(CFLAGS-.op): Likewise.
* NEWS: Mention --enable-static-pie.
* config.h.in (ENABLE_STATIC_PIE): New.
* configure.ac (--enable-static-pie): New configure option.
(have-no-dynamic-linker): New LIBC_CONFIG_VAR.
(have-static-pie): Likewise.
Enable static PIE if linker supports --no-dynamic-linker.
(ENABLE_STATIC_PIE): New AC_DEFINE.
(enable-static-pie): New LIBC_CONFIG_VAR.
* configure: Regenerated.
* csu/Makefile (omit-deps): Add r$(start-installed-name) and
gr$(start-installed-name) for --enable-static-pie.
(extra-objs): Likewise.
(install-lib): Likewise.
(extra-objs): Add static-reloc.o and static-reloc.os
($(objpfx)$(start-installed-name)): Also depend on
$(objpfx)static-reloc.o.
($(objpfx)r$(start-installed-name)): New.
($(objpfx)g$(start-installed-name)): Also depend on
$(objpfx)static-reloc.os.
($(objpfx)gr$(start-installed-name)): New.
* csu/libc-start.c (LIBC_START_MAIN): Call _dl_relocate_static_pie
in libc.a.
* csu/libc-tls.c (__libc_setup_tls): Add main_map->l_addr to
initimage.
* csu/static-reloc.c: New file.
* elf/Makefile (routines): Add dl-reloc-static-pie.
(elide-routines.os): Likewise.
(DEFAULT-LDFLAGS-tst-tls1-static-non-pie): Removed.
(tst-tls1-static-non-pie-no-pie): New.
* elf/dl-reloc-static-pie.c: New file.
* elf/dl-support.c (_dl_get_dl_main_map): New function.
* elf/dynamic-link.h (ELF_DURING_STARTUP): Also check
STATIC_PIE_BOOTSTRAP.
* elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
* gmon/Makefile (tests): Add tst-gmon-static-pie.
(tests-static): Likewise.
(DEFAULT-LDFLAGS-tst-gmon-static): Removed.
(tst-gmon-static-no-pie): New.
(CFLAGS-tst-gmon-static-pie.c): Likewise.
(CRT-tst-gmon-static-pie): Likewise.
(tst-gmon-static-pie-ENV): Likewise.
(tests-special): Likewise.
($(objpfx)tst-gmon-static-pie.out): Likewise.
(clean-tst-gmon-static-pie-data): Likewise.
($(objpfx)tst-gmon-static-pie-gprof.out): Likewise.
* gmon/tst-gmon-static-pie.c: New file.
* manual/install.texi: Document --enable-static-pie.
* sysdeps/generic/ldsodefs.h (_dl_relocate_static_pie): New.
(_dl_get_dl_main_map): Likewise.
* sysdeps/i386/configure.ac: Check if linker supports static PIE.
* sysdeps/x86_64/configure.ac: Likewise.
* sysdeps/i386/configure: Regenerated.
* sysdeps/x86_64/configure: Likewise.
* sysdeps/mips/Makefile (ASFLAGS-.o): Add $(pie-default).
(ASFLAGS-.op): Likewise.
2017-12-16 00:59:33 +00:00
fi
2021-10-25 20:17:44 +00:00
rm -f conftest*
Add --enable-static-pie configure option to build static PIE [BZ #19574]
Static PIE extends address space layout randomization to static
executables. It provides additional security hardening benefits at
the cost of some memory and performance.
Dynamic linker, ld.so, is a standalone program which can be loaded at
any address. This patch adds a configure option, --enable-static-pie,
to embed the part of ld.so in static executable to create static position
independent executable (static PIE). A static PIE is similar to static
executable, but can be loaded at any address without help from a dynamic
linker. When --enable-static-pie is used to configure glibc, libc.a is
built as PIE and all static executables, including tests, are built as
static PIE. The resulting libc.a can be used together with GCC 8 or
above to build static PIE with the compiler option, -static-pie. But
GCC 8 isn't required to build glibc with --enable-static-pie. Only GCC
with PIE support is needed. When an older GCC is used to build glibc
with --enable-static-pie, proper input files are passed to linker to
create static executables as static PIE, together with "-z text" to
prevent dynamic relocations in read-only segments, which are not allowed
in static PIE.
The following changes are made for static PIE:
1. Add a new function, _dl_relocate_static_pie, to:
a. Get the run-time load address.
b. Read the dynamic section.
c. Perform dynamic relocations.
Dynamic linker also performs these steps. But static PIE doesn't load
any shared objects.
2. Call _dl_relocate_static_pie at entrance of LIBC_START_MAIN in
libc.a. crt1.o, which is used to create dynamic and non-PIE static
executables, is updated to include a dummy _dl_relocate_static_pie.
rcrt1.o is added to create static PIE, which will link in the real
_dl_relocate_static_pie. grcrt1.o is also added to create static PIE
with -pg. GCC 8 has been updated to support rcrt1.o and grcrt1.o for
static PIE.
Static PIE can work on all architectures which support PIE, provided:
1. Target must support accessing of local functions without dynamic
relocations, which is needed in start.S to call __libc_start_main with
function addresses of __libc_csu_init, __libc_csu_fini and main. All
functions in static PIE are local functions. If PIE start.S can't reach
main () defined in a shared object, the code sequence:
pass address of local_main to __libc_start_main
...
local_main:
tail call to main via PLT
can be used.
2. start.S is updated to check PIC instead SHARED for PIC code path and
avoid dynamic relocation, when PIC is defined and SHARED isn't defined,
to support static PIE.
3. All assembly codes are updated check PIC instead SHARED for PIC code
path to avoid dynamic relocations in read-only sections.
4. All assembly codes are updated check SHARED instead PIC for static
symbol name.
5. elf_machine_load_address in dl-machine.h are updated to support static
PIE.
6. __brk works without TLS nor dynamic relocations in read-only section
so that it can be used by __libc_setup_tls to initializes TLS in static
PIE.
NB: When glibc is built with GCC defaulted to PIE, libc.a is compiled
with -fPIE, regardless if --enable-static-pie is used to configure glibc.
When glibc is configured with --enable-static-pie, libc.a is compiled
with -fPIE, regardless whether GCC defaults to PIE or not. The same
libc.a can be used to build both static executable and static PIE.
There is no need for separate PIE copy of libc.a.
On x86-64, the normal static sln:
text data bss dec hex filename
625425 8284 5456 639165 9c0bd elf/sln
the static PIE sln:
text data bss dec hex filename
657626 20636 5392 683654 a6e86 elf/sln
The code size is increased by 5% and the binary size is increased by 7%.
Linker requirements to build glibc with --enable-static-pie:
1. Linker supports --no-dynamic-linker to remove PT_INTERP segment from
static PIE.
2. Linker can create working static PIE. The x86-64 linker needs the
fix for
https://sourceware.org/bugzilla/show_bug.cgi?id=21782
The i386 linker needs to be able to convert "movl main@GOT(%ebx), %eax"
to "leal main@GOTOFF(%ebx), %eax" if main is defined locally.
Binutils 2.29 or above are OK for i686 and x86-64. But linker status for
other targets need to be verified.
3. Linker should resolve undefined weak symbols to 0 in static PIE:
https://sourceware.org/bugzilla/show_bug.cgi?id=22269
4. Many ELF backend linkers incorrectly check bfd_link_pic for TLS
relocations, which should check bfd_link_executable instead:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Tested on aarch64, i686 and x86-64.
Using GCC 7 and binutils master branch, build-many-glibcs.py with
--enable-static-pie with all patches for static PIE applied have the
following build successes:
PASS: glibcs-aarch64_be-linux-gnu build
PASS: glibcs-aarch64-linux-gnu build
PASS: glibcs-armeb-linux-gnueabi-be8 build
PASS: glibcs-armeb-linux-gnueabi build
PASS: glibcs-armeb-linux-gnueabihf-be8 build
PASS: glibcs-armeb-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabi build
PASS: glibcs-arm-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabihf-v7a build
PASS: glibcs-arm-linux-gnueabihf-v7a-disable-multi-arch build
PASS: glibcs-m68k-linux-gnu build
PASS: glibcs-microblazeel-linux-gnu build
PASS: glibcs-microblaze-linux-gnu build
PASS: glibcs-mips64el-linux-gnu-n32 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n32-soft build
PASS: glibcs-mips64el-linux-gnu-n64 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n64-soft build
PASS: glibcs-mips64-linux-gnu-n32 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n32-soft build
PASS: glibcs-mips64-linux-gnu-n64 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n64-soft build
PASS: glibcs-mipsel-linux-gnu build
PASS: glibcs-mipsel-linux-gnu-nan2008 build
PASS: glibcs-mipsel-linux-gnu-nan2008-soft build
PASS: glibcs-mipsel-linux-gnu-soft build
PASS: glibcs-mips-linux-gnu build
PASS: glibcs-mips-linux-gnu-nan2008 build
PASS: glibcs-mips-linux-gnu-nan2008-soft build
PASS: glibcs-mips-linux-gnu-soft build
PASS: glibcs-nios2-linux-gnu build
PASS: glibcs-powerpc64le-linux-gnu build
PASS: glibcs-powerpc64-linux-gnu build
PASS: glibcs-tilegxbe-linux-gnu-32 build
PASS: glibcs-tilegxbe-linux-gnu build
PASS: glibcs-tilegx-linux-gnu-32 build
PASS: glibcs-tilegx-linux-gnu build
PASS: glibcs-tilepro-linux-gnu build
and the following build failures:
FAIL: glibcs-alpha-linux-gnu build
elf/sln is failed to link due to:
assertion fail bfd/elf64-alpha.c:4125
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-hppa-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
https://sourceware.org/bugzilla/show_bug.cgi?id=22537
FAIL: glibcs-ia64-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
FAIL: glibcs-powerpc-linux-gnu build
FAIL: glibcs-powerpc-linux-gnu-soft build
FAIL: glibcs-powerpc-linux-gnuspe build
FAIL: glibcs-powerpc-linux-gnuspe-e500v1 build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22264
FAIL: glibcs-powerpc-linux-gnu-power4 build
elf/sln is failed to link due to:
findlocale.c:96:(.text+0x22c): @local call to ifunc memchr
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-s390-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
assertion fail bfd/elflink.c:14299
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-sh3eb-linux-gnu build
FAIL: glibcs-sh3-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu-soft build
FAIL: glibcs-sh4-linux-gnu build
FAIL: glibcs-sh4-linux-gnu-soft build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Also TLS code sequence in SH assembly syscalls in glibc doesn't match TLS
code sequence expected by ld:
https://sourceware.org/bugzilla/show_bug.cgi?id=22270
FAIL: glibcs-sparc64-linux-gnu build
FAIL: glibcs-sparcv9-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu-32 build
FAIL: glibcs-tilegx-linux-gnu build
FAIL: glibcs-tilegx-linux-gnu-32 build
FAIL: glibcs-tilepro-linux-gnu build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
[BZ #19574]
* INSTALL: Regenerated.
* Makeconfig (real-static-start-installed-name): New.
(pic-default): Updated for --enable-static-pie.
(pie-default): New for --enable-static-pie.
(default-pie-ldflag): Likewise.
(+link-static-before-libc): Replace $(DEFAULT-LDFLAGS-$(@F))
with $(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)).
Replace $(static-start-installed-name) with
$(real-static-start-installed-name).
(+prectorT): Updated for --enable-static-pie.
(+postctorT): Likewise.
(CFLAGS-.o): Add $(pie-default).
(CFLAGS-.op): Likewise.
* NEWS: Mention --enable-static-pie.
* config.h.in (ENABLE_STATIC_PIE): New.
* configure.ac (--enable-static-pie): New configure option.
(have-no-dynamic-linker): New LIBC_CONFIG_VAR.
(have-static-pie): Likewise.
Enable static PIE if linker supports --no-dynamic-linker.
(ENABLE_STATIC_PIE): New AC_DEFINE.
(enable-static-pie): New LIBC_CONFIG_VAR.
* configure: Regenerated.
* csu/Makefile (omit-deps): Add r$(start-installed-name) and
gr$(start-installed-name) for --enable-static-pie.
(extra-objs): Likewise.
(install-lib): Likewise.
(extra-objs): Add static-reloc.o and static-reloc.os
($(objpfx)$(start-installed-name)): Also depend on
$(objpfx)static-reloc.o.
($(objpfx)r$(start-installed-name)): New.
($(objpfx)g$(start-installed-name)): Also depend on
$(objpfx)static-reloc.os.
($(objpfx)gr$(start-installed-name)): New.
* csu/libc-start.c (LIBC_START_MAIN): Call _dl_relocate_static_pie
in libc.a.
* csu/libc-tls.c (__libc_setup_tls): Add main_map->l_addr to
initimage.
* csu/static-reloc.c: New file.
* elf/Makefile (routines): Add dl-reloc-static-pie.
(elide-routines.os): Likewise.
(DEFAULT-LDFLAGS-tst-tls1-static-non-pie): Removed.
(tst-tls1-static-non-pie-no-pie): New.
* elf/dl-reloc-static-pie.c: New file.
* elf/dl-support.c (_dl_get_dl_main_map): New function.
* elf/dynamic-link.h (ELF_DURING_STARTUP): Also check
STATIC_PIE_BOOTSTRAP.
* elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
* gmon/Makefile (tests): Add tst-gmon-static-pie.
(tests-static): Likewise.
(DEFAULT-LDFLAGS-tst-gmon-static): Removed.
(tst-gmon-static-no-pie): New.
(CFLAGS-tst-gmon-static-pie.c): Likewise.
(CRT-tst-gmon-static-pie): Likewise.
(tst-gmon-static-pie-ENV): Likewise.
(tests-special): Likewise.
($(objpfx)tst-gmon-static-pie.out): Likewise.
(clean-tst-gmon-static-pie-data): Likewise.
($(objpfx)tst-gmon-static-pie-gprof.out): Likewise.
* gmon/tst-gmon-static-pie.c: New file.
* manual/install.texi: Document --enable-static-pie.
* sysdeps/generic/ldsodefs.h (_dl_relocate_static_pie): New.
(_dl_get_dl_main_map): Likewise.
* sysdeps/i386/configure.ac: Check if linker supports static PIE.
* sysdeps/x86_64/configure.ac: Likewise.
* sysdeps/i386/configure: Regenerated.
* sysdeps/x86_64/configure: Likewise.
* sysdeps/mips/Makefile (ASFLAGS-.o): Add $(pie-default).
(ASFLAGS-.op): Likewise.
2017-12-16 00:59:33 +00:00
fi
if test $libc_linker_feature = yes; then
libc_cv_no_dynamic_linker=yes
else
libc_cv_no_dynamic_linker=no
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
$as_echo "$libc_linker_feature" >&6; }
config_vars="$config_vars
have-no-dynamic-linker = $libc_cv_no_dynamic_linker"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -static-pie" >&5
$as_echo_n "checking for -static-pie... " >&6; }
if ${libc_cv_static_pie+:} false; then :
$as_echo_n "(cached) " >&6
else
if { ac_try='${CC-cc} -static-pie -xc /dev/null -S -o /dev/null'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then :
libc_cv_static_pie=yes
else
libc_cv_static_pie=no
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_static_pie" >&5
$as_echo "$libc_cv_static_pie" >&6; }
config_vars="$config_vars
have-static-pie = $libc_cv_static_pie"
2012-01-08 05:45:01 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fpie" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for -fpie... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_fpie+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2003-09-24 17:38:32 +00:00
else
2012-05-30 09:50:40 +00:00
if { ac_try='${CC-cc} -fpie -xc /dev/null -S -o /dev/null'
2010-07-10 02:25:39 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
2003-09-24 17:38:32 +00:00
(eval $ac_try) 2>&5
ac_status=$?
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2012-05-30 09:50:40 +00:00
test $ac_status = 0; }; }; then :
2012-01-08 05:45:01 +00:00
libc_cv_fpie=yes
else
libc_cv_fpie=no
fi
2012-05-30 09:50:40 +00:00
2003-09-24 17:38:32 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_fpie" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_fpie" >&6; }
2003-09-24 17:38:32 +00:00
2006-07-10 21:59:43 +00:00
2012-01-08 05:45:01 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --hash-style option" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for --hash-style option... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_hashstyle+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2006-07-10 21:59:43 +00:00
else
2012-01-08 05:45:01 +00:00
cat > conftest.c <<EOF
2006-07-10 21:59:43 +00:00
int _start (void) { return 42; }
EOF
2016-12-26 09:08:54 +00:00
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
2012-01-08 05:45:01 +00:00
-fPIC -shared -o conftest.so conftest.c
-Wl,--hash-style=both -nostdlib 1>&5'
2010-07-10 02:25:39 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
2006-07-10 21:59:43 +00:00
(eval $ac_try) 2>&5
ac_status=$?
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
2012-01-08 05:45:01 +00:00
then
libc_cv_hashstyle=yes
else
libc_cv_hashstyle=no
fi
rm -f conftest*
2006-07-10 21:59:43 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_hashstyle" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_hashstyle" >&6; }
2006-07-10 21:59:43 +00:00
2011-06-11 12:14:37 +00:00
2012-01-08 05:45:01 +00:00
# The linker's default -shared behavior is good enough if it
# does these things that our custom linker scripts ensure that
# all allocated NOTE sections come first.
if test "$use_default_link" = default; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sufficient default -shared layout" >&5
2011-06-11 12:14:37 +00:00
$as_echo_n "checking for sufficient default -shared layout... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_use_default_link+:} false; then :
2011-06-11 12:14:37 +00:00
$as_echo_n "(cached) " >&6
else
2012-01-08 05:45:01 +00:00
libc_cv_use_default_link=no
cat > conftest.s <<\EOF
2011-06-11 12:14:37 +00:00
.section .note.a,"a",%note
.balign 4
.long 4,4,9
.string "GNU"
.string "foo"
.section .note.b,"a",%note
.balign 4
.long 4,4,9
.string "GNU"
.string "bar"
EOF
2012-01-08 05:45:01 +00:00
if { ac_try=' ${CC-cc} $ASFLAGS -shared -o conftest.so conftest.s 1>&5'
2011-06-11 12:14:37 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; } &&
ac_try=`$READELF -S conftest.so | sed -n \
'${x;p;}
s/^ *\[ *[1-9][0-9]*\] *\([^ ][^ ]*\) *\([^ ][^ ]*\) .*$/\2 \1/
t a
b
: a
H'`
2012-01-08 05:45:01 +00:00
then
libc_seen_a=no libc_seen_b=no
set -- $ac_try
while test $# -ge 2 -a "$1" = NOTE; do
case "$2" in
.note.a) libc_seen_a=yes ;;
.note.b) libc_seen_b=yes ;;
esac
shift 2
done
case "$libc_seen_a$libc_seen_b" in
yesyes)
libc_cv_use_default_link=yes
;;
*)
echo >&5 "\
2011-06-11 12:14:37 +00:00
$libc_seen_a$libc_seen_b from:
$ac_try"
2012-01-08 05:45:01 +00:00
;;
esac
fi
rm -f conftest*
2011-06-11 12:14:37 +00:00
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_use_default_link" >&5
$as_echo "$libc_cv_use_default_link" >&6; }
2012-01-08 05:45:01 +00:00
use_default_link=$libc_cv_use_default_link
2003-09-23 12:07:26 +00:00
fi
2001-08-29 18:45:03 +00:00
2015-11-14 20:00:16 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLOB_DAT reloc" >&5
$as_echo_n "checking for GLOB_DAT reloc... " >&6; }
if ${libc_cv_has_glob_dat+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.c <<EOF
extern int mumble;
int foo (void) { return mumble; }
EOF
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
-fPIC -shared -o conftest.so conftest.c
2016-12-26 09:08:54 +00:00
-nostdlib -nostartfiles $no_ssp
2015-11-14 20:00:16 +00:00
1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
then
if $READELF -rW conftest.so | grep '_GLOB_DAT' > /dev/null; then
libc_cv_has_glob_dat=yes
else
libc_cv_has_glob_dat=no
fi
else
libc_cv_has_glob_dat=no
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_has_glob_dat" >&5
$as_echo "$libc_cv_has_glob_dat" >&6; }
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fno-toplevel-reorder -fno-section-anchors" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for -fno-toplevel-reorder -fno-section-anchors... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_fno_toplevel_reorder+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2003-12-02 07:37:28 +00:00
else
cat > conftest.c <<EOF
int foo;
EOF
2008-04-11 17:53:44 +00:00
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder -fno-section-anchors
2003-12-02 07:37:28 +00:00
conftest.c 1>&5'
2010-07-10 02:25:39 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
2003-12-02 07:37:28 +00:00
(eval $ac_try) 2>&5
ac_status=$?
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
2003-12-02 07:37:28 +00:00
then
2006-01-30 22:41:14 +00:00
libc_cv_fno_toplevel_reorder=yes
2003-12-02 07:37:28 +00:00
else
2006-01-30 22:41:14 +00:00
libc_cv_fno_toplevel_reorder=no
2003-12-02 07:37:28 +00:00
fi
rm -f conftest*
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_fno_toplevel_reorder" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_fno_toplevel_reorder" >&6; }
2006-01-30 22:41:14 +00:00
if test $libc_cv_fno_toplevel_reorder = yes; then
2008-04-11 17:53:44 +00:00
fno_unit_at_a_time="-fno-toplevel-reorder -fno-section-anchors"
2006-01-30 22:41:14 +00:00
else
2003-12-02 07:37:28 +00:00
fno_unit_at_a_time=-fno-unit-at-a-time
fi
2016-07-12 13:29:54 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -mtls-dialect=gnu2" >&5
$as_echo_n "checking for -mtls-dialect=gnu2... " >&6; }
if ${libc_cv_mtls_dialect_gnu2+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.c <<EOF
__thread int i;
void foo (void)
{
i = 10;
}
EOF
2021-10-26 13:58:50 +00:00
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=gnu2 -nostdlib -nostartfiles
conftest.c -o conftest 1>&5'
2016-07-12 13:29:54 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
then
libc_cv_mtls_dialect_gnu2=yes
else
libc_cv_mtls_dialect_gnu2=no
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mtls_dialect_gnu2" >&5
$as_echo "$libc_cv_mtls_dialect_gnu2" >&6; }
config_vars="$config_vars
have-mtls-dialect-gnu2 = $libc_cv_mtls_dialect_gnu2"
2012-01-08 05:45:01 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc puts quotes around section names" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking whether cc puts quotes around section names... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_have_section_quotes+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2000-06-14 16:39:34 +00:00
else
cat > conftest.c <<EOF
2012-01-08 05:45:01 +00:00
static const int foo
__attribute__ ((section ("bar"))) = 1;
2000-06-14 16:39:34 +00:00
EOF
2012-01-08 05:45:01 +00:00
if ${CC-cc} -S conftest.c -o conftest.s; then
if grep '\.section.*"bar"' conftest.s >/dev/null; then
libc_cv_have_section_quotes=yes
2000-06-14 16:39:34 +00:00
else
2012-01-08 05:45:01 +00:00
libc_cv_have_section_quotes=no
2000-06-14 16:39:34 +00:00
fi
2012-01-08 05:45:01 +00:00
else
libc_cv_have_section_quotes=unknown
fi
rm -f conftest.{c,s}
2000-06-14 16:39:34 +00:00
2002-10-17 23:48:55 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_section_quotes" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_have_section_quotes" >&6; }
2012-01-08 05:45:01 +00:00
if test $libc_cv_have_section_quotes = yes; then
$as_echo "#define HAVE_SECTION_QUOTES 1" >>confdefs.h
1997-07-14 21:49:20 +00:00
1998-03-14 22:01:46 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_memset" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for __builtin_memset... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_gcc_builtin_memset+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2002-02-07 17:54:45 +00:00
else
cat > conftest.c <<\EOF
void zero (void *x)
{
2002-02-09 01:41:44 +00:00
__builtin_memset (x, 0, 1000);
2002-02-07 17:54:45 +00:00
}
EOF
2017-03-12 20:16:18 +00:00
if { ac_try='${CC-cc} -O3 -S conftest.c -o - | grep -F "memset" > /dev/null'
2010-07-10 02:25:39 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
2002-10-17 23:48:55 +00:00
(eval $ac_try) 2>&5
ac_status=$?
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; };
2002-02-07 17:54:45 +00:00
then
libc_cv_gcc_builtin_memset=no
else
libc_cv_gcc_builtin_memset=yes
fi
2002-10-17 23:48:55 +00:00
rm -f conftest*
2002-02-07 17:54:45 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_builtin_memset" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_gcc_builtin_memset" >&6; }
2002-02-07 17:54:45 +00:00
if test "$libc_cv_gcc_builtin_memset" = yes ; then
2010-07-10 02:25:39 +00:00
$as_echo "#define HAVE_BUILTIN_MEMSET 1" >>confdefs.h
2002-02-07 17:54:45 +00:00
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for redirection of built-in functions" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for redirection of built-in functions... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_gcc_builtin_redirection+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
Update.
* sysdeps/i386/fpu/ftestexcept.c: Also check SSE status word.
* include/signal.h: Use libc_hidden_proto for sigaddset and sigdelset.
* signal/sigaddset.c: Add libc_hidden_def.
* signal/sigdelset.c: Likewise.
2003-04-29 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/i486/string-inlines.c (__memcpy_g, __strchr_g): Move
to the end of the file.
* configure.in: Change __oline__ to $LINENO.
(HAVE_BUILTIN_REDIRECTION): New check.
* config.h.in (HAVE_BUILTIN_REDIRECTION): Add.
* include/libc-symbols.h (libc_hidden_builtin_proto,
libc_hidden_builtin_def, libc_hidden_builtin_weak,
libc_hidden_builtin_ver): Define.
* include/string.h (memchr, memcpy, memmove, memset, strcat, strchr,
strcmp, strcpy, strcspn, strlen, strncmp, strncpy, strpbrk, strrchr,
strspn, strstr): Add libc_hidden_builtin_proto.
* intl/plural.y: Include string.h.
* sysdeps/alpha/alphaev6/memchr.S (memchr): Add
libc_hidden_builtin_def.
* sysdeps/alpha/alphaev6/memcpy.S (memcpy): Likewise.
* sysdeps/alpha/alphaev6/memset.S (memset): Likewise.
* sysdeps/alpha/alphaev67/strcat.S (strcat): Likewise.
* sysdeps/alpha/alphaev67/strchr.S (strchr): Likewise.
* sysdeps/alpha/alphaev67/strlen.S (strlen): Likewise.
* sysdeps/alpha/alphaev67/strrchr.S (strrchr): Likewise.
* sysdeps/alpha/memchr.S (memchr): Likewise.
* sysdeps/alpha/memset.S (memset): Likewise.
* sysdeps/alpha/strcat.S (strcat): Likewise.
* sysdeps/alpha/strchr.S (strchr): Likewise.
* sysdeps/alpha/strcmp.S (strcmp): Likewise.
* sysdeps/alpha/strcpy.S (strcpy): Likewise.
* sysdeps/alpha/strlen.S (strlen): Likewise.
* sysdeps/alpha/strncmp.S (strncmp): Likewise.
* sysdeps/alpha/strncpy.S (strncpy): Likewise.
* sysdeps/alpha/strrchr.S (strrchr): Likewise.
* sysdeps/arm/memset.S (memset): Likewise.
* sysdeps/arm/strlen.S (strlen): Likewise.
* sysdeps/generic/memchr.c (memchr): Likewise.
* sysdeps/generic/memcpy.c (memcpy): Likewise.
* sysdeps/generic/memmove.c (memmove): Likewise.
* sysdeps/generic/memset.c (memset): Likewise.
* sysdeps/generic/strcat.c (strcat): Likewise.
* sysdeps/generic/strchr.c (strchr): Likewise.
* sysdeps/generic/strcmp.c (strcmp): Likewise.
* sysdeps/generic/strcpy.c (strcpy): Likewise.
* sysdeps/generic/strcspn.c (strcspn): Likewise.
* sysdeps/generic/strlen.c (strlen): Likewise.
* sysdeps/generic/strncmp.c (strncmp): Likewise.
* sysdeps/generic/strncpy.c (strncpy): Likewise.
* sysdeps/generic/strpbrk.c (strpbrk): Likewise.
* sysdeps/generic/strrchr.c (strrchr): Likewise.
* sysdeps/generic/strspn.c (strspn): Likewise.
* sysdeps/generic/strstr.c (strstr): Likewise.
* sysdeps/i386/i486/strcat.S (strcat): Likewise.
* sysdeps/i386/i486/strlen.S (strlen): Likewise.
* sysdeps/i386/i586/memcpy.S (memcpy): Likewise.
* sysdeps/i386/i586/memset.S (memset): Likewise.
* sysdeps/i386/i586/strchr.S (strchr): Likewise.
* sysdeps/i386/i586/strcpy.S (strcpy): Likewise.
* sysdeps/i386/i586/strlen.S (strlen): Likewise.
* sysdeps/i386/i686/memcpy.S (memcpy): Likewise.
* sysdeps/i386/i686/memmove.S (memmove): Likewise.
* sysdeps/i386/i686/memset.S (memset): Likewise.
* sysdeps/i386/i686/strcmp.S (strcmp): Likewise.
* sysdeps/i386/memchr.S (memchr): Likewise.
* sysdeps/i386/memset.c (memset): Likewise.
* sysdeps/i386/strchr.S (strchr): Likewise.
* sysdeps/i386/strcspn.S (strcspn): Likewise.
* sysdeps/i386/strlen.c (strlen): Likewise.
* sysdeps/i386/strpbrk.S (strpbrk): Likewise.
* sysdeps/i386/strrchr.S (strrchr): Likewise.
* sysdeps/i386/strspn.S (strspn): Likewise.
* sysdeps/ia64/memchr.S (memchr): Likewise.
* sysdeps/ia64/memcpy.S (memcpy): Likewise.
* sysdeps/ia64/memmove.S (memmove): Likewise.
* sysdeps/ia64/memset.S (memset): Likewise.
* sysdeps/ia64/strcat.S (strcat): Likewise.
* sysdeps/ia64/strchr.S (strchr): Likewise.
* sysdeps/ia64/strcmp.S (strcmp): Likewise.
* sysdeps/ia64/strcpy.S (strcpy): Likewise.
* sysdeps/ia64/strlen.S (strlen): Likewise.
* sysdeps/ia64/strncmp.S (strncmp): Likewise.
* sysdeps/ia64/strncpy.S (strncpy): Likewise.
* sysdeps/m68k/memchr.S (memchr): Likewise.
* sysdeps/m68k/strchr.S (strchr): Likewise.
* sysdeps/mips/mips64/memcpy.S (memcpy): Likewise.
* sysdeps/mips/mips64/memset.S (memset): Likewise.
* sysdeps/mips/memcpy.S (memcpy): Likewise.
* sysdeps/mips/memset.S (memset): Likewise.
* sysdeps/powerpc/powerpc32/memset.S (memset): Likewise.
* sysdeps/powerpc/powerpc32/strchr.S (strchr): Likewise.
* sysdeps/powerpc/powerpc32/strcmp.S (strcmp): Likewise.
* sysdeps/powerpc/powerpc32/strcpy.S (strcpy): Likewise.
* sysdeps/powerpc/powerpc32/strlen.S (strlen): Likewise.
* sysdeps/powerpc/powerpc64/memcpy.S (memcpy): Likewise.
* sysdeps/powerpc/powerpc64/memset.S (memset): Likewise.
* sysdeps/powerpc/powerpc64/strchr.S (strchr): Likewise.
* sysdeps/powerpc/powerpc64/strcmp.S (strcmp): Likewise.
* sysdeps/powerpc/powerpc64/strcpy.S (strcpy): Likewise.
* sysdeps/powerpc/powerpc64/strlen.S (strlen): Likewise.
* sysdeps/powerpc/strcat.c (strcat): Likewise.
* sysdeps/sparc/sparc32/memchr.S (memchr): Likewise.
* sysdeps/sparc/sparc32/memcpy.S (memcpy): Likewise.
* sysdeps/sparc/sparc32/memset.S (memset): Likewise.
* sysdeps/sparc/sparc32/strcat.S (strcat): Likewise.
* sysdeps/sparc/sparc32/strchr.S (strchr, strrchr): Likewise.
* sysdeps/sparc/sparc32/strcmp.S (strcmp): Likewise.
* sysdeps/sparc/sparc32/strcpy.S (strcpy): Likewise.
* sysdeps/sparc/sparc32/strlen.S (strlen): Likewise.
* sysdeps/sparc/sparc64/sparcv9b/memcpy.S (memcpy, memmove): Likewise.
* sysdeps/sparc/sparc64/memchr.S (memchr): Likewise.
* sysdeps/sparc/sparc64/memcpy.S (memcpy, memmove): Likewise.
* sysdeps/sparc/sparc64/memset.S (memset): Likewise.
* sysdeps/sparc/sparc64/strcat.S (strcat): Likewise.
* sysdeps/sparc/sparc64/strchr.S (strchr, strrchr): Likewise.
* sysdeps/sparc/sparc64/strcmp.S (strcmp): Likewise.
* sysdeps/sparc/sparc64/strcpy.S (strcpy): Likewise.
* sysdeps/sparc/sparc64/strcspn.S (strcspn): Likewise.
* sysdeps/sparc/sparc64/strlen.S (strlen): Likewise.
* sysdeps/sparc/sparc64/strncmp.S (strncmp): Likewise.
* sysdeps/sparc/sparc64/strncpy.S (strncpy): Likewise.
* sysdeps/sparc/sparc64/strpbrk.S (strpbrk): Likewise.
* sysdeps/sparc/sparc64/strspn.S (strspn): Likewise.
* sysdeps/sh/memcpy.S (memcpy): Likewise.
* sysdeps/sh/memset.S (memset): Likewise.
* sysdeps/sh/strlen.S (strlen): Likewise.
* sysdeps/s390/s390-32/memchr.S (memchr): Likewise.
* sysdeps/s390/s390-32/memcpy.S (memcpy): Likewise.
* sysdeps/s390/s390-32/memset.S (memset): Likewise.
* sysdeps/s390/s390-32/strcmp.S (strcmp): Likewise.
* sysdeps/s390/s390-32/strcpy.S (strcpy): Likewise.
* sysdeps/s390/s390-32/strncpy.S (strncpy): Likewise.
* sysdeps/s390/s390-64/memchr.S (memchr): Likewise.
* sysdeps/s390/s390-64/memcpy.S (memcpy): Likewise.
* sysdeps/s390/s390-64/memset.S (memset): Likewise.
* sysdeps/s390/s390-64/strcmp.S (strcmp): Likewise.
* sysdeps/s390/s390-64/strcpy.S (strcpy): Likewise.
* sysdeps/s390/s390-64/strncpy.S (strncpy): Likewise.
* sysdeps/x86_64/memcpy.S (memcpy): Likewise.
* sysdeps/x86_64/memset.S (memset): Likewise.
* sysdeps/x86_64/strcat.S (strcat): Likewise.
* sysdeps/x86_64/strchr.S (strchr): Likewise.
* sysdeps/x86_64/strcmp.S (strcmp): Likewise.
* sysdeps/x86_64/strcpy.S (strcpy): Likewise.
* sysdeps/x86_64/strcspn.S (strcspn): Likewise.
* sysdeps/x86_64/strlen.S (strlen): Likewise.
* sysdeps/x86_64/strspn.S (strspn): Likewise.
* string/string-inlines.c: Move...
* sysdeps/generic/string-inlines.c: ...here.
(__memcpy_g, __strchr_g): Remove.
(__NO_INLINE__): Define before including <string.h>,
undefine after. Include bits/string.h and bits/string2.h.
* sysdeps/i386/i486/string-inlines.c: New file.
* sysdeps/i386/string-inlines.c: New file.
* sysdeps/i386/i486/Versions: Remove.
All GLIBC_2.1.1 symbols moved...
* sysdeps/i386/Versions (libc): ...here.
2003-04-29 Ulrich Drepper <drepper@redhat.com>
2003-04-29 22:49:58 +00:00
else
cat > conftest.c <<\EOF
extern char *strstr (const char *, const char *) __asm ("my_strstr");
char *foo (const char *a, const char *b)
{
return __builtin_strstr (a, b);
}
EOF
2017-03-12 20:16:18 +00:00
if { ac_try='${CC-cc} -O3 -S conftest.c -o - | grep -F "my_strstr" > /dev/null'
2010-07-10 02:25:39 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
Update.
* sysdeps/i386/fpu/ftestexcept.c: Also check SSE status word.
* include/signal.h: Use libc_hidden_proto for sigaddset and sigdelset.
* signal/sigaddset.c: Add libc_hidden_def.
* signal/sigdelset.c: Likewise.
2003-04-29 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/i486/string-inlines.c (__memcpy_g, __strchr_g): Move
to the end of the file.
* configure.in: Change __oline__ to $LINENO.
(HAVE_BUILTIN_REDIRECTION): New check.
* config.h.in (HAVE_BUILTIN_REDIRECTION): Add.
* include/libc-symbols.h (libc_hidden_builtin_proto,
libc_hidden_builtin_def, libc_hidden_builtin_weak,
libc_hidden_builtin_ver): Define.
* include/string.h (memchr, memcpy, memmove, memset, strcat, strchr,
strcmp, strcpy, strcspn, strlen, strncmp, strncpy, strpbrk, strrchr,
strspn, strstr): Add libc_hidden_builtin_proto.
* intl/plural.y: Include string.h.
* sysdeps/alpha/alphaev6/memchr.S (memchr): Add
libc_hidden_builtin_def.
* sysdeps/alpha/alphaev6/memcpy.S (memcpy): Likewise.
* sysdeps/alpha/alphaev6/memset.S (memset): Likewise.
* sysdeps/alpha/alphaev67/strcat.S (strcat): Likewise.
* sysdeps/alpha/alphaev67/strchr.S (strchr): Likewise.
* sysdeps/alpha/alphaev67/strlen.S (strlen): Likewise.
* sysdeps/alpha/alphaev67/strrchr.S (strrchr): Likewise.
* sysdeps/alpha/memchr.S (memchr): Likewise.
* sysdeps/alpha/memset.S (memset): Likewise.
* sysdeps/alpha/strcat.S (strcat): Likewise.
* sysdeps/alpha/strchr.S (strchr): Likewise.
* sysdeps/alpha/strcmp.S (strcmp): Likewise.
* sysdeps/alpha/strcpy.S (strcpy): Likewise.
* sysdeps/alpha/strlen.S (strlen): Likewise.
* sysdeps/alpha/strncmp.S (strncmp): Likewise.
* sysdeps/alpha/strncpy.S (strncpy): Likewise.
* sysdeps/alpha/strrchr.S (strrchr): Likewise.
* sysdeps/arm/memset.S (memset): Likewise.
* sysdeps/arm/strlen.S (strlen): Likewise.
* sysdeps/generic/memchr.c (memchr): Likewise.
* sysdeps/generic/memcpy.c (memcpy): Likewise.
* sysdeps/generic/memmove.c (memmove): Likewise.
* sysdeps/generic/memset.c (memset): Likewise.
* sysdeps/generic/strcat.c (strcat): Likewise.
* sysdeps/generic/strchr.c (strchr): Likewise.
* sysdeps/generic/strcmp.c (strcmp): Likewise.
* sysdeps/generic/strcpy.c (strcpy): Likewise.
* sysdeps/generic/strcspn.c (strcspn): Likewise.
* sysdeps/generic/strlen.c (strlen): Likewise.
* sysdeps/generic/strncmp.c (strncmp): Likewise.
* sysdeps/generic/strncpy.c (strncpy): Likewise.
* sysdeps/generic/strpbrk.c (strpbrk): Likewise.
* sysdeps/generic/strrchr.c (strrchr): Likewise.
* sysdeps/generic/strspn.c (strspn): Likewise.
* sysdeps/generic/strstr.c (strstr): Likewise.
* sysdeps/i386/i486/strcat.S (strcat): Likewise.
* sysdeps/i386/i486/strlen.S (strlen): Likewise.
* sysdeps/i386/i586/memcpy.S (memcpy): Likewise.
* sysdeps/i386/i586/memset.S (memset): Likewise.
* sysdeps/i386/i586/strchr.S (strchr): Likewise.
* sysdeps/i386/i586/strcpy.S (strcpy): Likewise.
* sysdeps/i386/i586/strlen.S (strlen): Likewise.
* sysdeps/i386/i686/memcpy.S (memcpy): Likewise.
* sysdeps/i386/i686/memmove.S (memmove): Likewise.
* sysdeps/i386/i686/memset.S (memset): Likewise.
* sysdeps/i386/i686/strcmp.S (strcmp): Likewise.
* sysdeps/i386/memchr.S (memchr): Likewise.
* sysdeps/i386/memset.c (memset): Likewise.
* sysdeps/i386/strchr.S (strchr): Likewise.
* sysdeps/i386/strcspn.S (strcspn): Likewise.
* sysdeps/i386/strlen.c (strlen): Likewise.
* sysdeps/i386/strpbrk.S (strpbrk): Likewise.
* sysdeps/i386/strrchr.S (strrchr): Likewise.
* sysdeps/i386/strspn.S (strspn): Likewise.
* sysdeps/ia64/memchr.S (memchr): Likewise.
* sysdeps/ia64/memcpy.S (memcpy): Likewise.
* sysdeps/ia64/memmove.S (memmove): Likewise.
* sysdeps/ia64/memset.S (memset): Likewise.
* sysdeps/ia64/strcat.S (strcat): Likewise.
* sysdeps/ia64/strchr.S (strchr): Likewise.
* sysdeps/ia64/strcmp.S (strcmp): Likewise.
* sysdeps/ia64/strcpy.S (strcpy): Likewise.
* sysdeps/ia64/strlen.S (strlen): Likewise.
* sysdeps/ia64/strncmp.S (strncmp): Likewise.
* sysdeps/ia64/strncpy.S (strncpy): Likewise.
* sysdeps/m68k/memchr.S (memchr): Likewise.
* sysdeps/m68k/strchr.S (strchr): Likewise.
* sysdeps/mips/mips64/memcpy.S (memcpy): Likewise.
* sysdeps/mips/mips64/memset.S (memset): Likewise.
* sysdeps/mips/memcpy.S (memcpy): Likewise.
* sysdeps/mips/memset.S (memset): Likewise.
* sysdeps/powerpc/powerpc32/memset.S (memset): Likewise.
* sysdeps/powerpc/powerpc32/strchr.S (strchr): Likewise.
* sysdeps/powerpc/powerpc32/strcmp.S (strcmp): Likewise.
* sysdeps/powerpc/powerpc32/strcpy.S (strcpy): Likewise.
* sysdeps/powerpc/powerpc32/strlen.S (strlen): Likewise.
* sysdeps/powerpc/powerpc64/memcpy.S (memcpy): Likewise.
* sysdeps/powerpc/powerpc64/memset.S (memset): Likewise.
* sysdeps/powerpc/powerpc64/strchr.S (strchr): Likewise.
* sysdeps/powerpc/powerpc64/strcmp.S (strcmp): Likewise.
* sysdeps/powerpc/powerpc64/strcpy.S (strcpy): Likewise.
* sysdeps/powerpc/powerpc64/strlen.S (strlen): Likewise.
* sysdeps/powerpc/strcat.c (strcat): Likewise.
* sysdeps/sparc/sparc32/memchr.S (memchr): Likewise.
* sysdeps/sparc/sparc32/memcpy.S (memcpy): Likewise.
* sysdeps/sparc/sparc32/memset.S (memset): Likewise.
* sysdeps/sparc/sparc32/strcat.S (strcat): Likewise.
* sysdeps/sparc/sparc32/strchr.S (strchr, strrchr): Likewise.
* sysdeps/sparc/sparc32/strcmp.S (strcmp): Likewise.
* sysdeps/sparc/sparc32/strcpy.S (strcpy): Likewise.
* sysdeps/sparc/sparc32/strlen.S (strlen): Likewise.
* sysdeps/sparc/sparc64/sparcv9b/memcpy.S (memcpy, memmove): Likewise.
* sysdeps/sparc/sparc64/memchr.S (memchr): Likewise.
* sysdeps/sparc/sparc64/memcpy.S (memcpy, memmove): Likewise.
* sysdeps/sparc/sparc64/memset.S (memset): Likewise.
* sysdeps/sparc/sparc64/strcat.S (strcat): Likewise.
* sysdeps/sparc/sparc64/strchr.S (strchr, strrchr): Likewise.
* sysdeps/sparc/sparc64/strcmp.S (strcmp): Likewise.
* sysdeps/sparc/sparc64/strcpy.S (strcpy): Likewise.
* sysdeps/sparc/sparc64/strcspn.S (strcspn): Likewise.
* sysdeps/sparc/sparc64/strlen.S (strlen): Likewise.
* sysdeps/sparc/sparc64/strncmp.S (strncmp): Likewise.
* sysdeps/sparc/sparc64/strncpy.S (strncpy): Likewise.
* sysdeps/sparc/sparc64/strpbrk.S (strpbrk): Likewise.
* sysdeps/sparc/sparc64/strspn.S (strspn): Likewise.
* sysdeps/sh/memcpy.S (memcpy): Likewise.
* sysdeps/sh/memset.S (memset): Likewise.
* sysdeps/sh/strlen.S (strlen): Likewise.
* sysdeps/s390/s390-32/memchr.S (memchr): Likewise.
* sysdeps/s390/s390-32/memcpy.S (memcpy): Likewise.
* sysdeps/s390/s390-32/memset.S (memset): Likewise.
* sysdeps/s390/s390-32/strcmp.S (strcmp): Likewise.
* sysdeps/s390/s390-32/strcpy.S (strcpy): Likewise.
* sysdeps/s390/s390-32/strncpy.S (strncpy): Likewise.
* sysdeps/s390/s390-64/memchr.S (memchr): Likewise.
* sysdeps/s390/s390-64/memcpy.S (memcpy): Likewise.
* sysdeps/s390/s390-64/memset.S (memset): Likewise.
* sysdeps/s390/s390-64/strcmp.S (strcmp): Likewise.
* sysdeps/s390/s390-64/strcpy.S (strcpy): Likewise.
* sysdeps/s390/s390-64/strncpy.S (strncpy): Likewise.
* sysdeps/x86_64/memcpy.S (memcpy): Likewise.
* sysdeps/x86_64/memset.S (memset): Likewise.
* sysdeps/x86_64/strcat.S (strcat): Likewise.
* sysdeps/x86_64/strchr.S (strchr): Likewise.
* sysdeps/x86_64/strcmp.S (strcmp): Likewise.
* sysdeps/x86_64/strcpy.S (strcpy): Likewise.
* sysdeps/x86_64/strcspn.S (strcspn): Likewise.
* sysdeps/x86_64/strlen.S (strlen): Likewise.
* sysdeps/x86_64/strspn.S (strspn): Likewise.
* string/string-inlines.c: Move...
* sysdeps/generic/string-inlines.c: ...here.
(__memcpy_g, __strchr_g): Remove.
(__NO_INLINE__): Define before including <string.h>,
undefine after. Include bits/string.h and bits/string2.h.
* sysdeps/i386/i486/string-inlines.c: New file.
* sysdeps/i386/string-inlines.c: New file.
* sysdeps/i386/i486/Versions: Remove.
All GLIBC_2.1.1 symbols moved...
* sysdeps/i386/Versions (libc): ...here.
2003-04-29 Ulrich Drepper <drepper@redhat.com>
2003-04-29 22:49:58 +00:00
(eval $ac_try) 2>&5
ac_status=$?
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; };
Update.
* sysdeps/i386/fpu/ftestexcept.c: Also check SSE status word.
* include/signal.h: Use libc_hidden_proto for sigaddset and sigdelset.
* signal/sigaddset.c: Add libc_hidden_def.
* signal/sigdelset.c: Likewise.
2003-04-29 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/i486/string-inlines.c (__memcpy_g, __strchr_g): Move
to the end of the file.
* configure.in: Change __oline__ to $LINENO.
(HAVE_BUILTIN_REDIRECTION): New check.
* config.h.in (HAVE_BUILTIN_REDIRECTION): Add.
* include/libc-symbols.h (libc_hidden_builtin_proto,
libc_hidden_builtin_def, libc_hidden_builtin_weak,
libc_hidden_builtin_ver): Define.
* include/string.h (memchr, memcpy, memmove, memset, strcat, strchr,
strcmp, strcpy, strcspn, strlen, strncmp, strncpy, strpbrk, strrchr,
strspn, strstr): Add libc_hidden_builtin_proto.
* intl/plural.y: Include string.h.
* sysdeps/alpha/alphaev6/memchr.S (memchr): Add
libc_hidden_builtin_def.
* sysdeps/alpha/alphaev6/memcpy.S (memcpy): Likewise.
* sysdeps/alpha/alphaev6/memset.S (memset): Likewise.
* sysdeps/alpha/alphaev67/strcat.S (strcat): Likewise.
* sysdeps/alpha/alphaev67/strchr.S (strchr): Likewise.
* sysdeps/alpha/alphaev67/strlen.S (strlen): Likewise.
* sysdeps/alpha/alphaev67/strrchr.S (strrchr): Likewise.
* sysdeps/alpha/memchr.S (memchr): Likewise.
* sysdeps/alpha/memset.S (memset): Likewise.
* sysdeps/alpha/strcat.S (strcat): Likewise.
* sysdeps/alpha/strchr.S (strchr): Likewise.
* sysdeps/alpha/strcmp.S (strcmp): Likewise.
* sysdeps/alpha/strcpy.S (strcpy): Likewise.
* sysdeps/alpha/strlen.S (strlen): Likewise.
* sysdeps/alpha/strncmp.S (strncmp): Likewise.
* sysdeps/alpha/strncpy.S (strncpy): Likewise.
* sysdeps/alpha/strrchr.S (strrchr): Likewise.
* sysdeps/arm/memset.S (memset): Likewise.
* sysdeps/arm/strlen.S (strlen): Likewise.
* sysdeps/generic/memchr.c (memchr): Likewise.
* sysdeps/generic/memcpy.c (memcpy): Likewise.
* sysdeps/generic/memmove.c (memmove): Likewise.
* sysdeps/generic/memset.c (memset): Likewise.
* sysdeps/generic/strcat.c (strcat): Likewise.
* sysdeps/generic/strchr.c (strchr): Likewise.
* sysdeps/generic/strcmp.c (strcmp): Likewise.
* sysdeps/generic/strcpy.c (strcpy): Likewise.
* sysdeps/generic/strcspn.c (strcspn): Likewise.
* sysdeps/generic/strlen.c (strlen): Likewise.
* sysdeps/generic/strncmp.c (strncmp): Likewise.
* sysdeps/generic/strncpy.c (strncpy): Likewise.
* sysdeps/generic/strpbrk.c (strpbrk): Likewise.
* sysdeps/generic/strrchr.c (strrchr): Likewise.
* sysdeps/generic/strspn.c (strspn): Likewise.
* sysdeps/generic/strstr.c (strstr): Likewise.
* sysdeps/i386/i486/strcat.S (strcat): Likewise.
* sysdeps/i386/i486/strlen.S (strlen): Likewise.
* sysdeps/i386/i586/memcpy.S (memcpy): Likewise.
* sysdeps/i386/i586/memset.S (memset): Likewise.
* sysdeps/i386/i586/strchr.S (strchr): Likewise.
* sysdeps/i386/i586/strcpy.S (strcpy): Likewise.
* sysdeps/i386/i586/strlen.S (strlen): Likewise.
* sysdeps/i386/i686/memcpy.S (memcpy): Likewise.
* sysdeps/i386/i686/memmove.S (memmove): Likewise.
* sysdeps/i386/i686/memset.S (memset): Likewise.
* sysdeps/i386/i686/strcmp.S (strcmp): Likewise.
* sysdeps/i386/memchr.S (memchr): Likewise.
* sysdeps/i386/memset.c (memset): Likewise.
* sysdeps/i386/strchr.S (strchr): Likewise.
* sysdeps/i386/strcspn.S (strcspn): Likewise.
* sysdeps/i386/strlen.c (strlen): Likewise.
* sysdeps/i386/strpbrk.S (strpbrk): Likewise.
* sysdeps/i386/strrchr.S (strrchr): Likewise.
* sysdeps/i386/strspn.S (strspn): Likewise.
* sysdeps/ia64/memchr.S (memchr): Likewise.
* sysdeps/ia64/memcpy.S (memcpy): Likewise.
* sysdeps/ia64/memmove.S (memmove): Likewise.
* sysdeps/ia64/memset.S (memset): Likewise.
* sysdeps/ia64/strcat.S (strcat): Likewise.
* sysdeps/ia64/strchr.S (strchr): Likewise.
* sysdeps/ia64/strcmp.S (strcmp): Likewise.
* sysdeps/ia64/strcpy.S (strcpy): Likewise.
* sysdeps/ia64/strlen.S (strlen): Likewise.
* sysdeps/ia64/strncmp.S (strncmp): Likewise.
* sysdeps/ia64/strncpy.S (strncpy): Likewise.
* sysdeps/m68k/memchr.S (memchr): Likewise.
* sysdeps/m68k/strchr.S (strchr): Likewise.
* sysdeps/mips/mips64/memcpy.S (memcpy): Likewise.
* sysdeps/mips/mips64/memset.S (memset): Likewise.
* sysdeps/mips/memcpy.S (memcpy): Likewise.
* sysdeps/mips/memset.S (memset): Likewise.
* sysdeps/powerpc/powerpc32/memset.S (memset): Likewise.
* sysdeps/powerpc/powerpc32/strchr.S (strchr): Likewise.
* sysdeps/powerpc/powerpc32/strcmp.S (strcmp): Likewise.
* sysdeps/powerpc/powerpc32/strcpy.S (strcpy): Likewise.
* sysdeps/powerpc/powerpc32/strlen.S (strlen): Likewise.
* sysdeps/powerpc/powerpc64/memcpy.S (memcpy): Likewise.
* sysdeps/powerpc/powerpc64/memset.S (memset): Likewise.
* sysdeps/powerpc/powerpc64/strchr.S (strchr): Likewise.
* sysdeps/powerpc/powerpc64/strcmp.S (strcmp): Likewise.
* sysdeps/powerpc/powerpc64/strcpy.S (strcpy): Likewise.
* sysdeps/powerpc/powerpc64/strlen.S (strlen): Likewise.
* sysdeps/powerpc/strcat.c (strcat): Likewise.
* sysdeps/sparc/sparc32/memchr.S (memchr): Likewise.
* sysdeps/sparc/sparc32/memcpy.S (memcpy): Likewise.
* sysdeps/sparc/sparc32/memset.S (memset): Likewise.
* sysdeps/sparc/sparc32/strcat.S (strcat): Likewise.
* sysdeps/sparc/sparc32/strchr.S (strchr, strrchr): Likewise.
* sysdeps/sparc/sparc32/strcmp.S (strcmp): Likewise.
* sysdeps/sparc/sparc32/strcpy.S (strcpy): Likewise.
* sysdeps/sparc/sparc32/strlen.S (strlen): Likewise.
* sysdeps/sparc/sparc64/sparcv9b/memcpy.S (memcpy, memmove): Likewise.
* sysdeps/sparc/sparc64/memchr.S (memchr): Likewise.
* sysdeps/sparc/sparc64/memcpy.S (memcpy, memmove): Likewise.
* sysdeps/sparc/sparc64/memset.S (memset): Likewise.
* sysdeps/sparc/sparc64/strcat.S (strcat): Likewise.
* sysdeps/sparc/sparc64/strchr.S (strchr, strrchr): Likewise.
* sysdeps/sparc/sparc64/strcmp.S (strcmp): Likewise.
* sysdeps/sparc/sparc64/strcpy.S (strcpy): Likewise.
* sysdeps/sparc/sparc64/strcspn.S (strcspn): Likewise.
* sysdeps/sparc/sparc64/strlen.S (strlen): Likewise.
* sysdeps/sparc/sparc64/strncmp.S (strncmp): Likewise.
* sysdeps/sparc/sparc64/strncpy.S (strncpy): Likewise.
* sysdeps/sparc/sparc64/strpbrk.S (strpbrk): Likewise.
* sysdeps/sparc/sparc64/strspn.S (strspn): Likewise.
* sysdeps/sh/memcpy.S (memcpy): Likewise.
* sysdeps/sh/memset.S (memset): Likewise.
* sysdeps/sh/strlen.S (strlen): Likewise.
* sysdeps/s390/s390-32/memchr.S (memchr): Likewise.
* sysdeps/s390/s390-32/memcpy.S (memcpy): Likewise.
* sysdeps/s390/s390-32/memset.S (memset): Likewise.
* sysdeps/s390/s390-32/strcmp.S (strcmp): Likewise.
* sysdeps/s390/s390-32/strcpy.S (strcpy): Likewise.
* sysdeps/s390/s390-32/strncpy.S (strncpy): Likewise.
* sysdeps/s390/s390-64/memchr.S (memchr): Likewise.
* sysdeps/s390/s390-64/memcpy.S (memcpy): Likewise.
* sysdeps/s390/s390-64/memset.S (memset): Likewise.
* sysdeps/s390/s390-64/strcmp.S (strcmp): Likewise.
* sysdeps/s390/s390-64/strcpy.S (strcpy): Likewise.
* sysdeps/s390/s390-64/strncpy.S (strncpy): Likewise.
* sysdeps/x86_64/memcpy.S (memcpy): Likewise.
* sysdeps/x86_64/memset.S (memset): Likewise.
* sysdeps/x86_64/strcat.S (strcat): Likewise.
* sysdeps/x86_64/strchr.S (strchr): Likewise.
* sysdeps/x86_64/strcmp.S (strcmp): Likewise.
* sysdeps/x86_64/strcpy.S (strcpy): Likewise.
* sysdeps/x86_64/strcspn.S (strcspn): Likewise.
* sysdeps/x86_64/strlen.S (strlen): Likewise.
* sysdeps/x86_64/strspn.S (strspn): Likewise.
* string/string-inlines.c: Move...
* sysdeps/generic/string-inlines.c: ...here.
(__memcpy_g, __strchr_g): Remove.
(__NO_INLINE__): Define before including <string.h>,
undefine after. Include bits/string.h and bits/string2.h.
* sysdeps/i386/i486/string-inlines.c: New file.
* sysdeps/i386/string-inlines.c: New file.
* sysdeps/i386/i486/Versions: Remove.
All GLIBC_2.1.1 symbols moved...
* sysdeps/i386/Versions (libc): ...here.
2003-04-29 Ulrich Drepper <drepper@redhat.com>
2003-04-29 22:49:58 +00:00
then
libc_cv_gcc_builtin_redirection=yes
else
libc_cv_gcc_builtin_redirection=no
fi
rm -f conftest*
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_builtin_redirection" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_gcc_builtin_redirection" >&6; }
2011-09-10 18:34:15 +00:00
if test "$libc_cv_gcc_builtin_redirection" = no; then
as_fn_error $? "support for the symbol redirection needed" "$LINENO" 5
Update.
* sysdeps/i386/fpu/ftestexcept.c: Also check SSE status word.
* include/signal.h: Use libc_hidden_proto for sigaddset and sigdelset.
* signal/sigaddset.c: Add libc_hidden_def.
* signal/sigdelset.c: Likewise.
2003-04-29 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/i486/string-inlines.c (__memcpy_g, __strchr_g): Move
to the end of the file.
* configure.in: Change __oline__ to $LINENO.
(HAVE_BUILTIN_REDIRECTION): New check.
* config.h.in (HAVE_BUILTIN_REDIRECTION): Add.
* include/libc-symbols.h (libc_hidden_builtin_proto,
libc_hidden_builtin_def, libc_hidden_builtin_weak,
libc_hidden_builtin_ver): Define.
* include/string.h (memchr, memcpy, memmove, memset, strcat, strchr,
strcmp, strcpy, strcspn, strlen, strncmp, strncpy, strpbrk, strrchr,
strspn, strstr): Add libc_hidden_builtin_proto.
* intl/plural.y: Include string.h.
* sysdeps/alpha/alphaev6/memchr.S (memchr): Add
libc_hidden_builtin_def.
* sysdeps/alpha/alphaev6/memcpy.S (memcpy): Likewise.
* sysdeps/alpha/alphaev6/memset.S (memset): Likewise.
* sysdeps/alpha/alphaev67/strcat.S (strcat): Likewise.
* sysdeps/alpha/alphaev67/strchr.S (strchr): Likewise.
* sysdeps/alpha/alphaev67/strlen.S (strlen): Likewise.
* sysdeps/alpha/alphaev67/strrchr.S (strrchr): Likewise.
* sysdeps/alpha/memchr.S (memchr): Likewise.
* sysdeps/alpha/memset.S (memset): Likewise.
* sysdeps/alpha/strcat.S (strcat): Likewise.
* sysdeps/alpha/strchr.S (strchr): Likewise.
* sysdeps/alpha/strcmp.S (strcmp): Likewise.
* sysdeps/alpha/strcpy.S (strcpy): Likewise.
* sysdeps/alpha/strlen.S (strlen): Likewise.
* sysdeps/alpha/strncmp.S (strncmp): Likewise.
* sysdeps/alpha/strncpy.S (strncpy): Likewise.
* sysdeps/alpha/strrchr.S (strrchr): Likewise.
* sysdeps/arm/memset.S (memset): Likewise.
* sysdeps/arm/strlen.S (strlen): Likewise.
* sysdeps/generic/memchr.c (memchr): Likewise.
* sysdeps/generic/memcpy.c (memcpy): Likewise.
* sysdeps/generic/memmove.c (memmove): Likewise.
* sysdeps/generic/memset.c (memset): Likewise.
* sysdeps/generic/strcat.c (strcat): Likewise.
* sysdeps/generic/strchr.c (strchr): Likewise.
* sysdeps/generic/strcmp.c (strcmp): Likewise.
* sysdeps/generic/strcpy.c (strcpy): Likewise.
* sysdeps/generic/strcspn.c (strcspn): Likewise.
* sysdeps/generic/strlen.c (strlen): Likewise.
* sysdeps/generic/strncmp.c (strncmp): Likewise.
* sysdeps/generic/strncpy.c (strncpy): Likewise.
* sysdeps/generic/strpbrk.c (strpbrk): Likewise.
* sysdeps/generic/strrchr.c (strrchr): Likewise.
* sysdeps/generic/strspn.c (strspn): Likewise.
* sysdeps/generic/strstr.c (strstr): Likewise.
* sysdeps/i386/i486/strcat.S (strcat): Likewise.
* sysdeps/i386/i486/strlen.S (strlen): Likewise.
* sysdeps/i386/i586/memcpy.S (memcpy): Likewise.
* sysdeps/i386/i586/memset.S (memset): Likewise.
* sysdeps/i386/i586/strchr.S (strchr): Likewise.
* sysdeps/i386/i586/strcpy.S (strcpy): Likewise.
* sysdeps/i386/i586/strlen.S (strlen): Likewise.
* sysdeps/i386/i686/memcpy.S (memcpy): Likewise.
* sysdeps/i386/i686/memmove.S (memmove): Likewise.
* sysdeps/i386/i686/memset.S (memset): Likewise.
* sysdeps/i386/i686/strcmp.S (strcmp): Likewise.
* sysdeps/i386/memchr.S (memchr): Likewise.
* sysdeps/i386/memset.c (memset): Likewise.
* sysdeps/i386/strchr.S (strchr): Likewise.
* sysdeps/i386/strcspn.S (strcspn): Likewise.
* sysdeps/i386/strlen.c (strlen): Likewise.
* sysdeps/i386/strpbrk.S (strpbrk): Likewise.
* sysdeps/i386/strrchr.S (strrchr): Likewise.
* sysdeps/i386/strspn.S (strspn): Likewise.
* sysdeps/ia64/memchr.S (memchr): Likewise.
* sysdeps/ia64/memcpy.S (memcpy): Likewise.
* sysdeps/ia64/memmove.S (memmove): Likewise.
* sysdeps/ia64/memset.S (memset): Likewise.
* sysdeps/ia64/strcat.S (strcat): Likewise.
* sysdeps/ia64/strchr.S (strchr): Likewise.
* sysdeps/ia64/strcmp.S (strcmp): Likewise.
* sysdeps/ia64/strcpy.S (strcpy): Likewise.
* sysdeps/ia64/strlen.S (strlen): Likewise.
* sysdeps/ia64/strncmp.S (strncmp): Likewise.
* sysdeps/ia64/strncpy.S (strncpy): Likewise.
* sysdeps/m68k/memchr.S (memchr): Likewise.
* sysdeps/m68k/strchr.S (strchr): Likewise.
* sysdeps/mips/mips64/memcpy.S (memcpy): Likewise.
* sysdeps/mips/mips64/memset.S (memset): Likewise.
* sysdeps/mips/memcpy.S (memcpy): Likewise.
* sysdeps/mips/memset.S (memset): Likewise.
* sysdeps/powerpc/powerpc32/memset.S (memset): Likewise.
* sysdeps/powerpc/powerpc32/strchr.S (strchr): Likewise.
* sysdeps/powerpc/powerpc32/strcmp.S (strcmp): Likewise.
* sysdeps/powerpc/powerpc32/strcpy.S (strcpy): Likewise.
* sysdeps/powerpc/powerpc32/strlen.S (strlen): Likewise.
* sysdeps/powerpc/powerpc64/memcpy.S (memcpy): Likewise.
* sysdeps/powerpc/powerpc64/memset.S (memset): Likewise.
* sysdeps/powerpc/powerpc64/strchr.S (strchr): Likewise.
* sysdeps/powerpc/powerpc64/strcmp.S (strcmp): Likewise.
* sysdeps/powerpc/powerpc64/strcpy.S (strcpy): Likewise.
* sysdeps/powerpc/powerpc64/strlen.S (strlen): Likewise.
* sysdeps/powerpc/strcat.c (strcat): Likewise.
* sysdeps/sparc/sparc32/memchr.S (memchr): Likewise.
* sysdeps/sparc/sparc32/memcpy.S (memcpy): Likewise.
* sysdeps/sparc/sparc32/memset.S (memset): Likewise.
* sysdeps/sparc/sparc32/strcat.S (strcat): Likewise.
* sysdeps/sparc/sparc32/strchr.S (strchr, strrchr): Likewise.
* sysdeps/sparc/sparc32/strcmp.S (strcmp): Likewise.
* sysdeps/sparc/sparc32/strcpy.S (strcpy): Likewise.
* sysdeps/sparc/sparc32/strlen.S (strlen): Likewise.
* sysdeps/sparc/sparc64/sparcv9b/memcpy.S (memcpy, memmove): Likewise.
* sysdeps/sparc/sparc64/memchr.S (memchr): Likewise.
* sysdeps/sparc/sparc64/memcpy.S (memcpy, memmove): Likewise.
* sysdeps/sparc/sparc64/memset.S (memset): Likewise.
* sysdeps/sparc/sparc64/strcat.S (strcat): Likewise.
* sysdeps/sparc/sparc64/strchr.S (strchr, strrchr): Likewise.
* sysdeps/sparc/sparc64/strcmp.S (strcmp): Likewise.
* sysdeps/sparc/sparc64/strcpy.S (strcpy): Likewise.
* sysdeps/sparc/sparc64/strcspn.S (strcspn): Likewise.
* sysdeps/sparc/sparc64/strlen.S (strlen): Likewise.
* sysdeps/sparc/sparc64/strncmp.S (strncmp): Likewise.
* sysdeps/sparc/sparc64/strncpy.S (strncpy): Likewise.
* sysdeps/sparc/sparc64/strpbrk.S (strpbrk): Likewise.
* sysdeps/sparc/sparc64/strspn.S (strspn): Likewise.
* sysdeps/sh/memcpy.S (memcpy): Likewise.
* sysdeps/sh/memset.S (memset): Likewise.
* sysdeps/sh/strlen.S (strlen): Likewise.
* sysdeps/s390/s390-32/memchr.S (memchr): Likewise.
* sysdeps/s390/s390-32/memcpy.S (memcpy): Likewise.
* sysdeps/s390/s390-32/memset.S (memset): Likewise.
* sysdeps/s390/s390-32/strcmp.S (strcmp): Likewise.
* sysdeps/s390/s390-32/strcpy.S (strcpy): Likewise.
* sysdeps/s390/s390-32/strncpy.S (strncpy): Likewise.
* sysdeps/s390/s390-64/memchr.S (memchr): Likewise.
* sysdeps/s390/s390-64/memcpy.S (memcpy): Likewise.
* sysdeps/s390/s390-64/memset.S (memset): Likewise.
* sysdeps/s390/s390-64/strcmp.S (strcmp): Likewise.
* sysdeps/s390/s390-64/strcpy.S (strcpy): Likewise.
* sysdeps/s390/s390-64/strncpy.S (strncpy): Likewise.
* sysdeps/x86_64/memcpy.S (memcpy): Likewise.
* sysdeps/x86_64/memset.S (memset): Likewise.
* sysdeps/x86_64/strcat.S (strcat): Likewise.
* sysdeps/x86_64/strchr.S (strchr): Likewise.
* sysdeps/x86_64/strcmp.S (strcmp): Likewise.
* sysdeps/x86_64/strcpy.S (strcpy): Likewise.
* sysdeps/x86_64/strcspn.S (strcspn): Likewise.
* sysdeps/x86_64/strlen.S (strlen): Likewise.
* sysdeps/x86_64/strspn.S (strspn): Likewise.
* string/string-inlines.c: Move...
* sysdeps/generic/string-inlines.c: ...here.
(__memcpy_g, __strchr_g): Remove.
(__NO_INLINE__): Define before including <string.h>,
undefine after. Include bits/string.h and bits/string2.h.
* sysdeps/i386/i486/string-inlines.c: New file.
* sysdeps/i386/string-inlines.c: New file.
* sysdeps/i386/i486/Versions: Remove.
All GLIBC_2.1.1 symbols moved...
* sysdeps/i386/Versions (libc): ...here.
2003-04-29 Ulrich Drepper <drepper@redhat.com>
2003-04-29 22:49:58 +00:00
fi
2012-03-16 15:07:57 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler option to disable generation of FMA instructions" >&5
$as_echo_n "checking for compiler option to disable generation of FMA instructions... " >&6; }
if ${libc_cv_cc_nofma+:} false; then :
$as_echo_n "(cached) " >&6
else
libc_cv_cc_nofma=
for opt in -ffp-contract=off -mno-fused-madd; do
if { ac_try='${CC-cc} $opt -xc /dev/null -S -o /dev/null'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then :
libc_cv_cc_nofma=$opt; break
fi
done
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_nofma" >&5
$as_echo "$libc_cv_cc_nofma" >&6; }
2013-03-20 22:37:06 +00:00
2008-08-18 09:42:17 +00:00
if test -n "$submachine"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler option for CPU variant" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for compiler option for CPU variant... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_cc_submachine+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2008-08-18 09:42:17 +00:00
else
libc_cv_cc_submachine=no
for opt in "-march=$submachine" "-mcpu=$submachine"; do
if { ac_try='${CC-cc} $opt -xc /dev/null -S -o /dev/null'
2010-07-10 02:25:39 +00:00
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
2008-08-18 09:42:17 +00:00
(eval $ac_try) 2>&5
ac_status=$?
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2012-03-21 16:33:57 +00:00
test $ac_status = 0; }; }; then :
2008-08-18 09:42:17 +00:00
libc_cv_cc_submachine="$opt"
break
2012-03-21 16:33:57 +00:00
fi
2008-08-18 09:42:17 +00:00
done
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_submachine" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_cc_submachine" >&6; }
2008-08-18 09:42:17 +00:00
if test "x$libc_cv_cc_submachine" = xno; then
2010-12-25 01:14:37 +00:00
as_fn_error $? "${CC-cc} does not support $submachine" "$LINENO" 5
2008-08-18 09:42:17 +00:00
fi
fi
2013-06-21 00:40:55 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -fno-tree-loop-distribute-patterns with \
__attribute__ ((__optimize__))" >&5
$as_echo_n "checking if $CC accepts -fno-tree-loop-distribute-patterns with \
__attribute__ ((__optimize__))... " >&6; }
if ${libc_cv_cc_loop_to_function+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.c <<EOF
void
__attribute__ ((__optimize__ ("-fno-tree-loop-distribute-patterns")))
foo (void) {}
EOF
libc_cv_cc_loop_to_function=no
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
then
libc_cv_cc_loop_to_function=yes
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_loop_to_function" >&5
$as_echo "$libc_cv_cc_loop_to_function" >&6; }
if test $libc_cv_cc_loop_to_function = yes; then
$as_echo "#define HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1" >>confdefs.h
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgd" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for libgd... " >&6; }
2001-02-21 15:45:26 +00:00
if test "$with_gd" != "no"; then
old_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $libgd_include"
old_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $libgd_ldflags"
old_LIBS="$LIBS"
LIBS="$LIBS -lgd -lpng -lz -lm"
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2003-09-23 12:07:26 +00:00
/* end confdefs.h. */
1999-10-04 04:37:58 +00:00
#include <gd.h>
2002-10-17 23:48:55 +00:00
int
main ()
{
1999-10-04 04:37:58 +00:00
gdImagePng (0, 0)
2002-10-17 23:48:55 +00:00
;
return 0;
}
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_c_try_link "$LINENO"; then :
1999-10-04 04:37:58 +00:00
LIBGD=yes
else
2010-07-10 02:25:39 +00:00
LIBGD=no
1999-10-04 04:37:58 +00:00
fi
2010-07-10 02:25:39 +00:00
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
2001-02-21 15:45:26 +00:00
CFLAGS="$old_CFLAGS"
LDFLAGS="$old_LDFLAGS"
LIBS="$old_LIBS"
else
LIBGD=no
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGD" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$LIBGD" >&6; }
2002-10-17 23:48:55 +00:00
2004-09-17 00:04:18 +00:00
# SELinux detection
if test x$with_selinux = xno ; then
have_selinux=no;
else
# See if we have the SELinux library
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for is_selinux_enabled in -lselinux" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for is_selinux_enabled in -lselinux... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_lib_selinux_is_selinux_enabled+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2004-09-17 00:04:18 +00:00
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lselinux $LIBS"
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2004-09-17 00:04:18 +00:00
/* end confdefs.h. */
2007-06-08 03:17:15 +00:00
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
2004-09-17 00:04:18 +00:00
#ifdef __cplusplus
extern "C"
#endif
char is_selinux_enabled ();
int
main ()
{
2007-06-08 03:17:15 +00:00
return is_selinux_enabled ();
2004-09-17 00:04:18 +00:00
;
return 0;
}
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_c_try_link "$LINENO"; then :
2004-09-17 00:04:18 +00:00
ac_cv_lib_selinux_is_selinux_enabled=yes
else
2010-07-10 02:25:39 +00:00
ac_cv_lib_selinux_is_selinux_enabled=no
2004-09-17 00:04:18 +00:00
fi
2010-07-10 02:25:39 +00:00
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
2004-09-17 00:04:18 +00:00
LIBS=$ac_check_lib_save_LIBS
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_is_selinux_enabled" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_cv_lib_selinux_is_selinux_enabled" >&6; }
2011-09-11 16:14:48 +00:00
if test "x$ac_cv_lib_selinux_is_selinux_enabled" = xyes; then :
2004-09-17 00:04:18 +00:00
have_selinux=yes
else
have_selinux=no
fi
2004-09-23 14:07:48 +00:00
if test x$with_selinux = xyes ; then
2004-09-17 00:04:18 +00:00
if test x$have_selinux = xno ; then
2014-04-10 22:31:53 +00:00
as_fn_error $? "SELinux explicitly required, but SELinux library not found" "$LINENO" 5
2004-09-17 00:04:18 +00:00
fi
fi
fi
# Check if we're building with SELinux support.
if test "x$have_selinux" = xyes; then
2010-07-10 02:25:39 +00:00
$as_echo "#define HAVE_SELINUX 1" >>confdefs.h
2004-09-17 00:04:18 +00:00
2005-06-15 04:14:52 +00:00
# See if we have the libaudit library
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for audit_log_user_avc_message in -laudit" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for audit_log_user_avc_message in -laudit... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_lib_audit_audit_log_user_avc_message+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2005-06-15 04:14:52 +00:00
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-laudit $LIBS"
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2005-06-15 04:14:52 +00:00
/* end confdefs.h. */
2007-06-08 03:17:15 +00:00
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
2005-06-15 04:14:52 +00:00
#ifdef __cplusplus
extern "C"
#endif
2006-01-04 06:26:49 +00:00
char audit_log_user_avc_message ();
2005-06-15 04:14:52 +00:00
int
main ()
{
2007-06-08 03:17:15 +00:00
return audit_log_user_avc_message ();
2005-06-15 04:14:52 +00:00
;
return 0;
}
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_c_try_link "$LINENO"; then :
2006-01-04 06:26:49 +00:00
ac_cv_lib_audit_audit_log_user_avc_message=yes
2005-06-15 04:14:52 +00:00
else
2010-07-10 02:25:39 +00:00
ac_cv_lib_audit_audit_log_user_avc_message=no
2005-06-15 04:14:52 +00:00
fi
2010-07-10 02:25:39 +00:00
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
2005-06-15 04:14:52 +00:00
LIBS=$ac_check_lib_save_LIBS
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_audit_audit_log_user_avc_message" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_cv_lib_audit_audit_log_user_avc_message" >&6; }
2011-09-11 16:14:48 +00:00
if test "x$ac_cv_lib_audit_audit_log_user_avc_message" = xyes; then :
2005-06-15 04:14:52 +00:00
have_libaudit=yes
else
have_libaudit=no
fi
if test "x$have_libaudit" = xyes; then
2010-07-10 02:25:39 +00:00
$as_echo "#define HAVE_LIBAUDIT 1" >>confdefs.h
2005-06-15 04:14:52 +00:00
fi
2006-04-26 16:29:29 +00:00
# See if we have the libcap library
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cap_init in -lcap" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking for cap_init in -lcap... " >&6; }
2011-09-11 16:14:48 +00:00
if ${ac_cv_lib_cap_cap_init+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
2006-04-26 16:29:29 +00:00
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcap $LIBS"
2010-07-10 02:25:39 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2006-04-26 16:29:29 +00:00
/* end confdefs.h. */
2007-06-08 03:17:15 +00:00
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
2006-04-26 16:29:29 +00:00
#ifdef __cplusplus
extern "C"
#endif
char cap_init ();
int
main ()
{
2007-06-08 03:17:15 +00:00
return cap_init ();
2006-04-26 16:29:29 +00:00
;
return 0;
}
_ACEOF
2010-07-10 02:25:39 +00:00
if ac_fn_c_try_link "$LINENO"; then :
2006-04-26 16:29:29 +00:00
ac_cv_lib_cap_cap_init=yes
else
2010-07-10 02:25:39 +00:00
ac_cv_lib_cap_cap_init=no
2006-04-26 16:29:29 +00:00
fi
2010-07-10 02:25:39 +00:00
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
2006-04-26 16:29:29 +00:00
LIBS=$ac_check_lib_save_LIBS
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cap_cap_init" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_cv_lib_cap_cap_init" >&6; }
2011-09-11 16:14:48 +00:00
if test "x$ac_cv_lib_cap_cap_init" = xyes; then :
2006-04-26 16:29:29 +00:00
have_libcap=yes
else
have_libcap=no
fi
if test "x$have_libcap" = xyes; then
2010-07-10 02:25:39 +00:00
$as_echo "#define HAVE_LIBCAP 1" >>confdefs.h
2006-04-26 16:29:29 +00:00
fi
2004-09-17 00:04:18 +00:00
fi
2012-05-14 22:42:52 +00:00
CPPUNDEFS=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FORTIFY_SOURCE predefine" >&5
$as_echo_n "checking for _FORTIFY_SOURCE predefine... " >&6; }
if ${libc_cv_predef_fortify_source+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
#ifdef _FORTIFY_SOURCE
# error bogon
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
libc_cv_predef_fortify_source=no
else
libc_cv_predef_fortify_source=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_predef_fortify_source" >&5
$as_echo "$libc_cv_predef_fortify_source" >&6; }
if test $libc_cv_predef_fortify_source = yes; then
CPPUNDEFS="${CPPUNDEFS:+$CPPUNDEFS }-U_FORTIFY_SOURCE"
fi
2021-03-25 10:05:37 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the assembler requires one version per symbol" >&5
$as_echo_n "checking whether the assembler requires one version per symbol... " >&6; }
if ${libc_cv_symver_needs_alias+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.s <<EOF
.text
testfunc:
.globl testfunc
.symver testfunc, testfunc1@VERSION1
.symver testfunc, testfunc1@VERSION2
EOF
libc_cv_symver_needs_alias=no
if ${CC-cc} $ASFLAGS -c conftest.s 2>&5; then
libc_cv_symver_needs_alias=no
else
libc_cv_symver_needs_alias=yes
fi
rm conftest.*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_symver_needs_alias" >&5
$as_echo "$libc_cv_symver_needs_alias" >&6; }
if test "$libc_cv_symver_needs_alias" = yes; then
$as_echo "#define SYMVER_NEEDS_ALIAS 1" >>confdefs.h
fi
2014-07-31 20:07:19 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_trap with no external dependencies" >&5
$as_echo_n "checking for __builtin_trap with no external dependencies... " >&6; }
if ${libc_cv_builtin_trap+:} false; then :
$as_echo_n "(cached) " >&6
else
libc_cv_builtin_trap=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
__builtin_trap ()
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
libc_undefs=`$NM -u conftest.o |
LC_ALL=C $AWK '$1 == "U" { print $2 | "sort -u"; next } { exit(1) }' \
2>&5` || {
as_fn_error $? "confusing output from $NM -u" "$LINENO" 5
}
echo >&5 "libc_undefs='$libc_undefs'"
if test -z "$libc_undefs"; then
libc_cv_builtin_trap=yes
fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_builtin_trap" >&5
$as_echo "$libc_cv_builtin_trap" >&6; }
if test $libc_cv_builtin_trap = yes; then
$as_echo "#define HAVE_BUILTIN_TRAP 1" >>confdefs.h
fi
2015-10-06 19:27:55 +00:00
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler supports thread_local" >&5
$as_echo_n "checking whether the C++ compiler supports thread_local... " >&6; }
if ${libc_cv_cxx_thread_local+:} false; then :
$as_echo_n "(cached) " >&6
else
old_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -std=gnu++11"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <thread>
// Compiler support.
struct S
{
S ();
~S ();
};
thread_local S s;
S * get () { return &s; }
// libstdc++ support.
#ifndef _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL
#error __cxa_thread_atexit_impl not supported
#endif
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
libc_cv_cxx_thread_local=yes
else
libc_cv_cxx_thread_local=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CXXFLAGS="$old_CXXFLAGS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cxx_thread_local" >&5
$as_echo "$libc_cv_cxx_thread_local" >&6; }
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
1997-07-14 21:49:20 +00:00
### End of automated tests.
### Now run sysdeps configure fragments.
1998-03-29 17:03:23 +00:00
# They also can set these variables.
1999-12-04 18:05:55 +00:00
use_ldconfig=no
1998-03-29 17:03:23 +00:00
ldd_rewrite_script=no
2001-07-09 11:51:53 +00:00
libc_cv_sysconfdir=$sysconfdir
2012-06-22 17:11:07 +00:00
libc_cv_localstatedir=$localstatedir
2001-11-16 01:27:24 +00:00
libc_cv_gcc_unwind_find_fde=no
2004-03-08 04:10:31 +00:00
libc_cv_idn=no
2021-05-03 06:12:11 +00:00
pthread_in_libc=yes
1998-03-29 17:03:23 +00:00
1997-07-14 21:49:20 +00:00
# Iterate over all the sysdep directories we will use, running their
2010-08-24 18:55:53 +00:00
# configure fragments.
1997-07-14 21:49:20 +00:00
for dir in $sysnames; do
case $dir in
/*) dest=$dir ;;
*) dest=$srcdir/$dir ;;
esac
if test -r $dest/configure; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: running configure fragment for $dir" >&5
2009-04-07 06:36:33 +00:00
$as_echo "running configure fragment for $dir" >&6; }
1997-07-14 21:49:20 +00:00
. $dest/configure
fi
done
2015-05-14 14:28:06 +00:00
if test x"$build_mathvec" = xnotset; then
build_mathvec=no
fi
config_vars="$config_vars
build-mathvec = $build_mathvec"
2014-04-06 21:26:32 +00:00
2001-11-16 01:27:24 +00:00
if test x$libc_cv_gcc_unwind_find_fde = xyes; then
2010-07-10 02:25:39 +00:00
$as_echo "#define EXPORT_UNWIND_FIND_FDE 1" >>confdefs.h
2001-11-16 01:27:24 +00:00
fi
2012-10-24 21:50:46 +00:00
# A sysdeps configure fragment can reset this if IFUNC is not actually
# usable even though the assembler knows how to generate the symbol type.
if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
$as_echo "#define HAVE_IFUNC 1" >>confdefs.h
fi
2019-02-27 21:21:46 +00:00
config_vars="$config_vars
have-ifunc = $libc_cv_ld_gnu_indirect_function"
2012-10-24 21:50:46 +00:00
2016-10-07 07:56:46 +00:00
if test x"$libc_cv_gcc_indirect_function" = xyes; then
$as_echo "#define HAVE_GCC_IFUNC 1" >>confdefs.h
fi
2021-03-24 00:10:38 +00:00
config_vars="$config_vars
have-gcc-ifunc = $libc_cv_gcc_indirect_function"
2016-10-07 07:56:46 +00:00
2012-08-22 20:31:12 +00:00
# This is far from the AC_ARG_ENABLE that sets it so that a sysdeps
# configure fragment can override the value to prevent this AC_DEFINE.
if test "x$use_nscd" != xno; then
$as_echo "#define USE_NSCD 1" >>confdefs.h
fi
2012-08-22 20:35:55 +00:00
if test "x$build_nscd" = xdefault; then
build_nscd=$use_nscd
fi
2012-08-22 20:31:12 +00:00
1997-07-14 21:49:20 +00:00
1998-03-29 17:03:23 +00:00
Update.
1998-06-26 14:37 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Check for -fexceptions.
* config.make.in: Define exceptions, not no-exceptions.
* misc/sys/cdefs.h: Define __PMS. When using modern g++ define
__P to use throw().
* misc/Makefile: Define CFLAGS-tsearch.c and CFLAGS-lsearch.c to
$(exceptions).
* stdlib/Makefile: Likewise for bsearch.c, msort.c, and qsort.c.
* misc/search.h: Use __PMS in tsearch, tfind, tdelete, twalk, tdestroy,
lfind, and lsearch prototpypes.
* stdlib/stdlib.h: Likewise for bsearch and qsort.
1998-06-26 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/fpu/bits/mathinline.h (__finite): Use C code, not asm.
1998-06-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (remove-old-headers): Make phony.
* configure.in: Substitute @old_glibc_headers@.
1998-06-26 Ulrich Drepper <drepper@cygnus.com>
* libc.map: Remove __libc_uid.
1998-06-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/terminal.texi (Allocation, Pseudo-Terminal Pairs): Fix
typos.
1998-06-26 Ulrich Drepper <drepper@cygnus.com>
* libc.map: Add Alpha-specific io function from protected namespace.
1998-06-26 14:47:05 +00:00
2012-10-03 23:13:14 +00:00
if test x$use_ldconfig = xyes; then
$as_echo "#define USE_LDCONFIG 1" >>confdefs.h
fi
2011-10-25 00:19:17 +00:00
2012-01-30 19:55:15 +00:00
2012-03-14 23:29:47 +00:00
2012-03-16 15:07:57 +00:00
Update.
1997-09-25 00:23 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-profile.c: Correct implementation.
* io/ftwtest-sh: Don't depend on TMPDIR == /tmp.
* locale/setlocale.c: Rewrite a bit for more clarity.
* math/Makefile (libm-calls): Add w_exp2.
* math/math_private.h: Add prototypes for __ieee754_exp2{,f,l}.
* sysdeps/libm-i387/s_exp2.S: Change name to __ieee754_exp2.
* sysdeps/libm-i387/s_exp2f.S: Likewise.
* sysdeps/libm-i387/s_exp2l.S: Likewise.
* sysdeps/libm-ieee754/k_standard.c: Add error cases for exp2.
* string/bits/string2.h (__strcpy_small): Optimize.
(__stpcpy_small): Likewise.
(strncpy): Use variable for dest argument since it's used more than
once.
(strncat): Likewise.
(strcmp): Add optimization for this function.
* sysdeps/i386/i486/string.h (strlen): Correctly use __builtin_strlen.
(__strcpy_small): Optimize.
(__stpcpy_small): Likewise.
(__stpcpy_c): Correctly use __mempcpy_* macros.
(__mempcpy_by2, __mempcpy_by4, __mempcpy_byn): Return pointer to
byte following last copied.
(strncat): Use variable for dest argument since it's used more than
once.
(strcmp): Add optimization for this function.
* sysdeps/i386/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE): Use
.text and .previous to select correct section.
1997-09-23 19:56 Philip Blundell <Philip.Blundell@pobox.com>
* configure.in: Add `--disable-versioning' option to suppress the
use of symbol versions even if binutils claims to support it.
1997-09-24 20:10 Philip Blundell <Philip.Blundell@pobox.com>
* csu/Makefile (before-compile): Don't try to build abi-tags.h if
not using ELF.
1997-09-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/sofini.c [HAVE_DWARF2_UNWIND_INFO]: Supply termination for
the frame unwind info section.
* elf/soinit.c [HAVE_DWARF2_UNWIND_INFO]: Register and unregister
the frame unwind info.
* config.h.in (HAVE_DWARF2_UNWIND_INFO): Add #undef.
* configure.in: Check whether gcc supports DWARF2 unwind info.
* libc.map: Export frame handling tables.
1997-09-10 06:56 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/unix/sysv/linux/powerpc/bits/kernel_termios.h:
Use the size of the kernel's termios structure for ioctls.
* sysdeps/powerpc/dl-machine.h: Prepare for library profiling.
* sysdeps/powerpc/bits/mathinline.h: Add slightly slower versions
of the C9X FP comparison macros. Delete 'fabs' and 'sqrt' inline
routines, because gcc has them as internals.
* sysdeps/powerpc/Makefile (pic-ccflags): Define this instead of
CFLAGS-.os.
* sysdeps/powerpc/bzero.S: New file.
* sysdeps/powerpc/strcat.c: New file.
* sysdeps/powerpc/strcpy.S: New file.
* sysdeps/powerpc/stpcpy.S: New file.
* math/Makefile: Add atest_exp2, test-reduce.
* math/atest_exp2.c: New file.
* math/test-reduce.c: New file.
* sysdeps/libm-ieee754/Dist: New file.
* sysdeps/libm-ieee754/s_exp2.c: New file.
* sysdeps/libm-ieee754/s_exp2f.c: New file.
* sysdeps/libm-ieee754/t_exp2.h: New file.
* sysdeps/libm-ieee754/t_exp2f.h: New file.
* math/libm-test.c (exp2_test): Add some more tests.
* Rules: Use empty.os instead of empty.o, since it gets linked into
libc.so...
* configure.in: Add --disable-static to disable building .a files.
* config.make.in: Substitute the new variable.
* Makeconfig: Don't build .o files if not building .a files.
* elf/dl-runtime.c (fixup): Factor out call to elf_machine_relplt.
(profile_fixup): Likewise.
1997-09-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/globtest.c (main): Change to directory passed as first
argument.
* posix/globtest.sh: Don't cd before running the program, instead
pass testdir as argument, so that $common_objpfx remains valid.
1997-09-23 18:01 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nis_call.c (__do_niscall2): Fix multiple Server support.
* nis/nis_findserver.c: Save latest working sockaddr_in.
1997-09-17 22:07 Zack Weinberg <zack@rabi.phys.columbia.edu>
* configure.in: Automatically determine whether as and ld are the
GNU versions.
(options): --with-gnu-{as,ld,binutils} replaced by
single option --with-binutils=PATH specifying a -B option to gcc.
* aclocal.m4: Two new macros defined, LIBC_PROG_FOO_GNU and
LIBC_PROG_BINUTILS.
* configure.in: Allow the user to force configuration for
unsupported platforms with an undocumented option.
1997-09-22 16:55 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/get_myaddr.c (get_myaddress): Avoid loopback interfaces,
return loopback address only if there is no other interface.
* nis/Makefile: Add nis_callback libnsl-routines.
* nis/nis_add.c: Use new __do_niscall* interface.
* nis/nis_cache.c: Likewise.
* nis/nis_checkpoint.c: Likewise.
* nis/nis_lookup.c: Likewise.
* nis/nis_mkdir.c: Likewise.
* nis/nis_modify.c: Likewise.
* nis/nis_ping.c: Likewise.
* nis/nis_remove.c: Likewise.
* nis/nis_rmdir.c: Likewise.
* nis/nis_server.c: Likewise.
* nis/nis_util.c: Likewise.
* nis/rpcsvc/nis.h: Make C++ safe.
* nis/nss_nisplus/nisplus-publickey.c (getsecretkey): Fix use
of variables.
* nis/nis_findserv.c: Make thread safe.
* nis/nis_call.c: Add support for callback, Fix use of variables.
* nis/nis_table.c: Add support for callback, FOLLOW_PATH and
ALL_RESULTS.
* nis/nis_callback.c: New, callback functions.
* nis/nis_intern.h: Add callback declarations.
1997-09-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h: Fix logic in preprocessor directive.
(__strsep_1c, __strsep_g): Don't declare __retval as pointing to
const, to save a cast and a possible warning.
1997-09-22 04:12 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/i486/atomicity.h (exchange_and_add): Really address
memory in xadd not %1.
1997-09-21 13:56 Ulrich Drepper <drepper@cygnus.com>
* manual/maint.texi (Supported Configurations): Add SPARC64 to
list of supported platforms.
1997-09-24 23:03:42 +00:00
2004-12-22 20:10:10 +00:00
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -fPIC is default" >&5
2009-04-07 06:36:33 +00:00
$as_echo_n "checking whether -fPIC is default... " >&6; }
2011-09-11 16:14:48 +00:00
if ${libc_cv_pic_default+:} false; then :
2009-04-07 06:36:33 +00:00
$as_echo_n "(cached) " >&6
Update.
1997-11-11 21:30 Ulrich Drepper <drepper@cygnus.com>
* include/sys/stat.h: Define stat, fstat, lstat and *64 variants
as macros so the the library compiles correctly even without
optimization.
* io/fstat.c: Undef fstat.
* io/fstat64.c: Undef fstat64
* io/lstat.c: Undef lstat.
* io/lstat64.c: Undef lstat64
* io/stat.c: Undef stat.
* io/stat64.c: Undef stat64
* io/fts.c: Include <include/sys/stat.h> to get macro definitions.
* io/ftw.c: Likewise.
* io/getdirname.c: Likewise.
* Makefile (install): Run test-installation.pl if possible.
* db2/Makefile: Update from db-2.3.12.
* db2/db.h: Likewise.
* db2/db_int.h: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_delete.c: Likewise.
* db2/btree/bt_open.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/bt_search.c: Likewise.
* db2/btree/bt_split.c: Likewise.
* db2/btree/bt_stat.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_delete.c: Likewise.
* db2/btree/bt_open.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/bt_search.c: Likewise.
* db2/btree/bt_split.c: Likewise.
* db2/btree/bt_stat.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/common/db_appinit.c: Likewise.
* db2/common/db_apprec.c: Likewise.
* db2/common/db_byteorder.c: Likewise.
* db2/common/db_region.c: Likewise.
* db2/db/db.c: Likewise
* db2/db/db.src: Likewise
* db2/db/db_auto.c: Likewise
* db2/db/db_dispatch.c: Likewise
* db2/db/db_dup.c: Likewise
* db2/db/db_overflow.c: Likewise
* db2/db/db_pr.c: Likewise
* db2/db/db_rec.c: Likewise
* db2/db/db_ret.c: Likewise
* db2/db/db_thread.c: Likewise
* db2/db185/db185.c: Likewise.
* db2/hash/hash.c: Likewise.
* db2/hash/hash.src: Likewise.
* db2/hash/hash_auto.c: Likewise.
* db2/hash/hash_dup.c: Likewise.
* db2/hash/hash_page.c: Likewise.
* db2/hash/hash_rec.c: Likewise.
* db2/include/btree_auto.h: Likewise.
* db2/include/btree_ext.h: Likewise.
* db2/include/clib_ext.h: Likewise.
* db2/include/common_ext.h: Likewise.
* db2/include/db.h.src: Likewise.
* db2/include/db_am.h: Likewise.
* db2/include/db_auto.h: Likewise.
* db2/include/db_cxx.h: Likewise.
* db2/include/db_ext.h: Likewise.
* db2/include/db_int.h.src: Likewise.
* db2/include/hash.h: Likewise.
* db2/include/hash_auto.h: Likewise.
* db2/include/hash_ext.h: Likewise.
* db2/include/lock.h: Likewise.
* db2/include/lock_ext.h: Likewise.
* db2/include/log.h: Likewise.
* db2/include/log_ext.h: Likewise.
* db2/include/mp.h: Likewise.
* db2/include/mp_ext.h: Likewise.
* db2/include/mutex_ext.h: Likewise.
* db2/include/os_ext.h: Likewise.
* db2/include/os_func.h: Likewise.
* db2/include/txn.h: Likewise.
* db2/include/txn_ext.h: Likewise.
* db2/lock/lock.c: Likewise.
* db2/lock/lock_deadlock.c: Likewise.
* db2/log/log.c: Likewise.
* db2/log/log_archive.c: Likewise.
* db2/log/log_auto.c: Likewise.
* db2/log/log_findckp.c: Likewise.
* db2/log/log_get.c: Likewise.
* db2/log/log_put.c: Likewise.
* db2/log/log_rec.c: Likewise.
* db2/log/log_register.c: Likewise.
* db2/mp/mp_bh.c: Likewise.
* db2/mp/mp_fget.c: Likewise.
* db2/mp/mp_fopen.c: Likewise.
* db2/mp/mp_fput.c: Likewise.
* db2/mp/mp_fset.c: Likewise.
* db2/mp/mp_open.c: Likewise.
* db2/mp/mp_pr.c: Likewise.
* db2/mp/mp_region.c: Likewise.
* db2/mp/mp_sync.c: Likewise.
* db2/mutex/mutex.c: Likewise.
* db2/os/os_abs.c: Likewise.
* db2/os/os_dir.c: Likewise.
* db2/os/os_fid.c: Likewise.
* db2/os/os_fsync.c: Likewise.
* db2/os/os_func.c: Likewise.
* db2/os/os_map.c: Likewise.
* db2/os/os_oflags.c: Likewise.
* db2/os/os_open.c: Likewise.
* db2/os/os_rpath.c: Likewise.
* db2/os/os_rw.c: Likewise.
* db2/os/os_seek.c: Likewise.
* db2/os/os_sleep.c: Likewise.
* db2/os/os_stat.c: Likewise.
* db2/os/os_unlink.c: Likewise.
* db2/progs/db_deadlock/db_deadlock.c: Likewise.
* db2/progs/db_dump/db_dump.c: Likewise.
* db2/progs/db_load/db_load.c: Likewise.
* db2/progs/db_recover/db_recover.c: Likewise.
* db2/progs/db_stat/db_stat.c: Likewise.
* db2/txn/txn.c: Likewise.
* db2/txn/txn_auto.c: Likewise.
* db2/txn/txn_rec.c: Likewise.
* db2/os/db_os_abs.c: Removed.
* db2/os/db_os_dir.c: Removed.
* db2/os/db_os_fid.c: Removed.
* db2/os/db_os_lseek.c: Removed.
* db2/os/db_os_mmap.c: Removed.
* db2/os/db_os_open.c: Removed.
* db2/os/db_os_rw.c: Removed.
* db2/os/db_os_sleep.c: Removed.
* db2/os/db_os_stat.c: Removed.
* db2/os/db_os_unlink.c: Removed.
* libio/stdio.h (fopen): Add __restrict to parameters.
* manual/process.texi (system): Describe behaviour for NULL argument.
* stdio-common/printf-parse.h: Parse hh modifier.
* stdio-common/vfprintf.c: Handle hh modifier.
* stdio-common/vfscanf.c: Likewise.
* manual/stdio.texi: Describe hh modifier for scanf/printf.
* math/complex.h: Don't define _Imaginary_I, but instead _Complex_I.
gcc does no yet know the `imaginary' keyword.
* math/test-math.c: Add little test for know gcc bug.
* math/tgmath.h: Make complex versions of log10() only available
if __USE_GNU.
* stdlib/test-canon.c: Fix typo.
* sysdeps/generic/setenv.c: Avoid compilation warnings.
Reported by Jim Meyering.
* sysdeps/generic/bits/errno.h: EILSEQ is an ISO C error number.
* sysdeps/mach/hurd/bits/errno.h: Likewise.
* sysdeps/standalone/bits/errno.h: Likewise.
* sysdeps/unix/sysv/linux/bits/errno.h: Likewise.
* sysdeps/i386/i586/memcpy.S: New file.
* sysdeps/i386/i586/mempcpy.S: New file.
* sysdeps/i386/i586/memset.S: Fix typo.
* sysdeps/posix/getcwd.c: Define HAVE_MEMPCPY for _LIBC. Add casts.
* sysdeps/posix/system.c: Add comment to explain code.
* sysdeps/wordsize-32/inttypes.h: Include <stddef.h> for wchar_t.
Define PTRDIFF_{MIN,MAX}, SIG_ATOMIC_{MIN,MAX}, SIZE_MAX,
WCHAR_{MIN,MAX}, WINT_{MIN,MAX}.
Define wcstoimax, wcstoumax.
* sysdeps/wordsize-64/inttypes.h: Likewise.
* wcsmbs/wchar.h: Define WCHAR_{MIN,MAX} if not already defined.
Declare __wcsto{l,ul,ll,ull}_internal only if not already done.
* time/Makefile (routines): Add strfxtime.
* time/strftime.c: Implement %F and %f format.
* time/strfxtime.c: New file.
* time/time.h: Define new types and symbols from ISO C 9X.
* time/mktime.c: Little comment correction.
1997-11-10 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_sincosl.c: Fix typo.
* sysdeps/libm-ieee754/s_tanl.c: Fix typo.
* sysdeps/libm-ieee754/s_floorl.c: Correct typos.
* sysdeps/libm-ieee754/e_remainderl.c: Replace
EXTRACT_LDOUBLE_WORDS by GET_LDOUBLE_WORDS.
* sysdeps/libm-ieee754/e_atan2l.c: Replace EXTRACT_LDOUBLE_WORDS
by GET_LDOUBLE_WORDS.
* sysdeps/libm-ieee754/s_scalbnl.c: Replace ";" by "," for correct
variable declaration.
* sysdeps/libm-ieee754/s_scalblnl.c: Likewise.
* sysdeps/libm-ieee754/s_lrint.c (__lrint): Correct function.
* math/libm-test.c (sqrt_test): Add test for sqrt (0.25).
(asin_test): Add more test.
1997-11-10 23:34 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/libm-ieee754/e_asin.c: Add braces to make code clearer
and to not confuse the poor compiler.
* sysdeps/libm-ieee754/e_asinf.c: Likewise.
Reported by vertex@cagent.com.
1997-11-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/dl-lookup.c (do_lookup): Don't accept the base version if we
require a specific one.
* libio/oldfreopen.c: Bind old symbols to version GLIBC_2.0.
* libio/oldiofopen.c: Likewise.
* libio/oldstdfiles.c: Likewise.
* libc.map: Export them.
1997-11-10 07:40 H.J. Lu <hjl@gnu.ai.mit.edu>
* stdlib/exit.c (exit): Handle recursive calls to exit ().
1997-11-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_llrint.c: Fixed to take double argument
instead of long double.
* sysdeps/m68k/fpu/s_llrintf.c: New file.
* sysdeps/m68k/fpu/s_llrintl.c: New file.
* sysdeps/libm-ieee754/s_llrint.c: Make compilable and fix
overflow condition.
* sysdeps/libm-ieee754/s_llrintf.c: Fix overflow condition.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise.
* sysdeps/libm-ieee754/s_llround.c: Likewise.
* sysdeps/libm-ieee754/s_llroundf.c: Likewise.
* sysdeps/libm-ieee754/s_llroundl.c: Likewise.
* sysdeps/libm-ieee754/s_lrint.c: Likewise.
* sysdeps/libm-ieee754/s_lrintf.c: Likewise.
* sysdeps/libm-ieee754/s_lrintl.c: Likewise.
* sysdeps/libm-ieee754/s_lround.c: Likewise.
* sysdeps/libm-ieee754/s_lroundf.c: Likewise.
* sysdeps/libm-ieee754/s_lroundl.c: Likewise.
* math/libm-test.c: Test all three variants of lrint and llrint.
Fix typos in lround and llround tests. Add tests for boundary
cases for lrint and llround.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi: Misc doc fixes.
* manual/ctype.texi: Likewise.
* manual/pattern.texi: Likewise.
* manual/terminal.texi: Likewise.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/xstatconv.c: Use struct assignment
instead of memcpy to let the compiler use whatever it regards as
optimal.
* sysdeps/unix/sysv/linux/alpha/xstatconv.c: Likewise.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers)
[$(subdir)=misc]: Add sys/prctl.h.
* sysdeps/unix/sysv/linux/Dist: Distribute it.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/ftwtest-sh: Don't use the unknown which command, instead try
pwd as /bin/pwd and /usr/bin/pwd.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/maint.texi (Tools for Installation): Don't recommend
broken version 3.76.1 of make.
(Porting): Fix wording.
1997-11-06 06:13 H.J. Lu <hjl@gnu.ai.mit.edu>
* config.make.in (build-pic-default): New, defined with
pic_default.
* configure.in (pic_default): New, set to yes if PIC is
default.
* Makeconfig (CPPFLAGS-.o, CPPFLAGS-.op, CPPFLAGS-.og,
CPPFLAGS-.ob): Add -DPIC if $(build-pic-default) is yes.
1997-11-09 18:15 Ulrich Drepper <drepper@cygnus.com>
* Makerules (libc.so): Fix typo.
* csu/Makefile (CFLAGS-initfini.s): Correctly fix moving function
definition. Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
* stdlib/strtod.c: Handle numbers like 0.0e10000 correctly which
produce 0.0. Reported by Joe Keane <jgk@jgk.org>.
* sysdeps/libm-ieee754/s_ceill.c: Fix typos.
* sysdeps/libm-ieee754/s_llrint.c: Correct code, it never worked.
1997-11-06 07:00 H.J. Lu <hjl@gnu.ai.mit.edu>
* sysdeps/unix/sysv/i386/i686/time.S: Removed.
1997-11-08 14:07 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/libnsl.map: Add __do_niscall2 for nis_cachemgr.
* nis/nis_call.c: Set UDP resend timeout correct.
* nis/nss_compat/compat-grp.c: Rewritten to make it faster.
* nis/nss_compat/compat-pwd.c: Likewise.
* nis/nss_compat/compat-spwd.c: Likewise.
* nis/ypclnt.c: Fix UDP resend timeout, fix yp_bind/do_ypcall
interaction.
* inet/protocols/routed.h: Include sys/socket.h.
* inet/protocols/talkd.h: Likewise.
* inet/protocols/timed.h: Include rpc/types.h.
* sunrpc/rpc/pmap_clnt.h: Include rpc/clnt.h.
1997-11-06 01:39 Ulrich Drepper <drepper@cygnus.com>
* Makerules (libc.so): Add missing closing brace.
1997-11-05 Brendan Kehoe <brendan@lisa.cygnus.com>
* libio.h (__P): Name its arg `p' instead of `params'.
This was added solely to work around problems with
the definition of __P in the Solaris math.h header.
1997-11-12 00:06:02 +00:00
else
2009-04-02 17:00:46 +00:00
libc_cv_pic_default=yes
Update.
1997-11-11 21:30 Ulrich Drepper <drepper@cygnus.com>
* include/sys/stat.h: Define stat, fstat, lstat and *64 variants
as macros so the the library compiles correctly even without
optimization.
* io/fstat.c: Undef fstat.
* io/fstat64.c: Undef fstat64
* io/lstat.c: Undef lstat.
* io/lstat64.c: Undef lstat64
* io/stat.c: Undef stat.
* io/stat64.c: Undef stat64
* io/fts.c: Include <include/sys/stat.h> to get macro definitions.
* io/ftw.c: Likewise.
* io/getdirname.c: Likewise.
* Makefile (install): Run test-installation.pl if possible.
* db2/Makefile: Update from db-2.3.12.
* db2/db.h: Likewise.
* db2/db_int.h: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_delete.c: Likewise.
* db2/btree/bt_open.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/bt_search.c: Likewise.
* db2/btree/bt_split.c: Likewise.
* db2/btree/bt_stat.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_delete.c: Likewise.
* db2/btree/bt_open.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/bt_search.c: Likewise.
* db2/btree/bt_split.c: Likewise.
* db2/btree/bt_stat.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/common/db_appinit.c: Likewise.
* db2/common/db_apprec.c: Likewise.
* db2/common/db_byteorder.c: Likewise.
* db2/common/db_region.c: Likewise.
* db2/db/db.c: Likewise
* db2/db/db.src: Likewise
* db2/db/db_auto.c: Likewise
* db2/db/db_dispatch.c: Likewise
* db2/db/db_dup.c: Likewise
* db2/db/db_overflow.c: Likewise
* db2/db/db_pr.c: Likewise
* db2/db/db_rec.c: Likewise
* db2/db/db_ret.c: Likewise
* db2/db/db_thread.c: Likewise
* db2/db185/db185.c: Likewise.
* db2/hash/hash.c: Likewise.
* db2/hash/hash.src: Likewise.
* db2/hash/hash_auto.c: Likewise.
* db2/hash/hash_dup.c: Likewise.
* db2/hash/hash_page.c: Likewise.
* db2/hash/hash_rec.c: Likewise.
* db2/include/btree_auto.h: Likewise.
* db2/include/btree_ext.h: Likewise.
* db2/include/clib_ext.h: Likewise.
* db2/include/common_ext.h: Likewise.
* db2/include/db.h.src: Likewise.
* db2/include/db_am.h: Likewise.
* db2/include/db_auto.h: Likewise.
* db2/include/db_cxx.h: Likewise.
* db2/include/db_ext.h: Likewise.
* db2/include/db_int.h.src: Likewise.
* db2/include/hash.h: Likewise.
* db2/include/hash_auto.h: Likewise.
* db2/include/hash_ext.h: Likewise.
* db2/include/lock.h: Likewise.
* db2/include/lock_ext.h: Likewise.
* db2/include/log.h: Likewise.
* db2/include/log_ext.h: Likewise.
* db2/include/mp.h: Likewise.
* db2/include/mp_ext.h: Likewise.
* db2/include/mutex_ext.h: Likewise.
* db2/include/os_ext.h: Likewise.
* db2/include/os_func.h: Likewise.
* db2/include/txn.h: Likewise.
* db2/include/txn_ext.h: Likewise.
* db2/lock/lock.c: Likewise.
* db2/lock/lock_deadlock.c: Likewise.
* db2/log/log.c: Likewise.
* db2/log/log_archive.c: Likewise.
* db2/log/log_auto.c: Likewise.
* db2/log/log_findckp.c: Likewise.
* db2/log/log_get.c: Likewise.
* db2/log/log_put.c: Likewise.
* db2/log/log_rec.c: Likewise.
* db2/log/log_register.c: Likewise.
* db2/mp/mp_bh.c: Likewise.
* db2/mp/mp_fget.c: Likewise.
* db2/mp/mp_fopen.c: Likewise.
* db2/mp/mp_fput.c: Likewise.
* db2/mp/mp_fset.c: Likewise.
* db2/mp/mp_open.c: Likewise.
* db2/mp/mp_pr.c: Likewise.
* db2/mp/mp_region.c: Likewise.
* db2/mp/mp_sync.c: Likewise.
* db2/mutex/mutex.c: Likewise.
* db2/os/os_abs.c: Likewise.
* db2/os/os_dir.c: Likewise.
* db2/os/os_fid.c: Likewise.
* db2/os/os_fsync.c: Likewise.
* db2/os/os_func.c: Likewise.
* db2/os/os_map.c: Likewise.
* db2/os/os_oflags.c: Likewise.
* db2/os/os_open.c: Likewise.
* db2/os/os_rpath.c: Likewise.
* db2/os/os_rw.c: Likewise.
* db2/os/os_seek.c: Likewise.
* db2/os/os_sleep.c: Likewise.
* db2/os/os_stat.c: Likewise.
* db2/os/os_unlink.c: Likewise.
* db2/progs/db_deadlock/db_deadlock.c: Likewise.
* db2/progs/db_dump/db_dump.c: Likewise.
* db2/progs/db_load/db_load.c: Likewise.
* db2/progs/db_recover/db_recover.c: Likewise.
* db2/progs/db_stat/db_stat.c: Likewise.
* db2/txn/txn.c: Likewise.
* db2/txn/txn_auto.c: Likewise.
* db2/txn/txn_rec.c: Likewise.
* db2/os/db_os_abs.c: Removed.
* db2/os/db_os_dir.c: Removed.
* db2/os/db_os_fid.c: Removed.
* db2/os/db_os_lseek.c: Removed.
* db2/os/db_os_mmap.c: Removed.
* db2/os/db_os_open.c: Removed.
* db2/os/db_os_rw.c: Removed.
* db2/os/db_os_sleep.c: Removed.
* db2/os/db_os_stat.c: Removed.
* db2/os/db_os_unlink.c: Removed.
* libio/stdio.h (fopen): Add __restrict to parameters.
* manual/process.texi (system): Describe behaviour for NULL argument.
* stdio-common/printf-parse.h: Parse hh modifier.
* stdio-common/vfprintf.c: Handle hh modifier.
* stdio-common/vfscanf.c: Likewise.
* manual/stdio.texi: Describe hh modifier for scanf/printf.
* math/complex.h: Don't define _Imaginary_I, but instead _Complex_I.
gcc does no yet know the `imaginary' keyword.
* math/test-math.c: Add little test for know gcc bug.
* math/tgmath.h: Make complex versions of log10() only available
if __USE_GNU.
* stdlib/test-canon.c: Fix typo.
* sysdeps/generic/setenv.c: Avoid compilation warnings.
Reported by Jim Meyering.
* sysdeps/generic/bits/errno.h: EILSEQ is an ISO C error number.
* sysdeps/mach/hurd/bits/errno.h: Likewise.
* sysdeps/standalone/bits/errno.h: Likewise.
* sysdeps/unix/sysv/linux/bits/errno.h: Likewise.
* sysdeps/i386/i586/memcpy.S: New file.
* sysdeps/i386/i586/mempcpy.S: New file.
* sysdeps/i386/i586/memset.S: Fix typo.
* sysdeps/posix/getcwd.c: Define HAVE_MEMPCPY for _LIBC. Add casts.
* sysdeps/posix/system.c: Add comment to explain code.
* sysdeps/wordsize-32/inttypes.h: Include <stddef.h> for wchar_t.
Define PTRDIFF_{MIN,MAX}, SIG_ATOMIC_{MIN,MAX}, SIZE_MAX,
WCHAR_{MIN,MAX}, WINT_{MIN,MAX}.
Define wcstoimax, wcstoumax.
* sysdeps/wordsize-64/inttypes.h: Likewise.
* wcsmbs/wchar.h: Define WCHAR_{MIN,MAX} if not already defined.
Declare __wcsto{l,ul,ll,ull}_internal only if not already done.
* time/Makefile (routines): Add strfxtime.
* time/strftime.c: Implement %F and %f format.
* time/strfxtime.c: New file.
* time/time.h: Define new types and symbols from ISO C 9X.
* time/mktime.c: Little comment correction.
1997-11-10 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_sincosl.c: Fix typo.
* sysdeps/libm-ieee754/s_tanl.c: Fix typo.
* sysdeps/libm-ieee754/s_floorl.c: Correct typos.
* sysdeps/libm-ieee754/e_remainderl.c: Replace
EXTRACT_LDOUBLE_WORDS by GET_LDOUBLE_WORDS.
* sysdeps/libm-ieee754/e_atan2l.c: Replace EXTRACT_LDOUBLE_WORDS
by GET_LDOUBLE_WORDS.
* sysdeps/libm-ieee754/s_scalbnl.c: Replace ";" by "," for correct
variable declaration.
* sysdeps/libm-ieee754/s_scalblnl.c: Likewise.
* sysdeps/libm-ieee754/s_lrint.c (__lrint): Correct function.
* math/libm-test.c (sqrt_test): Add test for sqrt (0.25).
(asin_test): Add more test.
1997-11-10 23:34 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/libm-ieee754/e_asin.c: Add braces to make code clearer
and to not confuse the poor compiler.
* sysdeps/libm-ieee754/e_asinf.c: Likewise.
Reported by vertex@cagent.com.
1997-11-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/dl-lookup.c (do_lookup): Don't accept the base version if we
require a specific one.
* libio/oldfreopen.c: Bind old symbols to version GLIBC_2.0.
* libio/oldiofopen.c: Likewise.
* libio/oldstdfiles.c: Likewise.
* libc.map: Export them.
1997-11-10 07:40 H.J. Lu <hjl@gnu.ai.mit.edu>
* stdlib/exit.c (exit): Handle recursive calls to exit ().
1997-11-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_llrint.c: Fixed to take double argument
instead of long double.
* sysdeps/m68k/fpu/s_llrintf.c: New file.
* sysdeps/m68k/fpu/s_llrintl.c: New file.
* sysdeps/libm-ieee754/s_llrint.c: Make compilable and fix
overflow condition.
* sysdeps/libm-ieee754/s_llrintf.c: Fix overflow condition.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise.
* sysdeps/libm-ieee754/s_llround.c: Likewise.
* sysdeps/libm-ieee754/s_llroundf.c: Likewise.
* sysdeps/libm-ieee754/s_llroundl.c: Likewise.
* sysdeps/libm-ieee754/s_lrint.c: Likewise.
* sysdeps/libm-ieee754/s_lrintf.c: Likewise.
* sysdeps/libm-ieee754/s_lrintl.c: Likewise.
* sysdeps/libm-ieee754/s_lround.c: Likewise.
* sysdeps/libm-ieee754/s_lroundf.c: Likewise.
* sysdeps/libm-ieee754/s_lroundl.c: Likewise.
* math/libm-test.c: Test all three variants of lrint and llrint.
Fix typos in lround and llround tests. Add tests for boundary
cases for lrint and llround.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi: Misc doc fixes.
* manual/ctype.texi: Likewise.
* manual/pattern.texi: Likewise.
* manual/terminal.texi: Likewise.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/xstatconv.c: Use struct assignment
instead of memcpy to let the compiler use whatever it regards as
optimal.
* sysdeps/unix/sysv/linux/alpha/xstatconv.c: Likewise.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers)
[$(subdir)=misc]: Add sys/prctl.h.
* sysdeps/unix/sysv/linux/Dist: Distribute it.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/ftwtest-sh: Don't use the unknown which command, instead try
pwd as /bin/pwd and /usr/bin/pwd.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/maint.texi (Tools for Installation): Don't recommend
broken version 3.76.1 of make.
(Porting): Fix wording.
1997-11-06 06:13 H.J. Lu <hjl@gnu.ai.mit.edu>
* config.make.in (build-pic-default): New, defined with
pic_default.
* configure.in (pic_default): New, set to yes if PIC is
default.
* Makeconfig (CPPFLAGS-.o, CPPFLAGS-.op, CPPFLAGS-.og,
CPPFLAGS-.ob): Add -DPIC if $(build-pic-default) is yes.
1997-11-09 18:15 Ulrich Drepper <drepper@cygnus.com>
* Makerules (libc.so): Fix typo.
* csu/Makefile (CFLAGS-initfini.s): Correctly fix moving function
definition. Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
* stdlib/strtod.c: Handle numbers like 0.0e10000 correctly which
produce 0.0. Reported by Joe Keane <jgk@jgk.org>.
* sysdeps/libm-ieee754/s_ceill.c: Fix typos.
* sysdeps/libm-ieee754/s_llrint.c: Correct code, it never worked.
1997-11-06 07:00 H.J. Lu <hjl@gnu.ai.mit.edu>
* sysdeps/unix/sysv/i386/i686/time.S: Removed.
1997-11-08 14:07 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/libnsl.map: Add __do_niscall2 for nis_cachemgr.
* nis/nis_call.c: Set UDP resend timeout correct.
* nis/nss_compat/compat-grp.c: Rewritten to make it faster.
* nis/nss_compat/compat-pwd.c: Likewise.
* nis/nss_compat/compat-spwd.c: Likewise.
* nis/ypclnt.c: Fix UDP resend timeout, fix yp_bind/do_ypcall
interaction.
* inet/protocols/routed.h: Include sys/socket.h.
* inet/protocols/talkd.h: Likewise.
* inet/protocols/timed.h: Include rpc/types.h.
* sunrpc/rpc/pmap_clnt.h: Include rpc/clnt.h.
1997-11-06 01:39 Ulrich Drepper <drepper@cygnus.com>
* Makerules (libc.so): Add missing closing brace.
1997-11-05 Brendan Kehoe <brendan@lisa.cygnus.com>
* libio.h (__P): Name its arg `p' instead of `params'.
This was added solely to work around problems with
the definition of __P in the Solaris math.h header.
1997-11-12 00:06:02 +00:00
cat > conftest.c <<EOF
Update.
1997-12-22 18:10 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Stop with error if --disable-static is used when
the shared lib uses this library.
* gen-FAQ.pl: I've perl installed in /usr/bin.
* include/bits/xopen_lim.h (STREAM_MAX): Define using FOPEN_MAX.
Fix Unix98 conformance problems in the headers.
* catgets/nl_types.h: Define nl_item.
* grp/grp.h: Define gid_t.
* include/features.h [_POSIX_C_SOURCE]: Don't define _XOPEN_SOURCE.
* include/nl_types.h: New file.
* include/ulimit.h: New file.
* io/fcntl.h: Include sys/stat.h for Unix98. Don't define locking
constants in POSIX mode.
* io/utime.h: Get definition for time_t.
* io/sys/stat.h: Define dev_t, gid_t, ino_t, mode_t, nlink_t, off_t,
uid_t, pid_t. Define D_IFLNK and S_IFSOCK only if !__USE_UNIX98.
* libio/stdio.h: Define va_list. Make snprintf also available is
__USE_UNIX98. Declare getopt function and variables.
* locale/langinfo.h: Include nl_types.h. Don't define nl_item.
Define CODESET, CRNCYSTR, RADIXCHAR and THOUSEP as aliases.
* math/math.h: Defined M_* constants as double for Unix98 mode.
* posix/fnmatch.h: Pretty print. Define FNM_NOSYS.
* posix/glob.h: Pretty print. Define GLOB_NOSYS.
* posix/regex.h: Define REG_NOSYS.
* posix/wordexp.h: Define WRDE_NOSYS.
* posix/unistd.h: Define _POSIX2_VERSION. Define _XOPEN_VERSION to
500 for Unix98.
* posix/sys/types.h: Alloc dev_t, mode_t, nlink_t to be defined
somewhere else as well. Define clock_t for Unix98.
* posix/sys/wait.h: Define pid_t.
* pwd/pwd.h: Define gid_t, uid_t.
* resource/Makefile (headers): Add ulimit.h.
* resource/ulimit.h: New file.
* sysdeps/generic/ulimit.c: Define according to X/Open using varargs
instead of second argument.
* sysdeps/unix/bsd/ulimit.c: Likewise. Use UL_* constants.
* sysdeps/unix/sysv/linux/ulimit.c: Likewise.
* resource/sys/resource.h: Don't declare ulimit here, include ulimit.h.
* signal/signal.h: Define pid_t.
* string/string.h: Don't declare BSD string functions in POSIX mode.
* sysdeps/generic/bits/confname.h: Define _PC_VDISABLE. Add
_SC_XOPEN_LEGACY, _SC_XOPEN_REALTIME and _SC_XOPEN_REALTIME_THREADS.
* sysdeps/unix/sysv/linux/bits/termios.h: Clean namespace for Unix98
and POSIX.
* inet/test_ifindex.c: Change test so that it does not fail for
interface aliases.
* locale/programs/locale.c (show_info): Use correct cast sequence
for 64bit machines.
* malloc/malloc.c: __malloc_initialized now signals three states:
uninitialized, initializing, initialized. Used in mcheck.
* malloc/mcheck.c (mabort): Add '\n' to messages.
(mcheck): Allow installation when malloc is uninitialized or is
just initializing.
* manual/memory.texi: Explain mtrace output a bit more.
* math/libm-test.c: Add more epsilons.
* misc/regexp.h (compile): Remove __ prefix from parameter names.
* nis/nss_nis/nis-ethers.c (internal_nis_getetherent_r): Use strncpy
instead of strcpy for security.
* nis/nss_nis/nis-proto.c (internal_nis_getprotoent_r): Likewise.
* nis/nss_nis/nis-rpc.c (internal_nis_getrpcent_r): Likewise.
* nis/nss_nis/nis-service.c (internal_nis_getservent_r): Likewise.
* nss/digits_dots.c: Pretty print.
* posix/getconf.c (vars): Add symbols for programming environment
recognition. Recognize --version.
* sysdeps/generic/sysconf.c: Handle _SC_XBS5_*, _SC_XOPEN_LEGACY,
_SC_XOPEN_REALTIME, and _SC_XOPEN_REALTIME_THREADS.
* sysdeps/posix/sysconf.c: Handle _SC_XBS5_* and new _XOPEN_* symbols.
* sysdeps/generic/bits/stdio_lim.h: Implement handling of
__need_FOPEN_MAX.
* sysdeps/unix/sysv/linux/stdio_lim.h.in: Likewise.
* sysdeps/posix/mk-stdiolim.c: Change to generate file handling
__need_FOPEN_MAX.
* sysdeps/unix/sysv/linux/Dist: Add rt_sigpending.c.
* sysdeps/unix/sysv/linux/rt_sigpending.c: New file.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: Define __ipc_pid_t.
* sysdeps/unix/sysv/linux/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/bits/msq.h: Use __ipc_pid_t.
* sysdeps/unix/sysv/linux/bits/shm.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/types.h: New file.
* sysdeps/wordsize-32/inttypes.h: Add SCNd8, SCNi8, SCNo8, SCNx8,
SCNu*.
* sysdeps/wordsize-64/inttypes.h: Likewise.
* time/africa: Update from tzdata1997j.
* time/antarctica: Likewise.
* time/asia: Likewise.
* time/australasia: Likewise.
* time/backward: Likewise.
* time/etcetera: Likewise.
* time/europe: Likewise.
* time/factory: Likewise.
* time/northamerica: Likewise.
* time/pacificnew: Likewise.
* time/southamerica: Likewise.
* time/tzfile.h: Update from tzcode1997h.
* time/zic.c: Likewise.
* wcsmbs/wchar.h: Get definition of FILE. Define `struct tm' tag.
Declare wcwidth and wcswidth for __USE_XOPEN. Declare the
isw*() functions for Unix98.
* wctype/towctrans.c: Define as __towctrans, make towctrans weak alias.
* wctype/wctype.h: Declare isw*() functions also if __need_iswxxx
is defined.
1997-12-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* locale/duplocale.c: Increase usage_count only if less than
MAX_USAGE_COUNT.
* locale/freelocale.c: Test usage_count against UNDELETABLE, not
MAX_USAGE_COUNT.
* locale/setlocale.c: Likewise.
1997-12-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_includedir)/gnu/stubs.h): Use a more direct
dependency to make it easier to install it selectively.
* Makerules (.SUFFIXES): Don't define any suffixes.
1997-12-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/fstatfs64.c: Emulate using fstatfs.
* sysdeps/generic/statfs64.c: Emulate using statfs.
* sysdeps/generic/getrlimit64.c: Emulate using getrlimit.
* sysdeps/generic/setrlimit64.c: Emulate using setrlimit.
* sysdpes/generic/ftruncate64.c: New file.
* sysdpes/generic/truncate64.c: New file.
* sysdeps/generic/bits/stat.h: Add LFS support.
* sysdeps/generic/bits/statfs.h: Likewise.
* sysdeps/unix/bsd/sun/sunos4/bits/resource.h (RLIM_INFINITY)
[__USE_FILE_OFFSET64]: Make long long constant.
(RLIM64_INFINITY): Likewise.
* sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Correct
for LFS support.
(RLIM64_INFINITY) [__USE_LARGEFILE64]: Define.
* sysdeps/generic/bits/resource.h: Likewise.
* misc/Makefile (routines): Add truncate64 and ftruncate64.
* include/features.h: Don't prevent LFS support from defining BSD
and SYSV things.
* dirent/dirent.h [__USE_FILE_OFFSET64]: Don't use xxx64 names.
* io/ftw.h [__USE_FILE_OFFSET64]: Likewise.
* io/sys/stat.h [__USE_FILE_OFFSET64]: Likewise.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add xxx64 alias for
fstatfs, statfs, getrlimit, setrlimit, ftruncate and truncate.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/alpha/fstatfs64.c: New file.
* sysdeps/unix/sysv/linux/alpha/statfs64.c: New file.
* sysdeps/unix/sysv/linux/alpha/getrlimit64.c: New file.
* sysdeps/unix/sysv/linux/alpha/setrlimit64.c: New file.
* sysdeps/unix/sysv/linux/alpha/ftruncate64.c: New file.
* sysdeps/unix/sysv/linux/alpha/truncate64.c: New file.
* sysdeps/unix/sysv/linux/alpha/readdir.c: New file.
* sysdeps/unix/sysv/linux/alpha/readdir64.c: New file.
* sysdeps/unix/sysv/linux/alpha/readdir64_r.c: New file.
* sysdeps/unix/sysv/linux/alpha/readdir_r.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/fstatfs64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/statfs64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/getrlimit64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/setrlimit64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/ftruncate64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/truncate64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/readdir64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/readdir64_r.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c: New file.
* sysdeps/unix/sysv/linux/fxstat64.c: New file.
* sysdeps/unix/sysv/linux/lxstat64.c: New file.
* sysdeps/unix/sysv/linux/xstat64.c: New file.
* sysdeps/unix/sysv/linux/readdir64.c: New file.
* sysdeps/unix/sysv/linux/readdir64_r.c: New file.
* sysdeps/unix/sysv/linux/getdents64.c: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines)
[$(subdir)=dirent]: Add getdents64.
* sysdeps/unix/sysv/linux/Dist: Add getdents64.c.
* sysdeps/unix/sysv/linux/xstatconv.c: LFS support.
1997-12-18 12:07 Philip Blundell <pb@nexus.co.uk>
* sysdeps/generic/bits/statfs.h (struct statfs64): Added.
* sysdeps/generic/getrlimit.c: Include <sys/types.h>.
* sysdeps/generic/getrlimit64.c: Likewise.
* sysdeps/generic/setrlimit.c: Likewise.
* sysdeps/generic/setrlimit64.c: Likewise.
1997-12-17 13:57 Philip Blundell <pb@nexus.co.uk>
* sysdeps/unix/sysv/linux/siglist.c: Fix compile problem if not
using versioning.
* sysdeps/generic/waitid.c: Include <sys/types.h> for id_t.
* sysdeps/standalone/arm/bits/errno.h (EBUSY): Added.
1997-12-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* locale/programs/ld-ctype.c (ctype_output): Clear out the padding
after the codeset name.
1997-12-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libc.map: Add get_kernel_syms.
1997-12-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/testrtsig.h (kernel_has_rtsig): Make
static.
* sysdeps/unix/sysv/linux/testrtsig.h (kernel_has_rtsig):
Likewise. Fix condition.
1997-12-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libio/Makefile (routines) [$(versioning)=yes]: Add oldiofdopen.
1997-12-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/bits/mathinline.h: Don't define exp2 inline.
Define scalbln{,f,l} under __USE_ISOC9X, not __USE_MISC.
1997-12-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/powerpc/syscall.S: Put back.
* sysdeps/unix/sysv/linux/powerpc/sigreturn.S: Delete this
instead. Oops.
1997-12-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* configure.in (libc_cv_gcc_alpha_ng_prefix): Correct quoting.
1997-12-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/libm-test.c (catanh_test): Change epsilon.
Reported by H.J. Lu.
1997-12-14 19:39 H.J. Lu <hjl@gnu.org>
* libc.map (__getpid): Added for linuxthreads.
1997-12-13 21:09 H.J. Lu <hjl@gnu.org>
* configure.in (HAVE_DWARF2_UNWIND_INFO_STATIC): Define
it if gcc uses static variable in DWARF2 unwind information
for exception support.
* config.h.in (HAVE_DWARF2_UNWIND_INFO_STATIC): New.
* elf/soinit.c (__libc_global_ctors, _fini): Handle
HAVE_DWARF2_UNWIND_INFO_STATIC.
* libc.map (__register_frame*, __deregister_frame*): Make them
global.
1997-12-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/libm-test.c: Add more tests for "normal" values.
1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* stdio-common/printf_fphex.c: Fix printing of long double number
with a biased exponent of zero. Fix rounding.
1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sunrpc/rpc_main.c: Accept new flag -$.
* sunrpc/Makefile (rpcgen-cmd): Pass it here.
1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_slibdir)/libc-$(version).so): Install the
dynamic linker first, in case the interface has changed.
1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/nss_files/files-alias.c (get_next_alias): Fix parameter
order.
1997-12-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* math/tgmath.h: Check for double first, for architectures where
sizeof (long double) == sizeof (double).
1997-12-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/libm-test.c: New tests for "normal" values added for most
functions.
1997-12-22 20:53:38 +00:00
#if defined __PIC__ || defined __pic__ || defined PIC || defined pic
Update.
1997-11-11 21:30 Ulrich Drepper <drepper@cygnus.com>
* include/sys/stat.h: Define stat, fstat, lstat and *64 variants
as macros so the the library compiles correctly even without
optimization.
* io/fstat.c: Undef fstat.
* io/fstat64.c: Undef fstat64
* io/lstat.c: Undef lstat.
* io/lstat64.c: Undef lstat64
* io/stat.c: Undef stat.
* io/stat64.c: Undef stat64
* io/fts.c: Include <include/sys/stat.h> to get macro definitions.
* io/ftw.c: Likewise.
* io/getdirname.c: Likewise.
* Makefile (install): Run test-installation.pl if possible.
* db2/Makefile: Update from db-2.3.12.
* db2/db.h: Likewise.
* db2/db_int.h: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_delete.c: Likewise.
* db2/btree/bt_open.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/bt_search.c: Likewise.
* db2/btree/bt_split.c: Likewise.
* db2/btree/bt_stat.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_delete.c: Likewise.
* db2/btree/bt_open.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/bt_search.c: Likewise.
* db2/btree/bt_split.c: Likewise.
* db2/btree/bt_stat.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/common/db_appinit.c: Likewise.
* db2/common/db_apprec.c: Likewise.
* db2/common/db_byteorder.c: Likewise.
* db2/common/db_region.c: Likewise.
* db2/db/db.c: Likewise
* db2/db/db.src: Likewise
* db2/db/db_auto.c: Likewise
* db2/db/db_dispatch.c: Likewise
* db2/db/db_dup.c: Likewise
* db2/db/db_overflow.c: Likewise
* db2/db/db_pr.c: Likewise
* db2/db/db_rec.c: Likewise
* db2/db/db_ret.c: Likewise
* db2/db/db_thread.c: Likewise
* db2/db185/db185.c: Likewise.
* db2/hash/hash.c: Likewise.
* db2/hash/hash.src: Likewise.
* db2/hash/hash_auto.c: Likewise.
* db2/hash/hash_dup.c: Likewise.
* db2/hash/hash_page.c: Likewise.
* db2/hash/hash_rec.c: Likewise.
* db2/include/btree_auto.h: Likewise.
* db2/include/btree_ext.h: Likewise.
* db2/include/clib_ext.h: Likewise.
* db2/include/common_ext.h: Likewise.
* db2/include/db.h.src: Likewise.
* db2/include/db_am.h: Likewise.
* db2/include/db_auto.h: Likewise.
* db2/include/db_cxx.h: Likewise.
* db2/include/db_ext.h: Likewise.
* db2/include/db_int.h.src: Likewise.
* db2/include/hash.h: Likewise.
* db2/include/hash_auto.h: Likewise.
* db2/include/hash_ext.h: Likewise.
* db2/include/lock.h: Likewise.
* db2/include/lock_ext.h: Likewise.
* db2/include/log.h: Likewise.
* db2/include/log_ext.h: Likewise.
* db2/include/mp.h: Likewise.
* db2/include/mp_ext.h: Likewise.
* db2/include/mutex_ext.h: Likewise.
* db2/include/os_ext.h: Likewise.
* db2/include/os_func.h: Likewise.
* db2/include/txn.h: Likewise.
* db2/include/txn_ext.h: Likewise.
* db2/lock/lock.c: Likewise.
* db2/lock/lock_deadlock.c: Likewise.
* db2/log/log.c: Likewise.
* db2/log/log_archive.c: Likewise.
* db2/log/log_auto.c: Likewise.
* db2/log/log_findckp.c: Likewise.
* db2/log/log_get.c: Likewise.
* db2/log/log_put.c: Likewise.
* db2/log/log_rec.c: Likewise.
* db2/log/log_register.c: Likewise.
* db2/mp/mp_bh.c: Likewise.
* db2/mp/mp_fget.c: Likewise.
* db2/mp/mp_fopen.c: Likewise.
* db2/mp/mp_fput.c: Likewise.
* db2/mp/mp_fset.c: Likewise.
* db2/mp/mp_open.c: Likewise.
* db2/mp/mp_pr.c: Likewise.
* db2/mp/mp_region.c: Likewise.
* db2/mp/mp_sync.c: Likewise.
* db2/mutex/mutex.c: Likewise.
* db2/os/os_abs.c: Likewise.
* db2/os/os_dir.c: Likewise.
* db2/os/os_fid.c: Likewise.
* db2/os/os_fsync.c: Likewise.
* db2/os/os_func.c: Likewise.
* db2/os/os_map.c: Likewise.
* db2/os/os_oflags.c: Likewise.
* db2/os/os_open.c: Likewise.
* db2/os/os_rpath.c: Likewise.
* db2/os/os_rw.c: Likewise.
* db2/os/os_seek.c: Likewise.
* db2/os/os_sleep.c: Likewise.
* db2/os/os_stat.c: Likewise.
* db2/os/os_unlink.c: Likewise.
* db2/progs/db_deadlock/db_deadlock.c: Likewise.
* db2/progs/db_dump/db_dump.c: Likewise.
* db2/progs/db_load/db_load.c: Likewise.
* db2/progs/db_recover/db_recover.c: Likewise.
* db2/progs/db_stat/db_stat.c: Likewise.
* db2/txn/txn.c: Likewise.
* db2/txn/txn_auto.c: Likewise.
* db2/txn/txn_rec.c: Likewise.
* db2/os/db_os_abs.c: Removed.
* db2/os/db_os_dir.c: Removed.
* db2/os/db_os_fid.c: Removed.
* db2/os/db_os_lseek.c: Removed.
* db2/os/db_os_mmap.c: Removed.
* db2/os/db_os_open.c: Removed.
* db2/os/db_os_rw.c: Removed.
* db2/os/db_os_sleep.c: Removed.
* db2/os/db_os_stat.c: Removed.
* db2/os/db_os_unlink.c: Removed.
* libio/stdio.h (fopen): Add __restrict to parameters.
* manual/process.texi (system): Describe behaviour for NULL argument.
* stdio-common/printf-parse.h: Parse hh modifier.
* stdio-common/vfprintf.c: Handle hh modifier.
* stdio-common/vfscanf.c: Likewise.
* manual/stdio.texi: Describe hh modifier for scanf/printf.
* math/complex.h: Don't define _Imaginary_I, but instead _Complex_I.
gcc does no yet know the `imaginary' keyword.
* math/test-math.c: Add little test for know gcc bug.
* math/tgmath.h: Make complex versions of log10() only available
if __USE_GNU.
* stdlib/test-canon.c: Fix typo.
* sysdeps/generic/setenv.c: Avoid compilation warnings.
Reported by Jim Meyering.
* sysdeps/generic/bits/errno.h: EILSEQ is an ISO C error number.
* sysdeps/mach/hurd/bits/errno.h: Likewise.
* sysdeps/standalone/bits/errno.h: Likewise.
* sysdeps/unix/sysv/linux/bits/errno.h: Likewise.
* sysdeps/i386/i586/memcpy.S: New file.
* sysdeps/i386/i586/mempcpy.S: New file.
* sysdeps/i386/i586/memset.S: Fix typo.
* sysdeps/posix/getcwd.c: Define HAVE_MEMPCPY for _LIBC. Add casts.
* sysdeps/posix/system.c: Add comment to explain code.
* sysdeps/wordsize-32/inttypes.h: Include <stddef.h> for wchar_t.
Define PTRDIFF_{MIN,MAX}, SIG_ATOMIC_{MIN,MAX}, SIZE_MAX,
WCHAR_{MIN,MAX}, WINT_{MIN,MAX}.
Define wcstoimax, wcstoumax.
* sysdeps/wordsize-64/inttypes.h: Likewise.
* wcsmbs/wchar.h: Define WCHAR_{MIN,MAX} if not already defined.
Declare __wcsto{l,ul,ll,ull}_internal only if not already done.
* time/Makefile (routines): Add strfxtime.
* time/strftime.c: Implement %F and %f format.
* time/strfxtime.c: New file.
* time/time.h: Define new types and symbols from ISO C 9X.
* time/mktime.c: Little comment correction.
1997-11-10 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_sincosl.c: Fix typo.
* sysdeps/libm-ieee754/s_tanl.c: Fix typo.
* sysdeps/libm-ieee754/s_floorl.c: Correct typos.
* sysdeps/libm-ieee754/e_remainderl.c: Replace
EXTRACT_LDOUBLE_WORDS by GET_LDOUBLE_WORDS.
* sysdeps/libm-ieee754/e_atan2l.c: Replace EXTRACT_LDOUBLE_WORDS
by GET_LDOUBLE_WORDS.
* sysdeps/libm-ieee754/s_scalbnl.c: Replace ";" by "," for correct
variable declaration.
* sysdeps/libm-ieee754/s_scalblnl.c: Likewise.
* sysdeps/libm-ieee754/s_lrint.c (__lrint): Correct function.
* math/libm-test.c (sqrt_test): Add test for sqrt (0.25).
(asin_test): Add more test.
1997-11-10 23:34 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/libm-ieee754/e_asin.c: Add braces to make code clearer
and to not confuse the poor compiler.
* sysdeps/libm-ieee754/e_asinf.c: Likewise.
Reported by vertex@cagent.com.
1997-11-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/dl-lookup.c (do_lookup): Don't accept the base version if we
require a specific one.
* libio/oldfreopen.c: Bind old symbols to version GLIBC_2.0.
* libio/oldiofopen.c: Likewise.
* libio/oldstdfiles.c: Likewise.
* libc.map: Export them.
1997-11-10 07:40 H.J. Lu <hjl@gnu.ai.mit.edu>
* stdlib/exit.c (exit): Handle recursive calls to exit ().
1997-11-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_llrint.c: Fixed to take double argument
instead of long double.
* sysdeps/m68k/fpu/s_llrintf.c: New file.
* sysdeps/m68k/fpu/s_llrintl.c: New file.
* sysdeps/libm-ieee754/s_llrint.c: Make compilable and fix
overflow condition.
* sysdeps/libm-ieee754/s_llrintf.c: Fix overflow condition.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise.
* sysdeps/libm-ieee754/s_llround.c: Likewise.
* sysdeps/libm-ieee754/s_llroundf.c: Likewise.
* sysdeps/libm-ieee754/s_llroundl.c: Likewise.
* sysdeps/libm-ieee754/s_lrint.c: Likewise.
* sysdeps/libm-ieee754/s_lrintf.c: Likewise.
* sysdeps/libm-ieee754/s_lrintl.c: Likewise.
* sysdeps/libm-ieee754/s_lround.c: Likewise.
* sysdeps/libm-ieee754/s_lroundf.c: Likewise.
* sysdeps/libm-ieee754/s_lroundl.c: Likewise.
* math/libm-test.c: Test all three variants of lrint and llrint.
Fix typos in lround and llround tests. Add tests for boundary
cases for lrint and llround.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi: Misc doc fixes.
* manual/ctype.texi: Likewise.
* manual/pattern.texi: Likewise.
* manual/terminal.texi: Likewise.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/xstatconv.c: Use struct assignment
instead of memcpy to let the compiler use whatever it regards as
optimal.
* sysdeps/unix/sysv/linux/alpha/xstatconv.c: Likewise.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers)
[$(subdir)=misc]: Add sys/prctl.h.
* sysdeps/unix/sysv/linux/Dist: Distribute it.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/ftwtest-sh: Don't use the unknown which command, instead try
pwd as /bin/pwd and /usr/bin/pwd.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/maint.texi (Tools for Installation): Don't recommend
broken version 3.76.1 of make.
(Porting): Fix wording.
1997-11-06 06:13 H.J. Lu <hjl@gnu.ai.mit.edu>
* config.make.in (build-pic-default): New, defined with
pic_default.
* configure.in (pic_default): New, set to yes if PIC is
default.
* Makeconfig (CPPFLAGS-.o, CPPFLAGS-.op, CPPFLAGS-.og,
CPPFLAGS-.ob): Add -DPIC if $(build-pic-default) is yes.
1997-11-09 18:15 Ulrich Drepper <drepper@cygnus.com>
* Makerules (libc.so): Fix typo.
* csu/Makefile (CFLAGS-initfini.s): Correctly fix moving function
definition. Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
* stdlib/strtod.c: Handle numbers like 0.0e10000 correctly which
produce 0.0. Reported by Joe Keane <jgk@jgk.org>.
* sysdeps/libm-ieee754/s_ceill.c: Fix typos.
* sysdeps/libm-ieee754/s_llrint.c: Correct code, it never worked.
1997-11-06 07:00 H.J. Lu <hjl@gnu.ai.mit.edu>
* sysdeps/unix/sysv/i386/i686/time.S: Removed.
1997-11-08 14:07 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/libnsl.map: Add __do_niscall2 for nis_cachemgr.
* nis/nis_call.c: Set UDP resend timeout correct.
* nis/nss_compat/compat-grp.c: Rewritten to make it faster.
* nis/nss_compat/compat-pwd.c: Likewise.
* nis/nss_compat/compat-spwd.c: Likewise.
* nis/ypclnt.c: Fix UDP resend timeout, fix yp_bind/do_ypcall
interaction.
* inet/protocols/routed.h: Include sys/socket.h.
* inet/protocols/talkd.h: Likewise.
* inet/protocols/timed.h: Include rpc/types.h.
* sunrpc/rpc/pmap_clnt.h: Include rpc/clnt.h.
1997-11-06 01:39 Ulrich Drepper <drepper@cygnus.com>
* Makerules (libc.so): Add missing closing brace.
1997-11-05 Brendan Kehoe <brendan@lisa.cygnus.com>
* libio.h (__P): Name its arg `p' instead of `params'.
This was added solely to work around problems with
the definition of __P in the Solaris math.h header.
1997-11-12 00:06:02 +00:00
# error PIC is default.
#endif
EOF
if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then
2009-04-02 17:00:46 +00:00
libc_cv_pic_default=no
Update.
1997-11-11 21:30 Ulrich Drepper <drepper@cygnus.com>
* include/sys/stat.h: Define stat, fstat, lstat and *64 variants
as macros so the the library compiles correctly even without
optimization.
* io/fstat.c: Undef fstat.
* io/fstat64.c: Undef fstat64
* io/lstat.c: Undef lstat.
* io/lstat64.c: Undef lstat64
* io/stat.c: Undef stat.
* io/stat64.c: Undef stat64
* io/fts.c: Include <include/sys/stat.h> to get macro definitions.
* io/ftw.c: Likewise.
* io/getdirname.c: Likewise.
* Makefile (install): Run test-installation.pl if possible.
* db2/Makefile: Update from db-2.3.12.
* db2/db.h: Likewise.
* db2/db_int.h: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_delete.c: Likewise.
* db2/btree/bt_open.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/bt_search.c: Likewise.
* db2/btree/bt_split.c: Likewise.
* db2/btree/bt_stat.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_delete.c: Likewise.
* db2/btree/bt_open.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/bt_search.c: Likewise.
* db2/btree/bt_split.c: Likewise.
* db2/btree/bt_stat.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/common/db_appinit.c: Likewise.
* db2/common/db_apprec.c: Likewise.
* db2/common/db_byteorder.c: Likewise.
* db2/common/db_region.c: Likewise.
* db2/db/db.c: Likewise
* db2/db/db.src: Likewise
* db2/db/db_auto.c: Likewise
* db2/db/db_dispatch.c: Likewise
* db2/db/db_dup.c: Likewise
* db2/db/db_overflow.c: Likewise
* db2/db/db_pr.c: Likewise
* db2/db/db_rec.c: Likewise
* db2/db/db_ret.c: Likewise
* db2/db/db_thread.c: Likewise
* db2/db185/db185.c: Likewise.
* db2/hash/hash.c: Likewise.
* db2/hash/hash.src: Likewise.
* db2/hash/hash_auto.c: Likewise.
* db2/hash/hash_dup.c: Likewise.
* db2/hash/hash_page.c: Likewise.
* db2/hash/hash_rec.c: Likewise.
* db2/include/btree_auto.h: Likewise.
* db2/include/btree_ext.h: Likewise.
* db2/include/clib_ext.h: Likewise.
* db2/include/common_ext.h: Likewise.
* db2/include/db.h.src: Likewise.
* db2/include/db_am.h: Likewise.
* db2/include/db_auto.h: Likewise.
* db2/include/db_cxx.h: Likewise.
* db2/include/db_ext.h: Likewise.
* db2/include/db_int.h.src: Likewise.
* db2/include/hash.h: Likewise.
* db2/include/hash_auto.h: Likewise.
* db2/include/hash_ext.h: Likewise.
* db2/include/lock.h: Likewise.
* db2/include/lock_ext.h: Likewise.
* db2/include/log.h: Likewise.
* db2/include/log_ext.h: Likewise.
* db2/include/mp.h: Likewise.
* db2/include/mp_ext.h: Likewise.
* db2/include/mutex_ext.h: Likewise.
* db2/include/os_ext.h: Likewise.
* db2/include/os_func.h: Likewise.
* db2/include/txn.h: Likewise.
* db2/include/txn_ext.h: Likewise.
* db2/lock/lock.c: Likewise.
* db2/lock/lock_deadlock.c: Likewise.
* db2/log/log.c: Likewise.
* db2/log/log_archive.c: Likewise.
* db2/log/log_auto.c: Likewise.
* db2/log/log_findckp.c: Likewise.
* db2/log/log_get.c: Likewise.
* db2/log/log_put.c: Likewise.
* db2/log/log_rec.c: Likewise.
* db2/log/log_register.c: Likewise.
* db2/mp/mp_bh.c: Likewise.
* db2/mp/mp_fget.c: Likewise.
* db2/mp/mp_fopen.c: Likewise.
* db2/mp/mp_fput.c: Likewise.
* db2/mp/mp_fset.c: Likewise.
* db2/mp/mp_open.c: Likewise.
* db2/mp/mp_pr.c: Likewise.
* db2/mp/mp_region.c: Likewise.
* db2/mp/mp_sync.c: Likewise.
* db2/mutex/mutex.c: Likewise.
* db2/os/os_abs.c: Likewise.
* db2/os/os_dir.c: Likewise.
* db2/os/os_fid.c: Likewise.
* db2/os/os_fsync.c: Likewise.
* db2/os/os_func.c: Likewise.
* db2/os/os_map.c: Likewise.
* db2/os/os_oflags.c: Likewise.
* db2/os/os_open.c: Likewise.
* db2/os/os_rpath.c: Likewise.
* db2/os/os_rw.c: Likewise.
* db2/os/os_seek.c: Likewise.
* db2/os/os_sleep.c: Likewise.
* db2/os/os_stat.c: Likewise.
* db2/os/os_unlink.c: Likewise.
* db2/progs/db_deadlock/db_deadlock.c: Likewise.
* db2/progs/db_dump/db_dump.c: Likewise.
* db2/progs/db_load/db_load.c: Likewise.
* db2/progs/db_recover/db_recover.c: Likewise.
* db2/progs/db_stat/db_stat.c: Likewise.
* db2/txn/txn.c: Likewise.
* db2/txn/txn_auto.c: Likewise.
* db2/txn/txn_rec.c: Likewise.
* db2/os/db_os_abs.c: Removed.
* db2/os/db_os_dir.c: Removed.
* db2/os/db_os_fid.c: Removed.
* db2/os/db_os_lseek.c: Removed.
* db2/os/db_os_mmap.c: Removed.
* db2/os/db_os_open.c: Removed.
* db2/os/db_os_rw.c: Removed.
* db2/os/db_os_sleep.c: Removed.
* db2/os/db_os_stat.c: Removed.
* db2/os/db_os_unlink.c: Removed.
* libio/stdio.h (fopen): Add __restrict to parameters.
* manual/process.texi (system): Describe behaviour for NULL argument.
* stdio-common/printf-parse.h: Parse hh modifier.
* stdio-common/vfprintf.c: Handle hh modifier.
* stdio-common/vfscanf.c: Likewise.
* manual/stdio.texi: Describe hh modifier for scanf/printf.
* math/complex.h: Don't define _Imaginary_I, but instead _Complex_I.
gcc does no yet know the `imaginary' keyword.
* math/test-math.c: Add little test for know gcc bug.
* math/tgmath.h: Make complex versions of log10() only available
if __USE_GNU.
* stdlib/test-canon.c: Fix typo.
* sysdeps/generic/setenv.c: Avoid compilation warnings.
Reported by Jim Meyering.
* sysdeps/generic/bits/errno.h: EILSEQ is an ISO C error number.
* sysdeps/mach/hurd/bits/errno.h: Likewise.
* sysdeps/standalone/bits/errno.h: Likewise.
* sysdeps/unix/sysv/linux/bits/errno.h: Likewise.
* sysdeps/i386/i586/memcpy.S: New file.
* sysdeps/i386/i586/mempcpy.S: New file.
* sysdeps/i386/i586/memset.S: Fix typo.
* sysdeps/posix/getcwd.c: Define HAVE_MEMPCPY for _LIBC. Add casts.
* sysdeps/posix/system.c: Add comment to explain code.
* sysdeps/wordsize-32/inttypes.h: Include <stddef.h> for wchar_t.
Define PTRDIFF_{MIN,MAX}, SIG_ATOMIC_{MIN,MAX}, SIZE_MAX,
WCHAR_{MIN,MAX}, WINT_{MIN,MAX}.
Define wcstoimax, wcstoumax.
* sysdeps/wordsize-64/inttypes.h: Likewise.
* wcsmbs/wchar.h: Define WCHAR_{MIN,MAX} if not already defined.
Declare __wcsto{l,ul,ll,ull}_internal only if not already done.
* time/Makefile (routines): Add strfxtime.
* time/strftime.c: Implement %F and %f format.
* time/strfxtime.c: New file.
* time/time.h: Define new types and symbols from ISO C 9X.
* time/mktime.c: Little comment correction.
1997-11-10 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_sincosl.c: Fix typo.
* sysdeps/libm-ieee754/s_tanl.c: Fix typo.
* sysdeps/libm-ieee754/s_floorl.c: Correct typos.
* sysdeps/libm-ieee754/e_remainderl.c: Replace
EXTRACT_LDOUBLE_WORDS by GET_LDOUBLE_WORDS.
* sysdeps/libm-ieee754/e_atan2l.c: Replace EXTRACT_LDOUBLE_WORDS
by GET_LDOUBLE_WORDS.
* sysdeps/libm-ieee754/s_scalbnl.c: Replace ";" by "," for correct
variable declaration.
* sysdeps/libm-ieee754/s_scalblnl.c: Likewise.
* sysdeps/libm-ieee754/s_lrint.c (__lrint): Correct function.
* math/libm-test.c (sqrt_test): Add test for sqrt (0.25).
(asin_test): Add more test.
1997-11-10 23:34 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/libm-ieee754/e_asin.c: Add braces to make code clearer
and to not confuse the poor compiler.
* sysdeps/libm-ieee754/e_asinf.c: Likewise.
Reported by vertex@cagent.com.
1997-11-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/dl-lookup.c (do_lookup): Don't accept the base version if we
require a specific one.
* libio/oldfreopen.c: Bind old symbols to version GLIBC_2.0.
* libio/oldiofopen.c: Likewise.
* libio/oldstdfiles.c: Likewise.
* libc.map: Export them.
1997-11-10 07:40 H.J. Lu <hjl@gnu.ai.mit.edu>
* stdlib/exit.c (exit): Handle recursive calls to exit ().
1997-11-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_llrint.c: Fixed to take double argument
instead of long double.
* sysdeps/m68k/fpu/s_llrintf.c: New file.
* sysdeps/m68k/fpu/s_llrintl.c: New file.
* sysdeps/libm-ieee754/s_llrint.c: Make compilable and fix
overflow condition.
* sysdeps/libm-ieee754/s_llrintf.c: Fix overflow condition.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise.
* sysdeps/libm-ieee754/s_llround.c: Likewise.
* sysdeps/libm-ieee754/s_llroundf.c: Likewise.
* sysdeps/libm-ieee754/s_llroundl.c: Likewise.
* sysdeps/libm-ieee754/s_lrint.c: Likewise.
* sysdeps/libm-ieee754/s_lrintf.c: Likewise.
* sysdeps/libm-ieee754/s_lrintl.c: Likewise.
* sysdeps/libm-ieee754/s_lround.c: Likewise.
* sysdeps/libm-ieee754/s_lroundf.c: Likewise.
* sysdeps/libm-ieee754/s_lroundl.c: Likewise.
* math/libm-test.c: Test all three variants of lrint and llrint.
Fix typos in lround and llround tests. Add tests for boundary
cases for lrint and llround.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi: Misc doc fixes.
* manual/ctype.texi: Likewise.
* manual/pattern.texi: Likewise.
* manual/terminal.texi: Likewise.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/xstatconv.c: Use struct assignment
instead of memcpy to let the compiler use whatever it regards as
optimal.
* sysdeps/unix/sysv/linux/alpha/xstatconv.c: Likewise.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers)
[$(subdir)=misc]: Add sys/prctl.h.
* sysdeps/unix/sysv/linux/Dist: Distribute it.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/ftwtest-sh: Don't use the unknown which command, instead try
pwd as /bin/pwd and /usr/bin/pwd.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/maint.texi (Tools for Installation): Don't recommend
broken version 3.76.1 of make.
(Porting): Fix wording.
1997-11-06 06:13 H.J. Lu <hjl@gnu.ai.mit.edu>
* config.make.in (build-pic-default): New, defined with
pic_default.
* configure.in (pic_default): New, set to yes if PIC is
default.
* Makeconfig (CPPFLAGS-.o, CPPFLAGS-.op, CPPFLAGS-.og,
CPPFLAGS-.ob): Add -DPIC if $(build-pic-default) is yes.
1997-11-09 18:15 Ulrich Drepper <drepper@cygnus.com>
* Makerules (libc.so): Fix typo.
* csu/Makefile (CFLAGS-initfini.s): Correctly fix moving function
definition. Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
* stdlib/strtod.c: Handle numbers like 0.0e10000 correctly which
produce 0.0. Reported by Joe Keane <jgk@jgk.org>.
* sysdeps/libm-ieee754/s_ceill.c: Fix typos.
* sysdeps/libm-ieee754/s_llrint.c: Correct code, it never worked.
1997-11-06 07:00 H.J. Lu <hjl@gnu.ai.mit.edu>
* sysdeps/unix/sysv/i386/i686/time.S: Removed.
1997-11-08 14:07 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/libnsl.map: Add __do_niscall2 for nis_cachemgr.
* nis/nis_call.c: Set UDP resend timeout correct.
* nis/nss_compat/compat-grp.c: Rewritten to make it faster.
* nis/nss_compat/compat-pwd.c: Likewise.
* nis/nss_compat/compat-spwd.c: Likewise.
* nis/ypclnt.c: Fix UDP resend timeout, fix yp_bind/do_ypcall
interaction.
* inet/protocols/routed.h: Include sys/socket.h.
* inet/protocols/talkd.h: Likewise.
* inet/protocols/timed.h: Include rpc/types.h.
* sunrpc/rpc/pmap_clnt.h: Include rpc/clnt.h.
1997-11-06 01:39 Ulrich Drepper <drepper@cygnus.com>
* Makerules (libc.so): Add missing closing brace.
1997-11-05 Brendan Kehoe <brendan@lisa.cygnus.com>
* libio.h (__P): Name its arg `p' instead of `params'.
This was added solely to work around problems with
the definition of __P in the Solaris math.h header.
1997-11-12 00:06:02 +00:00
fi
rm -f conftest.*
fi
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_pic_default" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$libc_cv_pic_default" >&6; }
2021-12-08 05:51:26 +00:00
config_vars="$config_vars
build-pic-default = $libc_cv_pic_default"
Update.
1997-11-11 21:30 Ulrich Drepper <drepper@cygnus.com>
* include/sys/stat.h: Define stat, fstat, lstat and *64 variants
as macros so the the library compiles correctly even without
optimization.
* io/fstat.c: Undef fstat.
* io/fstat64.c: Undef fstat64
* io/lstat.c: Undef lstat.
* io/lstat64.c: Undef lstat64
* io/stat.c: Undef stat.
* io/stat64.c: Undef stat64
* io/fts.c: Include <include/sys/stat.h> to get macro definitions.
* io/ftw.c: Likewise.
* io/getdirname.c: Likewise.
* Makefile (install): Run test-installation.pl if possible.
* db2/Makefile: Update from db-2.3.12.
* db2/db.h: Likewise.
* db2/db_int.h: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_delete.c: Likewise.
* db2/btree/bt_open.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/bt_search.c: Likewise.
* db2/btree/bt_split.c: Likewise.
* db2/btree/bt_stat.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_delete.c: Likewise.
* db2/btree/bt_open.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/bt_search.c: Likewise.
* db2/btree/bt_split.c: Likewise.
* db2/btree/bt_stat.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/common/db_appinit.c: Likewise.
* db2/common/db_apprec.c: Likewise.
* db2/common/db_byteorder.c: Likewise.
* db2/common/db_region.c: Likewise.
* db2/db/db.c: Likewise
* db2/db/db.src: Likewise
* db2/db/db_auto.c: Likewise
* db2/db/db_dispatch.c: Likewise
* db2/db/db_dup.c: Likewise
* db2/db/db_overflow.c: Likewise
* db2/db/db_pr.c: Likewise
* db2/db/db_rec.c: Likewise
* db2/db/db_ret.c: Likewise
* db2/db/db_thread.c: Likewise
* db2/db185/db185.c: Likewise.
* db2/hash/hash.c: Likewise.
* db2/hash/hash.src: Likewise.
* db2/hash/hash_auto.c: Likewise.
* db2/hash/hash_dup.c: Likewise.
* db2/hash/hash_page.c: Likewise.
* db2/hash/hash_rec.c: Likewise.
* db2/include/btree_auto.h: Likewise.
* db2/include/btree_ext.h: Likewise.
* db2/include/clib_ext.h: Likewise.
* db2/include/common_ext.h: Likewise.
* db2/include/db.h.src: Likewise.
* db2/include/db_am.h: Likewise.
* db2/include/db_auto.h: Likewise.
* db2/include/db_cxx.h: Likewise.
* db2/include/db_ext.h: Likewise.
* db2/include/db_int.h.src: Likewise.
* db2/include/hash.h: Likewise.
* db2/include/hash_auto.h: Likewise.
* db2/include/hash_ext.h: Likewise.
* db2/include/lock.h: Likewise.
* db2/include/lock_ext.h: Likewise.
* db2/include/log.h: Likewise.
* db2/include/log_ext.h: Likewise.
* db2/include/mp.h: Likewise.
* db2/include/mp_ext.h: Likewise.
* db2/include/mutex_ext.h: Likewise.
* db2/include/os_ext.h: Likewise.
* db2/include/os_func.h: Likewise.
* db2/include/txn.h: Likewise.
* db2/include/txn_ext.h: Likewise.
* db2/lock/lock.c: Likewise.
* db2/lock/lock_deadlock.c: Likewise.
* db2/log/log.c: Likewise.
* db2/log/log_archive.c: Likewise.
* db2/log/log_auto.c: Likewise.
* db2/log/log_findckp.c: Likewise.
* db2/log/log_get.c: Likewise.
* db2/log/log_put.c: Likewise.
* db2/log/log_rec.c: Likewise.
* db2/log/log_register.c: Likewise.
* db2/mp/mp_bh.c: Likewise.
* db2/mp/mp_fget.c: Likewise.
* db2/mp/mp_fopen.c: Likewise.
* db2/mp/mp_fput.c: Likewise.
* db2/mp/mp_fset.c: Likewise.
* db2/mp/mp_open.c: Likewise.
* db2/mp/mp_pr.c: Likewise.
* db2/mp/mp_region.c: Likewise.
* db2/mp/mp_sync.c: Likewise.
* db2/mutex/mutex.c: Likewise.
* db2/os/os_abs.c: Likewise.
* db2/os/os_dir.c: Likewise.
* db2/os/os_fid.c: Likewise.
* db2/os/os_fsync.c: Likewise.
* db2/os/os_func.c: Likewise.
* db2/os/os_map.c: Likewise.
* db2/os/os_oflags.c: Likewise.
* db2/os/os_open.c: Likewise.
* db2/os/os_rpath.c: Likewise.
* db2/os/os_rw.c: Likewise.
* db2/os/os_seek.c: Likewise.
* db2/os/os_sleep.c: Likewise.
* db2/os/os_stat.c: Likewise.
* db2/os/os_unlink.c: Likewise.
* db2/progs/db_deadlock/db_deadlock.c: Likewise.
* db2/progs/db_dump/db_dump.c: Likewise.
* db2/progs/db_load/db_load.c: Likewise.
* db2/progs/db_recover/db_recover.c: Likewise.
* db2/progs/db_stat/db_stat.c: Likewise.
* db2/txn/txn.c: Likewise.
* db2/txn/txn_auto.c: Likewise.
* db2/txn/txn_rec.c: Likewise.
* db2/os/db_os_abs.c: Removed.
* db2/os/db_os_dir.c: Removed.
* db2/os/db_os_fid.c: Removed.
* db2/os/db_os_lseek.c: Removed.
* db2/os/db_os_mmap.c: Removed.
* db2/os/db_os_open.c: Removed.
* db2/os/db_os_rw.c: Removed.
* db2/os/db_os_sleep.c: Removed.
* db2/os/db_os_stat.c: Removed.
* db2/os/db_os_unlink.c: Removed.
* libio/stdio.h (fopen): Add __restrict to parameters.
* manual/process.texi (system): Describe behaviour for NULL argument.
* stdio-common/printf-parse.h: Parse hh modifier.
* stdio-common/vfprintf.c: Handle hh modifier.
* stdio-common/vfscanf.c: Likewise.
* manual/stdio.texi: Describe hh modifier for scanf/printf.
* math/complex.h: Don't define _Imaginary_I, but instead _Complex_I.
gcc does no yet know the `imaginary' keyword.
* math/test-math.c: Add little test for know gcc bug.
* math/tgmath.h: Make complex versions of log10() only available
if __USE_GNU.
* stdlib/test-canon.c: Fix typo.
* sysdeps/generic/setenv.c: Avoid compilation warnings.
Reported by Jim Meyering.
* sysdeps/generic/bits/errno.h: EILSEQ is an ISO C error number.
* sysdeps/mach/hurd/bits/errno.h: Likewise.
* sysdeps/standalone/bits/errno.h: Likewise.
* sysdeps/unix/sysv/linux/bits/errno.h: Likewise.
* sysdeps/i386/i586/memcpy.S: New file.
* sysdeps/i386/i586/mempcpy.S: New file.
* sysdeps/i386/i586/memset.S: Fix typo.
* sysdeps/posix/getcwd.c: Define HAVE_MEMPCPY for _LIBC. Add casts.
* sysdeps/posix/system.c: Add comment to explain code.
* sysdeps/wordsize-32/inttypes.h: Include <stddef.h> for wchar_t.
Define PTRDIFF_{MIN,MAX}, SIG_ATOMIC_{MIN,MAX}, SIZE_MAX,
WCHAR_{MIN,MAX}, WINT_{MIN,MAX}.
Define wcstoimax, wcstoumax.
* sysdeps/wordsize-64/inttypes.h: Likewise.
* wcsmbs/wchar.h: Define WCHAR_{MIN,MAX} if not already defined.
Declare __wcsto{l,ul,ll,ull}_internal only if not already done.
* time/Makefile (routines): Add strfxtime.
* time/strftime.c: Implement %F and %f format.
* time/strfxtime.c: New file.
* time/time.h: Define new types and symbols from ISO C 9X.
* time/mktime.c: Little comment correction.
1997-11-10 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_sincosl.c: Fix typo.
* sysdeps/libm-ieee754/s_tanl.c: Fix typo.
* sysdeps/libm-ieee754/s_floorl.c: Correct typos.
* sysdeps/libm-ieee754/e_remainderl.c: Replace
EXTRACT_LDOUBLE_WORDS by GET_LDOUBLE_WORDS.
* sysdeps/libm-ieee754/e_atan2l.c: Replace EXTRACT_LDOUBLE_WORDS
by GET_LDOUBLE_WORDS.
* sysdeps/libm-ieee754/s_scalbnl.c: Replace ";" by "," for correct
variable declaration.
* sysdeps/libm-ieee754/s_scalblnl.c: Likewise.
* sysdeps/libm-ieee754/s_lrint.c (__lrint): Correct function.
* math/libm-test.c (sqrt_test): Add test for sqrt (0.25).
(asin_test): Add more test.
1997-11-10 23:34 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/libm-ieee754/e_asin.c: Add braces to make code clearer
and to not confuse the poor compiler.
* sysdeps/libm-ieee754/e_asinf.c: Likewise.
Reported by vertex@cagent.com.
1997-11-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/dl-lookup.c (do_lookup): Don't accept the base version if we
require a specific one.
* libio/oldfreopen.c: Bind old symbols to version GLIBC_2.0.
* libio/oldiofopen.c: Likewise.
* libio/oldstdfiles.c: Likewise.
* libc.map: Export them.
1997-11-10 07:40 H.J. Lu <hjl@gnu.ai.mit.edu>
* stdlib/exit.c (exit): Handle recursive calls to exit ().
1997-11-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_llrint.c: Fixed to take double argument
instead of long double.
* sysdeps/m68k/fpu/s_llrintf.c: New file.
* sysdeps/m68k/fpu/s_llrintl.c: New file.
* sysdeps/libm-ieee754/s_llrint.c: Make compilable and fix
overflow condition.
* sysdeps/libm-ieee754/s_llrintf.c: Fix overflow condition.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise.
* sysdeps/libm-ieee754/s_llround.c: Likewise.
* sysdeps/libm-ieee754/s_llroundf.c: Likewise.
* sysdeps/libm-ieee754/s_llroundl.c: Likewise.
* sysdeps/libm-ieee754/s_lrint.c: Likewise.
* sysdeps/libm-ieee754/s_lrintf.c: Likewise.
* sysdeps/libm-ieee754/s_lrintl.c: Likewise.
* sysdeps/libm-ieee754/s_lround.c: Likewise.
* sysdeps/libm-ieee754/s_lroundf.c: Likewise.
* sysdeps/libm-ieee754/s_lroundl.c: Likewise.
* math/libm-test.c: Test all three variants of lrint and llrint.
Fix typos in lround and llround tests. Add tests for boundary
cases for lrint and llround.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi: Misc doc fixes.
* manual/ctype.texi: Likewise.
* manual/pattern.texi: Likewise.
* manual/terminal.texi: Likewise.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/xstatconv.c: Use struct assignment
instead of memcpy to let the compiler use whatever it regards as
optimal.
* sysdeps/unix/sysv/linux/alpha/xstatconv.c: Likewise.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers)
[$(subdir)=misc]: Add sys/prctl.h.
* sysdeps/unix/sysv/linux/Dist: Distribute it.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/ftwtest-sh: Don't use the unknown which command, instead try
pwd as /bin/pwd and /usr/bin/pwd.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/maint.texi (Tools for Installation): Don't recommend
broken version 3.76.1 of make.
(Porting): Fix wording.
1997-11-06 06:13 H.J. Lu <hjl@gnu.ai.mit.edu>
* config.make.in (build-pic-default): New, defined with
pic_default.
* configure.in (pic_default): New, set to yes if PIC is
default.
* Makeconfig (CPPFLAGS-.o, CPPFLAGS-.op, CPPFLAGS-.og,
CPPFLAGS-.ob): Add -DPIC if $(build-pic-default) is yes.
1997-11-09 18:15 Ulrich Drepper <drepper@cygnus.com>
* Makerules (libc.so): Fix typo.
* csu/Makefile (CFLAGS-initfini.s): Correctly fix moving function
definition. Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
* stdlib/strtod.c: Handle numbers like 0.0e10000 correctly which
produce 0.0. Reported by Joe Keane <jgk@jgk.org>.
* sysdeps/libm-ieee754/s_ceill.c: Fix typos.
* sysdeps/libm-ieee754/s_llrint.c: Correct code, it never worked.
1997-11-06 07:00 H.J. Lu <hjl@gnu.ai.mit.edu>
* sysdeps/unix/sysv/i386/i686/time.S: Removed.
1997-11-08 14:07 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/libnsl.map: Add __do_niscall2 for nis_cachemgr.
* nis/nis_call.c: Set UDP resend timeout correct.
* nis/nss_compat/compat-grp.c: Rewritten to make it faster.
* nis/nss_compat/compat-pwd.c: Likewise.
* nis/nss_compat/compat-spwd.c: Likewise.
* nis/ypclnt.c: Fix UDP resend timeout, fix yp_bind/do_ypcall
interaction.
* inet/protocols/routed.h: Include sys/socket.h.
* inet/protocols/talkd.h: Likewise.
* inet/protocols/timed.h: Include rpc/types.h.
* sunrpc/rpc/pmap_clnt.h: Include rpc/clnt.h.
1997-11-06 01:39 Ulrich Drepper <drepper@cygnus.com>
* Makerules (libc.so): Add missing closing brace.
1997-11-05 Brendan Kehoe <brendan@lisa.cygnus.com>
* libio.h (__P): Name its arg `p' instead of `params'.
This was added solely to work around problems with
the definition of __P in the Solaris math.h header.
1997-11-12 00:06:02 +00:00
2015-06-25 09:37:04 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -fPIE is default" >&5
$as_echo_n "checking whether -fPIE is default... " >&6; }
2017-12-18 20:24:26 +00:00
if ${libc_cv_cc_pie_default+:} false; then :
2015-06-25 09:37:04 +00:00
$as_echo_n "(cached) " >&6
else
2017-12-18 20:24:26 +00:00
libc_cv_cc_pie_default=yes
2015-06-25 09:37:04 +00:00
cat > conftest.c <<EOF
#if defined __PIE__ || defined __pie__ || defined PIE || defined pie
# error PIE is default.
#endif
EOF
if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then
2017-12-18 20:24:26 +00:00
libc_cv_cc_pie_default=no
2015-06-25 09:37:04 +00:00
fi
rm -f conftest.*
fi
2017-12-18 20:24:26 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_pie_default" >&5
$as_echo "$libc_cv_cc_pie_default" >&6; }
2021-12-08 05:51:26 +00:00
config_vars="$config_vars
cc-pie-default = $libc_cv_cc_pie_default"
2017-11-06 16:29:48 +00:00
2021-12-08 05:51:26 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can build programs as PIE" >&5
$as_echo_n "checking if we can build programs as PIE... " >&6; }
2022-01-15 22:23:20 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2021-12-08 05:51:26 +00:00
/* end confdefs.h. */
#ifdef PIE_UNSUPPORTED
# error PIE is not supported
#endif
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
2022-01-15 22:23:20 +00:00
libc_cv_pie_supported=yes
2021-12-08 05:51:26 +00:00
else
2022-01-15 22:23:20 +00:00
libc_cv_pie_supported=no
2021-12-08 05:51:26 +00:00
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2022-01-15 22:23:20 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_pie_supported" >&5
$as_echo "$libc_cv_pie_supported" >&6; }
# Disable build-pie-default if target does not support it or glibc is
# configured with --disable-default-pie.
if test "x$default_pie" = xno; then
build_pie_default=no
else
build_pie_default=$libc_cv_pie_supported
2021-12-08 05:51:26 +00:00
fi
config_vars="$config_vars
2022-01-15 22:23:20 +00:00
build-pie-default = $build_pie_default"
2021-12-08 05:51:26 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can build static PIE programs" >&5
$as_echo_n "checking if we can build static PIE programs... " >&6; }
2022-01-15 22:23:20 +00:00
libc_cv_static_pie_supported=$libc_cv_pie_supported
if test "x$libc_cv_pie_supported" != xno \
2021-12-08 05:51:26 +00:00
-a "$libc_cv_no_dynamic_linker" = yes; then
2021-01-20 12:26:31 +00:00
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef SUPPORT_STATIC_PIE
# error static PIE is not supported
#endif
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
2022-01-15 22:23:20 +00:00
libc_cv_static_pie_supported=yes
2021-01-20 12:26:31 +00:00
else
2022-01-15 22:23:20 +00:00
libc_cv_static_pie_supported=no
2021-01-20 12:26:31 +00:00
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2022-01-15 22:23:20 +00:00
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_static_pie_supported" >&5
$as_echo "$libc_cv_static_pie_supported" >&6; }
# Enable static-pie only if it is available and glibc isn't configured
# with --disable-default-pie.
if test "x$default_pie" = xno; then
libc_cv_static_pie=no
else
libc_cv_static_pie=$libc_cv_static_pie_supported
fi
if test "$libc_cv_static_pie" = "yes"; then
$as_echo "#define ENABLE_STATIC_PIE 1" >>confdefs.h
Add --enable-static-pie configure option to build static PIE [BZ #19574]
Static PIE extends address space layout randomization to static
executables. It provides additional security hardening benefits at
the cost of some memory and performance.
Dynamic linker, ld.so, is a standalone program which can be loaded at
any address. This patch adds a configure option, --enable-static-pie,
to embed the part of ld.so in static executable to create static position
independent executable (static PIE). A static PIE is similar to static
executable, but can be loaded at any address without help from a dynamic
linker. When --enable-static-pie is used to configure glibc, libc.a is
built as PIE and all static executables, including tests, are built as
static PIE. The resulting libc.a can be used together with GCC 8 or
above to build static PIE with the compiler option, -static-pie. But
GCC 8 isn't required to build glibc with --enable-static-pie. Only GCC
with PIE support is needed. When an older GCC is used to build glibc
with --enable-static-pie, proper input files are passed to linker to
create static executables as static PIE, together with "-z text" to
prevent dynamic relocations in read-only segments, which are not allowed
in static PIE.
The following changes are made for static PIE:
1. Add a new function, _dl_relocate_static_pie, to:
a. Get the run-time load address.
b. Read the dynamic section.
c. Perform dynamic relocations.
Dynamic linker also performs these steps. But static PIE doesn't load
any shared objects.
2. Call _dl_relocate_static_pie at entrance of LIBC_START_MAIN in
libc.a. crt1.o, which is used to create dynamic and non-PIE static
executables, is updated to include a dummy _dl_relocate_static_pie.
rcrt1.o is added to create static PIE, which will link in the real
_dl_relocate_static_pie. grcrt1.o is also added to create static PIE
with -pg. GCC 8 has been updated to support rcrt1.o and grcrt1.o for
static PIE.
Static PIE can work on all architectures which support PIE, provided:
1. Target must support accessing of local functions without dynamic
relocations, which is needed in start.S to call __libc_start_main with
function addresses of __libc_csu_init, __libc_csu_fini and main. All
functions in static PIE are local functions. If PIE start.S can't reach
main () defined in a shared object, the code sequence:
pass address of local_main to __libc_start_main
...
local_main:
tail call to main via PLT
can be used.
2. start.S is updated to check PIC instead SHARED for PIC code path and
avoid dynamic relocation, when PIC is defined and SHARED isn't defined,
to support static PIE.
3. All assembly codes are updated check PIC instead SHARED for PIC code
path to avoid dynamic relocations in read-only sections.
4. All assembly codes are updated check SHARED instead PIC for static
symbol name.
5. elf_machine_load_address in dl-machine.h are updated to support static
PIE.
6. __brk works without TLS nor dynamic relocations in read-only section
so that it can be used by __libc_setup_tls to initializes TLS in static
PIE.
NB: When glibc is built with GCC defaulted to PIE, libc.a is compiled
with -fPIE, regardless if --enable-static-pie is used to configure glibc.
When glibc is configured with --enable-static-pie, libc.a is compiled
with -fPIE, regardless whether GCC defaults to PIE or not. The same
libc.a can be used to build both static executable and static PIE.
There is no need for separate PIE copy of libc.a.
On x86-64, the normal static sln:
text data bss dec hex filename
625425 8284 5456 639165 9c0bd elf/sln
the static PIE sln:
text data bss dec hex filename
657626 20636 5392 683654 a6e86 elf/sln
The code size is increased by 5% and the binary size is increased by 7%.
Linker requirements to build glibc with --enable-static-pie:
1. Linker supports --no-dynamic-linker to remove PT_INTERP segment from
static PIE.
2. Linker can create working static PIE. The x86-64 linker needs the
fix for
https://sourceware.org/bugzilla/show_bug.cgi?id=21782
The i386 linker needs to be able to convert "movl main@GOT(%ebx), %eax"
to "leal main@GOTOFF(%ebx), %eax" if main is defined locally.
Binutils 2.29 or above are OK for i686 and x86-64. But linker status for
other targets need to be verified.
3. Linker should resolve undefined weak symbols to 0 in static PIE:
https://sourceware.org/bugzilla/show_bug.cgi?id=22269
4. Many ELF backend linkers incorrectly check bfd_link_pic for TLS
relocations, which should check bfd_link_executable instead:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Tested on aarch64, i686 and x86-64.
Using GCC 7 and binutils master branch, build-many-glibcs.py with
--enable-static-pie with all patches for static PIE applied have the
following build successes:
PASS: glibcs-aarch64_be-linux-gnu build
PASS: glibcs-aarch64-linux-gnu build
PASS: glibcs-armeb-linux-gnueabi-be8 build
PASS: glibcs-armeb-linux-gnueabi build
PASS: glibcs-armeb-linux-gnueabihf-be8 build
PASS: glibcs-armeb-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabi build
PASS: glibcs-arm-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabihf-v7a build
PASS: glibcs-arm-linux-gnueabihf-v7a-disable-multi-arch build
PASS: glibcs-m68k-linux-gnu build
PASS: glibcs-microblazeel-linux-gnu build
PASS: glibcs-microblaze-linux-gnu build
PASS: glibcs-mips64el-linux-gnu-n32 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n32-soft build
PASS: glibcs-mips64el-linux-gnu-n64 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n64-soft build
PASS: glibcs-mips64-linux-gnu-n32 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n32-soft build
PASS: glibcs-mips64-linux-gnu-n64 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n64-soft build
PASS: glibcs-mipsel-linux-gnu build
PASS: glibcs-mipsel-linux-gnu-nan2008 build
PASS: glibcs-mipsel-linux-gnu-nan2008-soft build
PASS: glibcs-mipsel-linux-gnu-soft build
PASS: glibcs-mips-linux-gnu build
PASS: glibcs-mips-linux-gnu-nan2008 build
PASS: glibcs-mips-linux-gnu-nan2008-soft build
PASS: glibcs-mips-linux-gnu-soft build
PASS: glibcs-nios2-linux-gnu build
PASS: glibcs-powerpc64le-linux-gnu build
PASS: glibcs-powerpc64-linux-gnu build
PASS: glibcs-tilegxbe-linux-gnu-32 build
PASS: glibcs-tilegxbe-linux-gnu build
PASS: glibcs-tilegx-linux-gnu-32 build
PASS: glibcs-tilegx-linux-gnu build
PASS: glibcs-tilepro-linux-gnu build
and the following build failures:
FAIL: glibcs-alpha-linux-gnu build
elf/sln is failed to link due to:
assertion fail bfd/elf64-alpha.c:4125
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-hppa-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
https://sourceware.org/bugzilla/show_bug.cgi?id=22537
FAIL: glibcs-ia64-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
FAIL: glibcs-powerpc-linux-gnu build
FAIL: glibcs-powerpc-linux-gnu-soft build
FAIL: glibcs-powerpc-linux-gnuspe build
FAIL: glibcs-powerpc-linux-gnuspe-e500v1 build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22264
FAIL: glibcs-powerpc-linux-gnu-power4 build
elf/sln is failed to link due to:
findlocale.c:96:(.text+0x22c): @local call to ifunc memchr
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-s390-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
assertion fail bfd/elflink.c:14299
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-sh3eb-linux-gnu build
FAIL: glibcs-sh3-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu-soft build
FAIL: glibcs-sh4-linux-gnu build
FAIL: glibcs-sh4-linux-gnu-soft build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Also TLS code sequence in SH assembly syscalls in glibc doesn't match TLS
code sequence expected by ld:
https://sourceware.org/bugzilla/show_bug.cgi?id=22270
FAIL: glibcs-sparc64-linux-gnu build
FAIL: glibcs-sparcv9-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu-32 build
FAIL: glibcs-tilegx-linux-gnu build
FAIL: glibcs-tilegx-linux-gnu-32 build
FAIL: glibcs-tilepro-linux-gnu build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
[BZ #19574]
* INSTALL: Regenerated.
* Makeconfig (real-static-start-installed-name): New.
(pic-default): Updated for --enable-static-pie.
(pie-default): New for --enable-static-pie.
(default-pie-ldflag): Likewise.
(+link-static-before-libc): Replace $(DEFAULT-LDFLAGS-$(@F))
with $(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)).
Replace $(static-start-installed-name) with
$(real-static-start-installed-name).
(+prectorT): Updated for --enable-static-pie.
(+postctorT): Likewise.
(CFLAGS-.o): Add $(pie-default).
(CFLAGS-.op): Likewise.
* NEWS: Mention --enable-static-pie.
* config.h.in (ENABLE_STATIC_PIE): New.
* configure.ac (--enable-static-pie): New configure option.
(have-no-dynamic-linker): New LIBC_CONFIG_VAR.
(have-static-pie): Likewise.
Enable static PIE if linker supports --no-dynamic-linker.
(ENABLE_STATIC_PIE): New AC_DEFINE.
(enable-static-pie): New LIBC_CONFIG_VAR.
* configure: Regenerated.
* csu/Makefile (omit-deps): Add r$(start-installed-name) and
gr$(start-installed-name) for --enable-static-pie.
(extra-objs): Likewise.
(install-lib): Likewise.
(extra-objs): Add static-reloc.o and static-reloc.os
($(objpfx)$(start-installed-name)): Also depend on
$(objpfx)static-reloc.o.
($(objpfx)r$(start-installed-name)): New.
($(objpfx)g$(start-installed-name)): Also depend on
$(objpfx)static-reloc.os.
($(objpfx)gr$(start-installed-name)): New.
* csu/libc-start.c (LIBC_START_MAIN): Call _dl_relocate_static_pie
in libc.a.
* csu/libc-tls.c (__libc_setup_tls): Add main_map->l_addr to
initimage.
* csu/static-reloc.c: New file.
* elf/Makefile (routines): Add dl-reloc-static-pie.
(elide-routines.os): Likewise.
(DEFAULT-LDFLAGS-tst-tls1-static-non-pie): Removed.
(tst-tls1-static-non-pie-no-pie): New.
* elf/dl-reloc-static-pie.c: New file.
* elf/dl-support.c (_dl_get_dl_main_map): New function.
* elf/dynamic-link.h (ELF_DURING_STARTUP): Also check
STATIC_PIE_BOOTSTRAP.
* elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
* gmon/Makefile (tests): Add tst-gmon-static-pie.
(tests-static): Likewise.
(DEFAULT-LDFLAGS-tst-gmon-static): Removed.
(tst-gmon-static-no-pie): New.
(CFLAGS-tst-gmon-static-pie.c): Likewise.
(CRT-tst-gmon-static-pie): Likewise.
(tst-gmon-static-pie-ENV): Likewise.
(tests-special): Likewise.
($(objpfx)tst-gmon-static-pie.out): Likewise.
(clean-tst-gmon-static-pie-data): Likewise.
($(objpfx)tst-gmon-static-pie-gprof.out): Likewise.
* gmon/tst-gmon-static-pie.c: New file.
* manual/install.texi: Document --enable-static-pie.
* sysdeps/generic/ldsodefs.h (_dl_relocate_static_pie): New.
(_dl_get_dl_main_map): Likewise.
* sysdeps/i386/configure.ac: Check if linker supports static PIE.
* sysdeps/x86_64/configure.ac: Likewise.
* sysdeps/i386/configure: Regenerated.
* sysdeps/x86_64/configure: Likewise.
* sysdeps/mips/Makefile (ASFLAGS-.o): Add $(pie-default).
(ASFLAGS-.op): Likewise.
2017-12-16 00:59:33 +00:00
fi
config_vars="$config_vars
2021-12-08 05:51:26 +00:00
enable-static-pie = $libc_cv_static_pie"
# Set the `multidir' variable by grabbing the variable from the compiler.
# We do it once and save the result in a generated makefile.
libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
Add --enable-static-pie configure option to build static PIE [BZ #19574]
Static PIE extends address space layout randomization to static
executables. It provides additional security hardening benefits at
the cost of some memory and performance.
Dynamic linker, ld.so, is a standalone program which can be loaded at
any address. This patch adds a configure option, --enable-static-pie,
to embed the part of ld.so in static executable to create static position
independent executable (static PIE). A static PIE is similar to static
executable, but can be loaded at any address without help from a dynamic
linker. When --enable-static-pie is used to configure glibc, libc.a is
built as PIE and all static executables, including tests, are built as
static PIE. The resulting libc.a can be used together with GCC 8 or
above to build static PIE with the compiler option, -static-pie. But
GCC 8 isn't required to build glibc with --enable-static-pie. Only GCC
with PIE support is needed. When an older GCC is used to build glibc
with --enable-static-pie, proper input files are passed to linker to
create static executables as static PIE, together with "-z text" to
prevent dynamic relocations in read-only segments, which are not allowed
in static PIE.
The following changes are made for static PIE:
1. Add a new function, _dl_relocate_static_pie, to:
a. Get the run-time load address.
b. Read the dynamic section.
c. Perform dynamic relocations.
Dynamic linker also performs these steps. But static PIE doesn't load
any shared objects.
2. Call _dl_relocate_static_pie at entrance of LIBC_START_MAIN in
libc.a. crt1.o, which is used to create dynamic and non-PIE static
executables, is updated to include a dummy _dl_relocate_static_pie.
rcrt1.o is added to create static PIE, which will link in the real
_dl_relocate_static_pie. grcrt1.o is also added to create static PIE
with -pg. GCC 8 has been updated to support rcrt1.o and grcrt1.o for
static PIE.
Static PIE can work on all architectures which support PIE, provided:
1. Target must support accessing of local functions without dynamic
relocations, which is needed in start.S to call __libc_start_main with
function addresses of __libc_csu_init, __libc_csu_fini and main. All
functions in static PIE are local functions. If PIE start.S can't reach
main () defined in a shared object, the code sequence:
pass address of local_main to __libc_start_main
...
local_main:
tail call to main via PLT
can be used.
2. start.S is updated to check PIC instead SHARED for PIC code path and
avoid dynamic relocation, when PIC is defined and SHARED isn't defined,
to support static PIE.
3. All assembly codes are updated check PIC instead SHARED for PIC code
path to avoid dynamic relocations in read-only sections.
4. All assembly codes are updated check SHARED instead PIC for static
symbol name.
5. elf_machine_load_address in dl-machine.h are updated to support static
PIE.
6. __brk works without TLS nor dynamic relocations in read-only section
so that it can be used by __libc_setup_tls to initializes TLS in static
PIE.
NB: When glibc is built with GCC defaulted to PIE, libc.a is compiled
with -fPIE, regardless if --enable-static-pie is used to configure glibc.
When glibc is configured with --enable-static-pie, libc.a is compiled
with -fPIE, regardless whether GCC defaults to PIE or not. The same
libc.a can be used to build both static executable and static PIE.
There is no need for separate PIE copy of libc.a.
On x86-64, the normal static sln:
text data bss dec hex filename
625425 8284 5456 639165 9c0bd elf/sln
the static PIE sln:
text data bss dec hex filename
657626 20636 5392 683654 a6e86 elf/sln
The code size is increased by 5% and the binary size is increased by 7%.
Linker requirements to build glibc with --enable-static-pie:
1. Linker supports --no-dynamic-linker to remove PT_INTERP segment from
static PIE.
2. Linker can create working static PIE. The x86-64 linker needs the
fix for
https://sourceware.org/bugzilla/show_bug.cgi?id=21782
The i386 linker needs to be able to convert "movl main@GOT(%ebx), %eax"
to "leal main@GOTOFF(%ebx), %eax" if main is defined locally.
Binutils 2.29 or above are OK for i686 and x86-64. But linker status for
other targets need to be verified.
3. Linker should resolve undefined weak symbols to 0 in static PIE:
https://sourceware.org/bugzilla/show_bug.cgi?id=22269
4. Many ELF backend linkers incorrectly check bfd_link_pic for TLS
relocations, which should check bfd_link_executable instead:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Tested on aarch64, i686 and x86-64.
Using GCC 7 and binutils master branch, build-many-glibcs.py with
--enable-static-pie with all patches for static PIE applied have the
following build successes:
PASS: glibcs-aarch64_be-linux-gnu build
PASS: glibcs-aarch64-linux-gnu build
PASS: glibcs-armeb-linux-gnueabi-be8 build
PASS: glibcs-armeb-linux-gnueabi build
PASS: glibcs-armeb-linux-gnueabihf-be8 build
PASS: glibcs-armeb-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabi build
PASS: glibcs-arm-linux-gnueabihf build
PASS: glibcs-arm-linux-gnueabihf-v7a build
PASS: glibcs-arm-linux-gnueabihf-v7a-disable-multi-arch build
PASS: glibcs-m68k-linux-gnu build
PASS: glibcs-microblazeel-linux-gnu build
PASS: glibcs-microblaze-linux-gnu build
PASS: glibcs-mips64el-linux-gnu-n32 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n32-soft build
PASS: glibcs-mips64el-linux-gnu-n64 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64el-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64el-linux-gnu-n64-soft build
PASS: glibcs-mips64-linux-gnu-n32 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008 build
PASS: glibcs-mips64-linux-gnu-n32-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n32-soft build
PASS: glibcs-mips64-linux-gnu-n64 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008 build
PASS: glibcs-mips64-linux-gnu-n64-nan2008-soft build
PASS: glibcs-mips64-linux-gnu-n64-soft build
PASS: glibcs-mipsel-linux-gnu build
PASS: glibcs-mipsel-linux-gnu-nan2008 build
PASS: glibcs-mipsel-linux-gnu-nan2008-soft build
PASS: glibcs-mipsel-linux-gnu-soft build
PASS: glibcs-mips-linux-gnu build
PASS: glibcs-mips-linux-gnu-nan2008 build
PASS: glibcs-mips-linux-gnu-nan2008-soft build
PASS: glibcs-mips-linux-gnu-soft build
PASS: glibcs-nios2-linux-gnu build
PASS: glibcs-powerpc64le-linux-gnu build
PASS: glibcs-powerpc64-linux-gnu build
PASS: glibcs-tilegxbe-linux-gnu-32 build
PASS: glibcs-tilegxbe-linux-gnu build
PASS: glibcs-tilegx-linux-gnu-32 build
PASS: glibcs-tilegx-linux-gnu build
PASS: glibcs-tilepro-linux-gnu build
and the following build failures:
FAIL: glibcs-alpha-linux-gnu build
elf/sln is failed to link due to:
assertion fail bfd/elf64-alpha.c:4125
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-hppa-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
https://sourceware.org/bugzilla/show_bug.cgi?id=22537
FAIL: glibcs-ia64-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
FAIL: glibcs-powerpc-linux-gnu build
FAIL: glibcs-powerpc-linux-gnu-soft build
FAIL: glibcs-powerpc-linux-gnuspe build
FAIL: glibcs-powerpc-linux-gnuspe-e500v1 build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22264
FAIL: glibcs-powerpc-linux-gnu-power4 build
elf/sln is failed to link due to:
findlocale.c:96:(.text+0x22c): @local call to ifunc memchr
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-s390-linux-gnu build
elf/sln is failed to link due to:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
assertion fail bfd/elflink.c:14299
This is caused by linker bug and/or non-PIC code in PIE libc.a.
FAIL: glibcs-sh3eb-linux-gnu build
FAIL: glibcs-sh3-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu build
FAIL: glibcs-sh4eb-linux-gnu-soft build
FAIL: glibcs-sh4-linux-gnu build
FAIL: glibcs-sh4-linux-gnu-soft build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
Also TLS code sequence in SH assembly syscalls in glibc doesn't match TLS
code sequence expected by ld:
https://sourceware.org/bugzilla/show_bug.cgi?id=22270
FAIL: glibcs-sparc64-linux-gnu build
FAIL: glibcs-sparcv9-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu build
FAIL: glibcs-tilegxbe-linux-gnu-32 build
FAIL: glibcs-tilegx-linux-gnu build
FAIL: glibcs-tilegx-linux-gnu-32 build
FAIL: glibcs-tilepro-linux-gnu build
elf/sln is failed to link due to:
ld: read-only segment has dynamic relocations.
This is caused by linker bug and/or non-PIC code in PIE libc.a. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=22263
[BZ #19574]
* INSTALL: Regenerated.
* Makeconfig (real-static-start-installed-name): New.
(pic-default): Updated for --enable-static-pie.
(pie-default): New for --enable-static-pie.
(default-pie-ldflag): Likewise.
(+link-static-before-libc): Replace $(DEFAULT-LDFLAGS-$(@F))
with $(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)).
Replace $(static-start-installed-name) with
$(real-static-start-installed-name).
(+prectorT): Updated for --enable-static-pie.
(+postctorT): Likewise.
(CFLAGS-.o): Add $(pie-default).
(CFLAGS-.op): Likewise.
* NEWS: Mention --enable-static-pie.
* config.h.in (ENABLE_STATIC_PIE): New.
* configure.ac (--enable-static-pie): New configure option.
(have-no-dynamic-linker): New LIBC_CONFIG_VAR.
(have-static-pie): Likewise.
Enable static PIE if linker supports --no-dynamic-linker.
(ENABLE_STATIC_PIE): New AC_DEFINE.
(enable-static-pie): New LIBC_CONFIG_VAR.
* configure: Regenerated.
* csu/Makefile (omit-deps): Add r$(start-installed-name) and
gr$(start-installed-name) for --enable-static-pie.
(extra-objs): Likewise.
(install-lib): Likewise.
(extra-objs): Add static-reloc.o and static-reloc.os
($(objpfx)$(start-installed-name)): Also depend on
$(objpfx)static-reloc.o.
($(objpfx)r$(start-installed-name)): New.
($(objpfx)g$(start-installed-name)): Also depend on
$(objpfx)static-reloc.os.
($(objpfx)gr$(start-installed-name)): New.
* csu/libc-start.c (LIBC_START_MAIN): Call _dl_relocate_static_pie
in libc.a.
* csu/libc-tls.c (__libc_setup_tls): Add main_map->l_addr to
initimage.
* csu/static-reloc.c: New file.
* elf/Makefile (routines): Add dl-reloc-static-pie.
(elide-routines.os): Likewise.
(DEFAULT-LDFLAGS-tst-tls1-static-non-pie): Removed.
(tst-tls1-static-non-pie-no-pie): New.
* elf/dl-reloc-static-pie.c: New file.
* elf/dl-support.c (_dl_get_dl_main_map): New function.
* elf/dynamic-link.h (ELF_DURING_STARTUP): Also check
STATIC_PIE_BOOTSTRAP.
* elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
* gmon/Makefile (tests): Add tst-gmon-static-pie.
(tests-static): Likewise.
(DEFAULT-LDFLAGS-tst-gmon-static): Removed.
(tst-gmon-static-no-pie): New.
(CFLAGS-tst-gmon-static-pie.c): Likewise.
(CRT-tst-gmon-static-pie): Likewise.
(tst-gmon-static-pie-ENV): Likewise.
(tests-special): Likewise.
($(objpfx)tst-gmon-static-pie.out): Likewise.
(clean-tst-gmon-static-pie-data): Likewise.
($(objpfx)tst-gmon-static-pie-gprof.out): Likewise.
* gmon/tst-gmon-static-pie.c: New file.
* manual/install.texi: Document --enable-static-pie.
* sysdeps/generic/ldsodefs.h (_dl_relocate_static_pie): New.
(_dl_get_dl_main_map): Likewise.
* sysdeps/i386/configure.ac: Check if linker supports static PIE.
* sysdeps/x86_64/configure.ac: Likewise.
* sysdeps/i386/configure: Regenerated.
* sysdeps/x86_64/configure: Likewise.
* sysdeps/mips/Makefile (ASFLAGS-.o): Add $(pie-default).
(ASFLAGS-.op): Likewise.
2017-12-16 00:59:33 +00:00
2005-03-06 00:08:10 +00:00
Update.
1997-11-11 21:30 Ulrich Drepper <drepper@cygnus.com>
* include/sys/stat.h: Define stat, fstat, lstat and *64 variants
as macros so the the library compiles correctly even without
optimization.
* io/fstat.c: Undef fstat.
* io/fstat64.c: Undef fstat64
* io/lstat.c: Undef lstat.
* io/lstat64.c: Undef lstat64
* io/stat.c: Undef stat.
* io/stat64.c: Undef stat64
* io/fts.c: Include <include/sys/stat.h> to get macro definitions.
* io/ftw.c: Likewise.
* io/getdirname.c: Likewise.
* Makefile (install): Run test-installation.pl if possible.
* db2/Makefile: Update from db-2.3.12.
* db2/db.h: Likewise.
* db2/db_int.h: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_delete.c: Likewise.
* db2/btree/bt_open.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/bt_search.c: Likewise.
* db2/btree/bt_split.c: Likewise.
* db2/btree/bt_stat.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/btree/bt_cursor.c: Likewise.
* db2/btree/bt_delete.c: Likewise.
* db2/btree/bt_open.c: Likewise.
* db2/btree/bt_put.c: Likewise.
* db2/btree/bt_rec.c: Likewise.
* db2/btree/bt_recno.c: Likewise.
* db2/btree/bt_search.c: Likewise.
* db2/btree/bt_split.c: Likewise.
* db2/btree/bt_stat.c: Likewise.
* db2/btree/btree.src: Likewise.
* db2/btree/btree_auto.c: Likewise.
* db2/common/db_appinit.c: Likewise.
* db2/common/db_apprec.c: Likewise.
* db2/common/db_byteorder.c: Likewise.
* db2/common/db_region.c: Likewise.
* db2/db/db.c: Likewise
* db2/db/db.src: Likewise
* db2/db/db_auto.c: Likewise
* db2/db/db_dispatch.c: Likewise
* db2/db/db_dup.c: Likewise
* db2/db/db_overflow.c: Likewise
* db2/db/db_pr.c: Likewise
* db2/db/db_rec.c: Likewise
* db2/db/db_ret.c: Likewise
* db2/db/db_thread.c: Likewise
* db2/db185/db185.c: Likewise.
* db2/hash/hash.c: Likewise.
* db2/hash/hash.src: Likewise.
* db2/hash/hash_auto.c: Likewise.
* db2/hash/hash_dup.c: Likewise.
* db2/hash/hash_page.c: Likewise.
* db2/hash/hash_rec.c: Likewise.
* db2/include/btree_auto.h: Likewise.
* db2/include/btree_ext.h: Likewise.
* db2/include/clib_ext.h: Likewise.
* db2/include/common_ext.h: Likewise.
* db2/include/db.h.src: Likewise.
* db2/include/db_am.h: Likewise.
* db2/include/db_auto.h: Likewise.
* db2/include/db_cxx.h: Likewise.
* db2/include/db_ext.h: Likewise.
* db2/include/db_int.h.src: Likewise.
* db2/include/hash.h: Likewise.
* db2/include/hash_auto.h: Likewise.
* db2/include/hash_ext.h: Likewise.
* db2/include/lock.h: Likewise.
* db2/include/lock_ext.h: Likewise.
* db2/include/log.h: Likewise.
* db2/include/log_ext.h: Likewise.
* db2/include/mp.h: Likewise.
* db2/include/mp_ext.h: Likewise.
* db2/include/mutex_ext.h: Likewise.
* db2/include/os_ext.h: Likewise.
* db2/include/os_func.h: Likewise.
* db2/include/txn.h: Likewise.
* db2/include/txn_ext.h: Likewise.
* db2/lock/lock.c: Likewise.
* db2/lock/lock_deadlock.c: Likewise.
* db2/log/log.c: Likewise.
* db2/log/log_archive.c: Likewise.
* db2/log/log_auto.c: Likewise.
* db2/log/log_findckp.c: Likewise.
* db2/log/log_get.c: Likewise.
* db2/log/log_put.c: Likewise.
* db2/log/log_rec.c: Likewise.
* db2/log/log_register.c: Likewise.
* db2/mp/mp_bh.c: Likewise.
* db2/mp/mp_fget.c: Likewise.
* db2/mp/mp_fopen.c: Likewise.
* db2/mp/mp_fput.c: Likewise.
* db2/mp/mp_fset.c: Likewise.
* db2/mp/mp_open.c: Likewise.
* db2/mp/mp_pr.c: Likewise.
* db2/mp/mp_region.c: Likewise.
* db2/mp/mp_sync.c: Likewise.
* db2/mutex/mutex.c: Likewise.
* db2/os/os_abs.c: Likewise.
* db2/os/os_dir.c: Likewise.
* db2/os/os_fid.c: Likewise.
* db2/os/os_fsync.c: Likewise.
* db2/os/os_func.c: Likewise.
* db2/os/os_map.c: Likewise.
* db2/os/os_oflags.c: Likewise.
* db2/os/os_open.c: Likewise.
* db2/os/os_rpath.c: Likewise.
* db2/os/os_rw.c: Likewise.
* db2/os/os_seek.c: Likewise.
* db2/os/os_sleep.c: Likewise.
* db2/os/os_stat.c: Likewise.
* db2/os/os_unlink.c: Likewise.
* db2/progs/db_deadlock/db_deadlock.c: Likewise.
* db2/progs/db_dump/db_dump.c: Likewise.
* db2/progs/db_load/db_load.c: Likewise.
* db2/progs/db_recover/db_recover.c: Likewise.
* db2/progs/db_stat/db_stat.c: Likewise.
* db2/txn/txn.c: Likewise.
* db2/txn/txn_auto.c: Likewise.
* db2/txn/txn_rec.c: Likewise.
* db2/os/db_os_abs.c: Removed.
* db2/os/db_os_dir.c: Removed.
* db2/os/db_os_fid.c: Removed.
* db2/os/db_os_lseek.c: Removed.
* db2/os/db_os_mmap.c: Removed.
* db2/os/db_os_open.c: Removed.
* db2/os/db_os_rw.c: Removed.
* db2/os/db_os_sleep.c: Removed.
* db2/os/db_os_stat.c: Removed.
* db2/os/db_os_unlink.c: Removed.
* libio/stdio.h (fopen): Add __restrict to parameters.
* manual/process.texi (system): Describe behaviour for NULL argument.
* stdio-common/printf-parse.h: Parse hh modifier.
* stdio-common/vfprintf.c: Handle hh modifier.
* stdio-common/vfscanf.c: Likewise.
* manual/stdio.texi: Describe hh modifier for scanf/printf.
* math/complex.h: Don't define _Imaginary_I, but instead _Complex_I.
gcc does no yet know the `imaginary' keyword.
* math/test-math.c: Add little test for know gcc bug.
* math/tgmath.h: Make complex versions of log10() only available
if __USE_GNU.
* stdlib/test-canon.c: Fix typo.
* sysdeps/generic/setenv.c: Avoid compilation warnings.
Reported by Jim Meyering.
* sysdeps/generic/bits/errno.h: EILSEQ is an ISO C error number.
* sysdeps/mach/hurd/bits/errno.h: Likewise.
* sysdeps/standalone/bits/errno.h: Likewise.
* sysdeps/unix/sysv/linux/bits/errno.h: Likewise.
* sysdeps/i386/i586/memcpy.S: New file.
* sysdeps/i386/i586/mempcpy.S: New file.
* sysdeps/i386/i586/memset.S: Fix typo.
* sysdeps/posix/getcwd.c: Define HAVE_MEMPCPY for _LIBC. Add casts.
* sysdeps/posix/system.c: Add comment to explain code.
* sysdeps/wordsize-32/inttypes.h: Include <stddef.h> for wchar_t.
Define PTRDIFF_{MIN,MAX}, SIG_ATOMIC_{MIN,MAX}, SIZE_MAX,
WCHAR_{MIN,MAX}, WINT_{MIN,MAX}.
Define wcstoimax, wcstoumax.
* sysdeps/wordsize-64/inttypes.h: Likewise.
* wcsmbs/wchar.h: Define WCHAR_{MIN,MAX} if not already defined.
Declare __wcsto{l,ul,ll,ull}_internal only if not already done.
* time/Makefile (routines): Add strfxtime.
* time/strftime.c: Implement %F and %f format.
* time/strfxtime.c: New file.
* time/time.h: Define new types and symbols from ISO C 9X.
* time/mktime.c: Little comment correction.
1997-11-10 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_sincosl.c: Fix typo.
* sysdeps/libm-ieee754/s_tanl.c: Fix typo.
* sysdeps/libm-ieee754/s_floorl.c: Correct typos.
* sysdeps/libm-ieee754/e_remainderl.c: Replace
EXTRACT_LDOUBLE_WORDS by GET_LDOUBLE_WORDS.
* sysdeps/libm-ieee754/e_atan2l.c: Replace EXTRACT_LDOUBLE_WORDS
by GET_LDOUBLE_WORDS.
* sysdeps/libm-ieee754/s_scalbnl.c: Replace ";" by "," for correct
variable declaration.
* sysdeps/libm-ieee754/s_scalblnl.c: Likewise.
* sysdeps/libm-ieee754/s_lrint.c (__lrint): Correct function.
* math/libm-test.c (sqrt_test): Add test for sqrt (0.25).
(asin_test): Add more test.
1997-11-10 23:34 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/libm-ieee754/e_asin.c: Add braces to make code clearer
and to not confuse the poor compiler.
* sysdeps/libm-ieee754/e_asinf.c: Likewise.
Reported by vertex@cagent.com.
1997-11-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/dl-lookup.c (do_lookup): Don't accept the base version if we
require a specific one.
* libio/oldfreopen.c: Bind old symbols to version GLIBC_2.0.
* libio/oldiofopen.c: Likewise.
* libio/oldstdfiles.c: Likewise.
* libc.map: Export them.
1997-11-10 07:40 H.J. Lu <hjl@gnu.ai.mit.edu>
* stdlib/exit.c (exit): Handle recursive calls to exit ().
1997-11-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_llrint.c: Fixed to take double argument
instead of long double.
* sysdeps/m68k/fpu/s_llrintf.c: New file.
* sysdeps/m68k/fpu/s_llrintl.c: New file.
* sysdeps/libm-ieee754/s_llrint.c: Make compilable and fix
overflow condition.
* sysdeps/libm-ieee754/s_llrintf.c: Fix overflow condition.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise.
* sysdeps/libm-ieee754/s_llround.c: Likewise.
* sysdeps/libm-ieee754/s_llroundf.c: Likewise.
* sysdeps/libm-ieee754/s_llroundl.c: Likewise.
* sysdeps/libm-ieee754/s_lrint.c: Likewise.
* sysdeps/libm-ieee754/s_lrintf.c: Likewise.
* sysdeps/libm-ieee754/s_lrintl.c: Likewise.
* sysdeps/libm-ieee754/s_lround.c: Likewise.
* sysdeps/libm-ieee754/s_lroundf.c: Likewise.
* sysdeps/libm-ieee754/s_lroundl.c: Likewise.
* math/libm-test.c: Test all three variants of lrint and llrint.
Fix typos in lround and llround tests. Add tests for boundary
cases for lrint and llround.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi: Misc doc fixes.
* manual/ctype.texi: Likewise.
* manual/pattern.texi: Likewise.
* manual/terminal.texi: Likewise.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/xstatconv.c: Use struct assignment
instead of memcpy to let the compiler use whatever it regards as
optimal.
* sysdeps/unix/sysv/linux/alpha/xstatconv.c: Likewise.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers)
[$(subdir)=misc]: Add sys/prctl.h.
* sysdeps/unix/sysv/linux/Dist: Distribute it.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/ftwtest-sh: Don't use the unknown which command, instead try
pwd as /bin/pwd and /usr/bin/pwd.
1997-11-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/maint.texi (Tools for Installation): Don't recommend
broken version 3.76.1 of make.
(Porting): Fix wording.
1997-11-06 06:13 H.J. Lu <hjl@gnu.ai.mit.edu>
* config.make.in (build-pic-default): New, defined with
pic_default.
* configure.in (pic_default): New, set to yes if PIC is
default.
* Makeconfig (CPPFLAGS-.o, CPPFLAGS-.op, CPPFLAGS-.og,
CPPFLAGS-.ob): Add -DPIC if $(build-pic-default) is yes.
1997-11-09 18:15 Ulrich Drepper <drepper@cygnus.com>
* Makerules (libc.so): Fix typo.
* csu/Makefile (CFLAGS-initfini.s): Correctly fix moving function
definition. Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
* stdlib/strtod.c: Handle numbers like 0.0e10000 correctly which
produce 0.0. Reported by Joe Keane <jgk@jgk.org>.
* sysdeps/libm-ieee754/s_ceill.c: Fix typos.
* sysdeps/libm-ieee754/s_llrint.c: Correct code, it never worked.
1997-11-06 07:00 H.J. Lu <hjl@gnu.ai.mit.edu>
* sysdeps/unix/sysv/i386/i686/time.S: Removed.
1997-11-08 14:07 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/libnsl.map: Add __do_niscall2 for nis_cachemgr.
* nis/nis_call.c: Set UDP resend timeout correct.
* nis/nss_compat/compat-grp.c: Rewritten to make it faster.
* nis/nss_compat/compat-pwd.c: Likewise.
* nis/nss_compat/compat-spwd.c: Likewise.
* nis/ypclnt.c: Fix UDP resend timeout, fix yp_bind/do_ypcall
interaction.
* inet/protocols/routed.h: Include sys/socket.h.
* inet/protocols/talkd.h: Likewise.
* inet/protocols/timed.h: Include rpc/types.h.
* sunrpc/rpc/pmap_clnt.h: Include rpc/clnt.h.
1997-11-06 01:39 Ulrich Drepper <drepper@cygnus.com>
* Makerules (libc.so): Add missing closing brace.
1997-11-05 Brendan Kehoe <brendan@lisa.cygnus.com>
* libio.h (__P): Name its arg `p' instead of `params'.
This was added solely to work around problems with
the definition of __P in the Solaris math.h header.
1997-11-12 00:06:02 +00:00
1997-07-14 21:49:20 +00:00
1998-05-12 12:22:17 +00:00
VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1997-07-14 21:49:20 +00:00
2021-05-03 06:12:11 +00:00
if test "$pthread_in_libc" = yes; then
$as_echo "#define PTHREAD_IN_LIBC 1" >>confdefs.h
fi
2012-10-19 20:03:12 +00:00
ac_config_files="$ac_config_files config.make Makefile"
2002-10-19 20:07:18 +00:00
2007-06-08 03:17:15 +00:00
ac_config_commands="$ac_config_commands default"
2002-10-19 20:07:18 +00:00
2002-10-17 23:48:55 +00:00
cat >confcache <<\_ACEOF
1997-07-14 21:49:20 +00:00
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
2002-10-17 23:48:55 +00:00
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems. If it contains results you don't
# want to keep, you may remove or edit it.
1997-07-14 21:49:20 +00:00
#
2002-10-17 23:48:55 +00:00
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
1997-07-14 21:49:20 +00:00
#
2002-10-19 20:07:18 +00:00
# `ac_cv_env_foo' variables (set or unset) will be overridden when
2002-10-17 23:48:55 +00:00
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
_ACEOF
1997-07-14 21:49:20 +00:00
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
2007-06-08 03:17:15 +00:00
# So, we kill variables containing newlines.
1997-07-14 21:49:20 +00:00
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
2007-06-08 03:17:15 +00:00
(
for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
2010-07-10 02:25:39 +00:00
*_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2007-06-08 03:17:15 +00:00
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
2009-04-07 06:36:33 +00:00
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
2010-07-10 02:25:39 +00:00
*) { eval $ac_var=; unset $ac_var;} ;;
2007-06-08 03:17:15 +00:00
esac ;;
esac
done
2002-10-17 23:48:55 +00:00
(set) 2>&1 |
2007-06-08 03:17:15 +00:00
case $as_nl`(ac_space=' '; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
2010-07-10 02:25:39 +00:00
# `set' does not quote correctly, so add quotes: double-quote
# substitution turns \\\\ into \\, and sed turns \\ into \.
2002-10-17 23:48:55 +00:00
sed -n \
2004-08-05 03:34:45 +00:00
"s/'/'\\\\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
2007-06-08 03:17:15 +00:00
;; #(
2002-10-17 23:48:55 +00:00
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
2007-06-08 03:17:15 +00:00
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
2002-10-17 23:48:55 +00:00
;;
2007-06-08 03:17:15 +00:00
esac |
sort
) |
2002-10-17 23:48:55 +00:00
sed '
2007-06-08 03:17:15 +00:00
/^ac_cv_env_/b end
2002-10-17 23:48:55 +00:00
t clear
2007-06-08 03:17:15 +00:00
:clear
2002-10-17 23:48:55 +00:00
s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
t end
2007-06-08 03:17:15 +00:00
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
2011-09-11 16:14:48 +00:00
if test "x$cache_file" != "x/dev/null"; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: updating cache $cache_file" >&6;}
2011-09-11 16:14:48 +00:00
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
case $cache_file in #(
*/* | ?:*)
mv -f confcache "$cache_file"$$ &&
mv -f "$cache_file"$$ "$cache_file" ;; #(
*)
mv -f confcache "$cache_file" ;;
esac
fi
fi
1997-07-14 21:49:20 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
1997-07-14 21:49:20 +00:00
fi
fi
rm -f confcache
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
DEFS=-DHAVE_CONFIG_H
2002-10-19 20:07:18 +00:00
ac_libobjs=
ac_ltlibobjs=
2010-12-25 01:14:37 +00:00
U=
2002-10-19 20:07:18 +00:00
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
2007-06-08 03:17:15 +00:00
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
2009-04-07 06:36:33 +00:00
ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
2007-06-08 03:17:15 +00:00
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
2010-07-10 02:25:39 +00:00
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
2002-10-19 20:07:18 +00:00
done
LIBOBJS=$ac_libobjs
LTLIBOBJS=$ac_ltlibobjs
1997-07-14 21:49:20 +00:00
2011-09-11 16:14:48 +00:00
: "${CONFIG_STATUS=./config.status}"
2009-04-07 06:36:33 +00:00
ac_write_fail=0
2002-10-17 23:48:55 +00:00
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
2010-07-10 02:25:39 +00:00
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
2002-10-17 23:48:55 +00:00
#! $SHELL
# Generated by $as_me.
1997-07-14 21:49:20 +00:00
# Run this file to recreate the current configuration.
# Compiler output produced by configure, useful for debugging
2002-10-17 23:48:55 +00:00
# configure, is in config.log if it exists.
1997-07-14 21:49:20 +00:00
2002-10-17 23:48:55 +00:00
debug=false
2003-09-23 12:07:26 +00:00
ac_cs_recheck=false
ac_cs_silent=false
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
SHELL=\${CONFIG_SHELL-$SHELL}
export SHELL
_ASEOF
cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
2002-10-17 23:48:55 +00:00
2007-06-08 03:17:15 +00:00
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
2010-07-10 02:25:39 +00:00
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
2002-10-17 23:48:55 +00:00
emulate sh
NULLCMD=:
2009-04-07 06:36:33 +00:00
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
2002-10-19 20:07:18 +00:00
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
2007-06-08 03:17:15 +00:00
setopt NO_GLOB_SUBST
else
2010-07-10 02:25:39 +00:00
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
2007-06-08 03:17:15 +00:00
esac
fi
2009-04-07 06:36:33 +00:00
as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
2010-07-10 02:25:39 +00:00
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
&& (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='print -r --'
as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
2009-04-07 06:36:33 +00:00
as_echo='printf %s\n'
as_echo_n='printf %s'
else
if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
as_echo_n='/usr/ucb/echo -n'
2009-04-05 18:49:28 +00:00
else
2009-04-07 06:36:33 +00:00
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
2010-07-10 02:25:39 +00:00
case $arg in #(
2009-04-07 06:36:33 +00:00
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
esac;
expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
'
export as_echo_n_body
as_echo_n='sh -c $as_echo_n_body as_echo'
2009-04-05 18:49:28 +00:00
fi
2009-04-07 06:36:33 +00:00
export as_echo_body
as_echo='sh -c $as_echo_body as_echo'
fi
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
2002-10-17 23:48:55 +00:00
fi
2002-10-19 20:07:18 +00:00
2007-06-08 03:17:15 +00:00
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
2011-09-11 16:14:48 +00:00
as_myself=
2010-07-10 02:25:39 +00:00
case $0 in #((
2007-06-08 03:17:15 +00:00
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
2010-07-10 02:25:39 +00:00
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
done
2007-06-08 03:17:15 +00:00
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
2009-04-07 06:36:33 +00:00
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
2010-07-10 02:25:39 +00:00
exit 1
2007-06-08 03:17:15 +00:00
fi
2010-07-10 02:25:39 +00:00
# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there. '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
2007-06-08 03:17:15 +00:00
done
2002-10-19 20:07:18 +00:00
PS1='$ '
PS2='> '
PS4='+ '
# NLS nuisances.
2009-04-07 06:36:33 +00:00
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
2002-10-19 20:07:18 +00:00
2010-07-10 02:25:39 +00:00
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
2010-12-25 01:14:37 +00:00
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
2010-07-10 02:25:39 +00:00
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
2010-12-25 01:14:37 +00:00
# script with STATUS, using 1 if that was 0.
2010-07-10 02:25:39 +00:00
as_fn_error ()
{
2010-12-25 01:14:37 +00:00
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
$as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
2010-07-10 02:25:39 +00:00
fi
2010-12-25 01:14:37 +00:00
$as_echo "$as_me: error: $2" >&2
2010-07-10 02:25:39 +00:00
as_fn_exit $as_status
} # as_fn_error
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
2007-06-08 03:17:15 +00:00
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
2002-10-19 20:07:18 +00:00
as_expr=expr
else
as_expr=false
fi
2007-06-08 03:17:15 +00:00
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
2002-10-19 20:07:18 +00:00
as_basename=basename
else
as_basename=false
fi
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
2002-10-17 23:48:55 +00:00
2007-06-08 03:17:15 +00:00
as_me=`$as_basename -- "$0" ||
2002-10-17 23:48:55 +00:00
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
2007-06-08 03:17:15 +00:00
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
2009-04-07 06:36:33 +00:00
$as_echo X/"$0" |
2007-06-08 03:17:15 +00:00
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
2007-06-08 03:17:15 +00:00
ECHO_C= ECHO_N= ECHO_T=
2010-07-10 02:25:39 +00:00
case `echo -n x` in #(((((
2007-06-08 03:17:15 +00:00
-n*)
2010-07-10 02:25:39 +00:00
case `echo 'xy\c'` in
2007-06-08 03:17:15 +00:00
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
2010-07-10 02:25:39 +00:00
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
2007-06-08 03:17:15 +00:00
esac;;
*)
ECHO_N='-n';;
2002-10-17 23:48:55 +00:00
esac
1997-07-14 21:49:20 +00:00
2002-10-17 23:48:55 +00:00
rm -f conf$$ conf$$.exe conf$$.file
2007-06-08 03:17:15 +00:00
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
2009-04-07 06:36:33 +00:00
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
2014-09-29 14:45:59 +00:00
# In both cases, we have to default to `cp -pR'.
2009-04-07 06:36:33 +00:00
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
2014-09-29 14:45:59 +00:00
as_ln_s='cp -pR'
2009-04-07 06:36:33 +00:00
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
2014-09-29 14:45:59 +00:00
as_ln_s='cp -pR'
2009-04-07 06:36:33 +00:00
fi
2002-10-17 23:48:55 +00:00
else
2014-09-29 14:45:59 +00:00
as_ln_s='cp -pR'
1997-07-14 21:49:20 +00:00
fi
2007-06-08 03:17:15 +00:00
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
1997-07-14 21:49:20 +00:00
2010-07-10 02:25:39 +00:00
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
2010-12-25 01:14:37 +00:00
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
2010-07-10 02:25:39 +00:00
} # as_fn_mkdir_p
2002-10-19 20:07:18 +00:00
if mkdir -p . 2>/dev/null; then
2010-07-10 02:25:39 +00:00
as_mkdir_p='mkdir -p "$as_dir"'
2002-10-19 20:07:18 +00:00
else
2004-08-05 03:34:45 +00:00
test -d ./-p && rmdir ./-p
2002-10-19 20:07:18 +00:00
as_mkdir_p=false
fi
2014-09-29 14:45:59 +00:00
# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
test -f "$1" && test -x "$1"
} # as_fn_executable_p
as_test_x='test -x'
as_executable_p=as_fn_executable_p
1997-07-14 21:49:20 +00:00
2002-10-17 23:48:55 +00:00
# Sed expression to map a string onto a valid CPP name.
2004-08-05 03:34:45 +00:00
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
2002-10-17 23:48:55 +00:00
# Sed expression to map a string onto a valid variable name.
2004-08-05 03:34:45 +00:00
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
2002-10-17 23:48:55 +00:00
exec 6>&1
2010-07-10 02:25:39 +00:00
## ----------------------------------- ##
## Main body of $CONFIG_STATUS script. ##
## ----------------------------------- ##
_ASEOF
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
2002-10-17 23:48:55 +00:00
# report actual input values of CONFIG_FILES etc. instead of their
2007-06-08 03:17:15 +00:00
# values after options handling.
ac_log="
2002-10-19 20:07:18 +00:00
This file was extended by GNU C Library $as_me (see version.h), which was
2014-09-29 14:45:59 +00:00
generated by GNU Autoconf 2.69. Invocation command line was
2002-10-17 23:48:55 +00:00
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
CONFIG_COMMANDS = $CONFIG_COMMANDS
$ $0 $@
2007-06-08 03:17:15 +00:00
on `(hostname || uname -n) 2>/dev/null | sed 1q`
"
2002-10-17 23:48:55 +00:00
_ACEOF
2009-04-07 06:36:33 +00:00
case $ac_config_files in *"
"*) set x $ac_config_files; shift; ac_config_files=$*;;
esac
case $ac_config_headers in *"
"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
esac
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2002-10-17 23:48:55 +00:00
# Files that config.status was made for.
2007-06-08 03:17:15 +00:00
config_files="$ac_config_files"
config_headers="$ac_config_headers"
config_commands="$ac_config_commands"
2002-10-17 23:48:55 +00:00
2007-06-08 03:17:15 +00:00
_ACEOF
2002-10-17 23:48:55 +00:00
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
2002-10-17 23:48:55 +00:00
ac_cs_usage="\
2010-07-10 02:25:39 +00:00
\`$as_me' instantiates files and other configuration actions
from templates according to the current configuration. Unless the files
and actions are specified as TAGs, all are instantiated by default.
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
Usage: $0 [OPTION]... [TAG]...
2002-10-17 23:48:55 +00:00
-h, --help print this help, then exit
2007-06-08 03:17:15 +00:00
-V, --version print version number and configuration settings, then exit
2010-07-10 02:25:39 +00:00
--config print configuration, then exit
2009-04-07 06:36:33 +00:00
-q, --quiet, --silent
do not print progress messages
2002-10-17 23:48:55 +00:00
-d, --debug don't remove temporary files
--recheck update $as_me by reconfiguring in the same conditions
2009-04-07 06:36:33 +00:00
--file=FILE[:TEMPLATE]
instantiate the configuration file FILE
--header=FILE[:TEMPLATE]
instantiate the configuration header FILE
2002-10-17 23:48:55 +00:00
Configuration files:
$config_files
Configuration headers:
$config_headers
Configuration commands:
$config_commands
2017-11-16 06:19:26 +00:00
Report bugs to <https://sourceware.org/bugzilla/>.
2019-09-09 21:10:23 +00:00
GNU C Library home page: <https://www.gnu.org/software/glibc/>.
2010-07-10 02:25:39 +00:00
General help using GNU software: <http://www.gnu.org/gethelp/>."
2002-10-17 23:48:55 +00:00
2007-06-08 03:17:15 +00:00
_ACEOF
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2010-07-10 02:25:39 +00:00
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
2002-10-17 23:48:55 +00:00
ac_cs_version="\\
2002-10-19 20:07:18 +00:00
GNU C Library config.status (see version.h)
2014-09-29 14:45:59 +00:00
configured by $0, generated by GNU Autoconf 2.69,
2010-07-10 02:25:39 +00:00
with options \\"\$ac_cs_config\\"
2002-10-17 23:48:55 +00:00
2014-09-29 14:45:59 +00:00
Copyright (C) 2012 Free Software Foundation, Inc.
2002-10-17 23:48:55 +00:00
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
2007-06-08 03:17:15 +00:00
ac_pwd='$ac_pwd'
srcdir='$srcdir'
INSTALL='$INSTALL'
2009-04-07 06:36:33 +00:00
test -n "\$AWK" || AWK=awk
2002-10-17 23:48:55 +00:00
_ACEOF
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
2002-10-17 23:48:55 +00:00
ac_need_defaults=:
while test $# != 0
do
case $1 in
2011-09-11 16:14:48 +00:00
--*=?*)
2007-06-08 03:17:15 +00:00
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
2002-10-19 20:07:18 +00:00
ac_shift=:
;;
2011-09-11 16:14:48 +00:00
--*=)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=
ac_shift=:
;;
2007-06-08 03:17:15 +00:00
*)
2002-10-19 20:07:18 +00:00
ac_option=$1
ac_optarg=$2
ac_shift=shift
2002-10-17 23:48:55 +00:00
;;
1997-07-14 21:49:20 +00:00
esac
2002-10-19 20:07:18 +00:00
case $ac_option in
2002-10-17 23:48:55 +00:00
# Handling of the options.
2003-09-23 12:07:26 +00:00
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
2007-06-08 03:17:15 +00:00
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
2009-04-07 06:36:33 +00:00
$as_echo "$ac_cs_version"; exit ;;
2010-07-10 02:25:39 +00:00
--config | --confi | --conf | --con | --co | --c )
$as_echo "$ac_cs_config"; exit ;;
2007-06-08 03:17:15 +00:00
--debug | --debu | --deb | --de | --d | -d )
2002-10-17 23:48:55 +00:00
debug=: ;;
--file | --fil | --fi | --f )
2002-10-19 20:07:18 +00:00
$ac_shift
2009-04-07 06:36:33 +00:00
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
2011-09-11 16:14:48 +00:00
'') as_fn_error $? "missing file argument" ;;
2009-04-07 06:36:33 +00:00
esac
2010-07-10 02:25:39 +00:00
as_fn_append CONFIG_FILES " '$ac_optarg'"
2002-10-17 23:48:55 +00:00
ac_need_defaults=false;;
--header | --heade | --head | --hea )
2002-10-19 20:07:18 +00:00
$ac_shift
2009-04-07 06:36:33 +00:00
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
2010-07-10 02:25:39 +00:00
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
2002-10-17 23:48:55 +00:00
ac_need_defaults=false;;
2007-06-08 03:17:15 +00:00
--he | --h)
# Conflict between --help and --header
2010-12-25 01:14:37 +00:00
as_fn_error $? "ambiguous option: \`$1'
2010-07-10 02:25:39 +00:00
Try \`$0 --help' for more information.";;
2007-06-08 03:17:15 +00:00
--help | --hel | -h )
2009-04-07 06:36:33 +00:00
$as_echo "$ac_cs_usage"; exit ;;
2003-09-23 12:07:26 +00:00
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
2002-10-17 23:48:55 +00:00
# This is an error.
2010-12-25 01:14:37 +00:00
-*) as_fn_error $? "unrecognized option: \`$1'
2010-07-10 02:25:39 +00:00
Try \`$0 --help' for more information." ;;
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
*) as_fn_append ac_config_targets " $1"
2007-06-08 03:17:15 +00:00
ac_need_defaults=false ;;
1997-07-14 21:49:20 +00:00
2002-10-17 23:48:55 +00:00
esac
shift
done
2003-09-23 12:07:26 +00:00
ac_configure_extra_args=
if $ac_cs_silent; then
exec 6>/dev/null
ac_configure_extra_args="$ac_configure_extra_args --silent"
fi
_ACEOF
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2003-09-23 12:07:26 +00:00
if \$ac_cs_recheck; then
2014-09-29 14:45:59 +00:00
set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
2009-04-07 06:36:33 +00:00
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
2007-06-08 03:17:15 +00:00
export CONFIG_SHELL
2009-04-07 06:36:33 +00:00
exec "\$@"
2003-09-23 12:07:26 +00:00
fi
2002-10-17 23:48:55 +00:00
_ACEOF
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
2007-06-08 03:17:15 +00:00
exec 5>>config.log
{
echo
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
2009-04-07 06:36:33 +00:00
$as_echo "$ac_log"
2007-06-08 03:17:15 +00:00
} >&5
2002-10-17 23:48:55 +00:00
2007-06-08 03:17:15 +00:00
_ACEOF
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2002-10-17 23:48:55 +00:00
#
2007-06-08 03:17:15 +00:00
# INIT-COMMANDS
2002-10-17 23:48:55 +00:00
#
config_vars='$config_vars'
_ACEOF
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
2007-06-08 03:17:15 +00:00
# Handling of arguments.
2002-10-17 23:48:55 +00:00
for ac_config_target in $ac_config_targets
do
2007-06-08 03:17:15 +00:00
case $ac_config_target in
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
"config.make") CONFIG_FILES="$CONFIG_FILES config.make" ;;
2012-10-19 20:03:12 +00:00
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
2007-06-08 03:17:15 +00:00
"default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
2010-12-25 01:14:37 +00:00
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
2002-10-17 23:48:55 +00:00
esac
done
2007-06-08 03:17:15 +00:00
2002-10-17 23:48:55 +00:00
# If the user did not use the arguments to specify the items to instantiate,
# then the envvar interface is used. Set only those that are not.
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
fi
2003-09-23 12:07:26 +00:00
# Have a temporary directory for convenience. Make it in the build tree
2007-06-08 03:17:15 +00:00
# simply because there is no reason against having it here, and in addition,
2003-09-23 12:07:26 +00:00
# creating and moving files from /tmp can sometimes cause problems.
2007-06-08 03:17:15 +00:00
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
# after its creation but before its name has been assigned to `$tmp'.
2002-10-17 23:48:55 +00:00
$debug ||
{
2011-09-11 16:14:48 +00:00
tmp= ac_tmp=
2007-06-08 03:17:15 +00:00
trap 'exit_status=$?
2011-09-11 16:14:48 +00:00
: "${ac_tmp:=$tmp}"
{ test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
2007-06-08 03:17:15 +00:00
' 0
2010-07-10 02:25:39 +00:00
trap 'as_fn_exit 1' 1 2 13 15
2002-10-17 23:48:55 +00:00
}
# Create a (secure) tmp directory for tmp files.
2003-09-23 12:07:26 +00:00
2002-10-17 23:48:55 +00:00
{
2007-06-08 03:17:15 +00:00
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
2011-09-11 16:14:48 +00:00
test -d "$tmp"
2002-10-17 23:48:55 +00:00
} ||
{
2007-06-08 03:17:15 +00:00
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
2010-12-25 01:14:37 +00:00
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
2011-09-11 16:14:48 +00:00
ac_tmp=$tmp
2002-10-17 23:48:55 +00:00
2009-04-07 06:36:33 +00:00
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
# This happens for instance with `./config.status config.h'.
2007-06-08 03:17:15 +00:00
if test -n "$CONFIG_FILES"; then
2009-04-05 18:49:28 +00:00
2010-07-10 02:25:39 +00:00
ac_cr=`echo X | tr X '\015'`
# On cygwin, bash can eat \r inside `` if the user requested igncr.
# But we know of no other shell where ac_cr would be empty at this
# point, so we can use a bashism as a fallback.
if test "x$ac_cr" = x; then
eval ac_cr=\$\'\\r\'
fi
2009-04-07 06:36:33 +00:00
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
2010-12-25 01:14:37 +00:00
ac_cs_awk_cr='\\r'
2009-04-07 06:36:33 +00:00
else
ac_cs_awk_cr=$ac_cr
2007-06-08 03:17:15 +00:00
fi
2011-09-11 16:14:48 +00:00
echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
2007-06-08 03:17:15 +00:00
_ACEOF
2009-04-07 06:36:33 +00:00
{
echo "cat >conf$$subs.awk <<_ACEOF" &&
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
2010-12-25 01:14:37 +00:00
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
2007-06-08 03:17:15 +00:00
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
2009-04-07 06:36:33 +00:00
. ./conf$$subs.sh ||
2010-12-25 01:14:37 +00:00
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
2009-04-07 06:36:33 +00:00
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
2007-06-08 03:17:15 +00:00
break
elif $ac_last_try; then
2010-12-25 01:14:37 +00:00
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
2007-06-08 03:17:15 +00:00
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
2009-04-07 06:36:33 +00:00
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2011-09-11 16:14:48 +00:00
cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
2009-04-07 06:36:33 +00:00
_ACEOF
sed -n '
h
s/^/S["/; s/!.*/"]=/
p
g
s/^[^!]*!//
:repl
t repl
s/'"$ac_delim"'$//
t delim
:nl
h
2010-07-10 02:25:39 +00:00
s/\(.\{148\}\)..*/\1/
2009-04-07 06:36:33 +00:00
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
n
b repl
:more1
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t nl
:delim
h
2010-07-10 02:25:39 +00:00
s/\(.\{148\}\)..*/\1/
2009-04-07 06:36:33 +00:00
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
b
:more2
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t delim
' <conf$$subs.awk | sed '
/^[^""]/{
N
s/\n//
}
' >>$CONFIG_STATUS || ac_write_fail=1
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
2011-09-11 16:14:48 +00:00
cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
2009-04-07 06:36:33 +00:00
for (key in S) S_is_set[key] = 1
FS = " "
2009-04-02 17:00:46 +00:00
2009-04-07 06:36:33 +00:00
}
{
line = $ 0
nfields = split(line, field, "@")
substed = 0
len = length(field[1])
for (i = 2; i < nfields; i++) {
key = field[i]
keylen = length(key)
if (S_is_set[key]) {
value = S[key]
line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
len += length(value) + length(field[++i])
substed = 1
} else
len += 1 + keylen
}
print line
}
1997-07-14 21:49:20 +00:00
2009-04-07 06:36:33 +00:00
_ACAWK
2007-06-08 03:17:15 +00:00
_ACEOF
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
2011-09-11 16:14:48 +00:00
fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
2010-12-25 01:14:37 +00:00
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
2002-10-17 23:48:55 +00:00
_ACEOF
2007-06-08 03:17:15 +00:00
2010-12-25 01:14:37 +00:00
# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
2007-06-08 03:17:15 +00:00
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
2010-12-25 01:14:37 +00:00
ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
h
s///
s/^/:/
s/[ ]*$/:/
s/:\$(srcdir):/:/g
s/:\${srcdir}:/:/g
s/:@srcdir@:/:/g
s/^:*//
2007-06-08 03:17:15 +00:00
s/:*$//
2010-12-25 01:14:37 +00:00
x
s/\(=[ ]*\).*/\1/
G
s/\n//
2007-06-08 03:17:15 +00:00
s/^[^=]*=[ ]*$//
}'
fi
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
2007-06-08 03:17:15 +00:00
fi # test -n "$CONFIG_FILES"
2009-04-07 06:36:33 +00:00
# Set up the scripts for CONFIG_HEADERS section.
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
2011-09-11 16:14:48 +00:00
cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
2009-04-07 06:36:33 +00:00
BEGIN {
_ACEOF
# Transform confdefs.h into an awk script `defines.awk', embedded as
# here-document in config.status, that substitutes the proper values into
# config.h.in to produce config.h.
# Create a delimiter string that does not exist in confdefs.h, to ease
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
2011-09-11 16:14:48 +00:00
ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
if test -z "$ac_tt"; then
2009-04-07 06:36:33 +00:00
break
elif $ac_last_try; then
2010-12-25 01:14:37 +00:00
as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
2009-04-07 06:36:33 +00:00
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
# For the awk script, D is an array of macro values keyed by name,
# likewise P contains macro parameters if any. Preserve backslash
# newline sequences.
ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
sed -n '
s/.\{148\}/&'"$ac_delim"'/g
t rset
:rset
s/^[ ]*#[ ]*define[ ][ ]*/ /
t def
d
:def
s/\\$//
t bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3"/p
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
d
:bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3\\\\\\n"\\/p
t cont
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
t cont
d
:cont
n
s/.\{148\}/&'"$ac_delim"'/g
t clear
:clear
s/\\$//
t bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/"/p
d
:bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
b cont
' <confdefs.h | sed '
s/'"$ac_delim"'/"\\\
"/g' >>$CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
for (key in D) D_is_set[key] = 1
FS = " "
}
/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
line = \$ 0
split(line, arg, " ")
if (arg[1] == "#") {
defundef = arg[2]
mac1 = arg[3]
} else {
defundef = substr(arg[1], 2)
mac1 = arg[2]
}
split(mac1, mac2, "(") #)
macro = mac2[1]
prefix = substr(line, 1, index(line, defundef) - 1)
if (D_is_set[macro]) {
# Preserve the white space surrounding the "#".
print prefix "define", macro P[macro] D[macro]
next
} else {
# Replace #undef with comments. This is necessary, for example,
# in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
if (defundef == "undef") {
print "/*", prefix defundef, macro, "*/"
next
}
}
}
{ print }
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
2010-12-25 01:14:37 +00:00
as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
2009-04-07 06:36:33 +00:00
fi # test -n "$CONFIG_HEADERS"
2007-06-08 03:17:15 +00:00
2009-04-07 06:36:33 +00:00
eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
shift
for ac_tag
2007-06-08 03:17:15 +00:00
do
case $ac_tag in
:[FHLC]) ac_mode=$ac_tag; continue;;
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
2010-12-25 01:14:37 +00:00
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
2007-06-08 03:17:15 +00:00
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
1997-07-14 21:49:20 +00:00
esac
2007-06-08 03:17:15 +00:00
ac_save_IFS=$IFS
IFS=:
set x $ac_tag
IFS=$ac_save_IFS
shift
ac_file=$1
shift
case $ac_mode in
:L) ac_source=$1;;
:[FH])
ac_file_inputs=
for ac_f
do
case $ac_f in
2011-09-11 16:14:48 +00:00
-) ac_f="$ac_tmp/stdin";;
2007-06-08 03:17:15 +00:00
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
test -f "$ac_f" ||
case $ac_f in
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
2010-12-25 01:14:37 +00:00
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
2007-06-08 03:17:15 +00:00
esac
2009-04-07 06:36:33 +00:00
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
2010-07-10 02:25:39 +00:00
as_fn_append ac_file_inputs " '$ac_f'"
2007-06-08 03:17:15 +00:00
done
1997-07-14 21:49:20 +00:00
2007-06-08 03:17:15 +00:00
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
2009-04-07 06:36:33 +00:00
configure_input='Generated from '`
$as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
2007-06-08 03:17:15 +00:00
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: creating $ac_file" >&6;}
2007-06-08 03:17:15 +00:00
fi
2009-04-07 06:36:33 +00:00
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
ac_sed_conf_input=`$as_echo "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
2007-06-08 03:17:15 +00:00
case $ac_tag in
2011-09-11 16:14:48 +00:00
*:-:* | *:-) cat >"$ac_tmp/stdin" \
2010-12-25 01:14:37 +00:00
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
2007-06-08 03:17:15 +00:00
esac
;;
esac
ac_dir=`$as_dirname -- "$ac_file" ||
2002-10-17 23:48:55 +00:00
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
2004-08-05 03:34:45 +00:00
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
2007-06-08 03:17:15 +00:00
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
2009-04-07 06:36:33 +00:00
$as_echo X"$ac_file" |
2007-06-08 03:17:15 +00:00
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
2010-07-10 02:25:39 +00:00
as_dir="$ac_dir"; as_fn_mkdir_p
2002-10-17 23:48:55 +00:00
ac_builddir=.
2007-06-08 03:17:15 +00:00
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
2009-04-07 06:36:33 +00:00
ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
2007-06-08 03:17:15 +00:00
# A ".." for each directory in $ac_dir_suffix.
2009-04-07 06:36:33 +00:00
ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
2007-06-08 03:17:15 +00:00
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
2002-10-17 23:48:55 +00:00
case $srcdir in
2007-06-08 03:17:15 +00:00
.) # We are building in place.
2002-10-17 23:48:55 +00:00
ac_srcdir=.
2007-06-08 03:17:15 +00:00
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
2002-10-17 23:48:55 +00:00
ac_srcdir=$srcdir$ac_dir_suffix;
2007-06-08 03:17:15 +00:00
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
2002-10-17 23:48:55 +00:00
esac
2007-06-08 03:17:15 +00:00
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
2004-08-05 03:34:45 +00:00
1997-07-14 21:49:20 +00:00
2007-06-08 03:17:15 +00:00
case $ac_mode in
:F)
#
# CONFIG_FILE
#
2002-10-17 23:48:55 +00:00
case $INSTALL in
[\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
2007-06-08 03:17:15 +00:00
*) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
1997-07-14 21:49:20 +00:00
esac
2007-06-08 03:17:15 +00:00
_ACEOF
1997-07-14 21:49:20 +00:00
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
2007-06-08 03:17:15 +00:00
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
2009-04-07 06:36:33 +00:00
ac_sed_dataroot='
/datarootdir/ {
2007-06-08 03:17:15 +00:00
p
q
}
/@datadir@/p
/@docdir@/p
/@infodir@/p
/@localedir@/p
2010-07-10 02:25:39 +00:00
/@mandir@/p'
2009-04-07 06:36:33 +00:00
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
2007-06-08 03:17:15 +00:00
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
2007-06-08 03:17:15 +00:00
_ACEOF
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2007-06-08 03:17:15 +00:00
ac_datarootdir_hack='
s&@datadir@&$datadir&g
s&@docdir@&$docdir&g
s&@infodir@&$infodir&g
s&@localedir@&$localedir&g
s&@mandir@&$mandir&g
2010-07-10 02:25:39 +00:00
s&\\\${datarootdir}&$datarootdir&g' ;;
2007-06-08 03:17:15 +00:00
esac
2002-10-17 23:48:55 +00:00
_ACEOF
2007-06-08 03:17:15 +00:00
# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_sed_extra="$ac_vpsub
2002-10-17 23:48:55 +00:00
$extrasub
_ACEOF
2009-04-07 06:36:33 +00:00
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
2002-10-17 23:48:55 +00:00
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
2009-04-07 06:36:33 +00:00
s|@configure_input@|$ac_sed_conf_input|;t t
2007-06-08 03:17:15 +00:00
s&@top_builddir@&$ac_top_builddir_sub&;t t
2009-04-07 06:36:33 +00:00
s&@top_build_prefix@&$ac_top_build_prefix&;t t
2007-06-08 03:17:15 +00:00
s&@srcdir@&$ac_srcdir&;t t
s&@abs_srcdir@&$ac_abs_srcdir&;t t
s&@top_srcdir@&$ac_top_srcdir&;t t
s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
s&@builddir@&$ac_builddir&;t t
s&@abs_builddir@&$ac_abs_builddir&;t t
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
s&@INSTALL@&$ac_INSTALL&;t t
$ac_datarootdir_hack
2009-04-07 06:36:33 +00:00
"
2011-09-11 16:14:48 +00:00
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
>$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
2007-06-08 03:17:15 +00:00
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
2011-09-11 16:14:48 +00:00
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
2010-12-25 01:14:37 +00:00
which seems to be undefined. Please make sure it is defined" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
2010-12-25 01:14:37 +00:00
which seems to be undefined. Please make sure it is defined" >&2;}
2007-06-08 03:17:15 +00:00
2011-09-11 16:14:48 +00:00
rm -f "$ac_tmp/stdin"
2002-10-17 23:48:55 +00:00
case $ac_file in
2011-09-11 16:14:48 +00:00
-) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
*) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
2009-04-07 06:36:33 +00:00
esac \
2010-12-25 01:14:37 +00:00
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
2007-06-08 03:17:15 +00:00
;;
:H)
#
# CONFIG_HEADER
#
2002-10-17 23:48:55 +00:00
if test x"$ac_file" != x-; then
2009-04-07 06:36:33 +00:00
{
$as_echo "/* $configure_input */" \
2011-09-11 16:14:48 +00:00
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
} >"$ac_tmp/config.h" \
2010-12-25 01:14:37 +00:00
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
2011-09-11 16:14:48 +00:00
if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: $ac_file is unchanged" >&6;}
2002-10-17 23:48:55 +00:00
else
2009-04-07 06:36:33 +00:00
rm -f "$ac_file"
2011-09-11 16:14:48 +00:00
mv "$ac_tmp/config.h" "$ac_file" \
2010-12-25 01:14:37 +00:00
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
2002-10-19 20:07:18 +00:00
fi
else
2009-04-07 06:36:33 +00:00
$as_echo "/* $configure_input */" \
2011-09-11 16:14:48 +00:00
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
2010-12-25 01:14:37 +00:00
|| as_fn_error $? "could not create -" "$LINENO" 5
2002-10-19 20:07:18 +00:00
fi
2007-06-08 03:17:15 +00:00
;;
2004-08-05 03:34:45 +00:00
2010-07-10 02:25:39 +00:00
:C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: executing $ac_file commands" >&6;}
2007-06-08 03:17:15 +00:00
;;
esac
2002-10-17 23:48:55 +00:00
2007-06-08 03:17:15 +00:00
case $ac_file$ac_mode in
"default":C)
1998-06-07 14:06:56 +00:00
case $CONFIG_FILES in *config.make*)
echo "$config_vars" >> config.make;;
esac
2002-10-17 23:48:55 +00:00
test -d bits || mkdir bits ;;
2007-06-08 03:17:15 +00:00
2002-10-17 23:48:55 +00:00
esac
2007-06-08 03:17:15 +00:00
done # for ac_tag
2002-10-17 23:48:55 +00:00
2010-07-10 02:25:39 +00:00
as_fn_exit 0
2002-10-17 23:48:55 +00:00
_ACEOF
ac_clean_files=$ac_clean_files_save
2009-04-07 06:36:33 +00:00
test $ac_write_fail = 0 ||
2010-12-25 01:14:37 +00:00
as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
2009-04-07 06:36:33 +00:00
2002-10-17 23:48:55 +00:00
# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
# by configure, so config.status won't be able to write to it; its
# output is simply discarded. So we exec the FD to /dev/null,
# effectively closing config.log, so it can be properly (re)opened and
# appended to by config.status. When coming back to configure, we
# need to make the FD available again.
if test "$no_create" != yes; then
ac_cs_success=:
2003-09-23 12:07:26 +00:00
ac_config_status_args=
test "$silent" = yes &&
ac_config_status_args="$ac_config_status_args --quiet"
2002-10-17 23:48:55 +00:00
exec 5>/dev/null
2003-09-23 12:07:26 +00:00
$SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
2002-10-17 23:48:55 +00:00
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
2010-12-25 01:14:37 +00:00
$ac_cs_success || as_fn_exit 1
2002-10-17 23:48:55 +00:00
fi
1997-07-14 21:49:20 +00:00
2002-10-17 23:48:55 +00:00
#
# CONFIG_SUBDIRS section.
#
1997-07-14 21:49:20 +00:00
if test "$no_recursion" != yes; then
2009-04-07 06:36:33 +00:00
# Remove --cache-file, --srcdir, and --disable-option-checking arguments
# so they do not pile up.
1997-07-14 21:49:20 +00:00
ac_sub_configure_args=
ac_prev=
2007-06-08 03:17:15 +00:00
eval "set x $ac_configure_args"
shift
for ac_arg
do
1997-07-14 21:49:20 +00:00
if test -n "$ac_prev"; then
ac_prev=
continue
fi
2002-10-17 23:48:55 +00:00
case $ac_arg in
1997-07-14 21:49:20 +00:00
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
2002-10-17 23:48:55 +00:00
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
| --c=*)
;;
--config-cache | -C)
1997-07-14 21:49:20 +00:00
;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
;;
2002-10-17 23:48:55 +00:00
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
;;
2009-04-07 06:36:33 +00:00
--disable-option-checking)
;;
2007-06-08 03:17:15 +00:00
*)
case $ac_arg in
2009-04-07 06:36:33 +00:00
*\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2007-06-08 03:17:15 +00:00
esac
2010-07-10 02:25:39 +00:00
as_fn_append ac_sub_configure_args " '$ac_arg'" ;;
1997-07-14 21:49:20 +00:00
esac
done
2002-10-17 23:48:55 +00:00
# Always prepend --prefix to ensure using the same prefix
# in subdir configurations.
2007-06-08 03:17:15 +00:00
ac_arg="--prefix=$prefix"
case $ac_arg in
2009-04-07 06:36:33 +00:00
*\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2007-06-08 03:17:15 +00:00
esac
ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
# Pass --silent
if test "$silent" = yes; then
ac_sub_configure_args="--silent $ac_sub_configure_args"
fi
2002-10-17 23:48:55 +00:00
2009-04-07 06:36:33 +00:00
# Always prepend --disable-option-checking to silence warnings, since
# different subdirs can have different --enable and --with options.
ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args"
2002-10-17 23:48:55 +00:00
ac_popdir=`pwd`
for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue
1997-07-14 21:49:20 +00:00
# Do not complain, so a configure script can configure whichever
# parts of a large source tree are present.
2007-06-08 03:17:15 +00:00
test -d "$srcdir/$ac_dir" || continue
ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
2010-07-10 02:25:39 +00:00
$as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$ac_msg" >&6
2010-07-10 02:25:39 +00:00
as_dir="$ac_dir"; as_fn_mkdir_p
2002-10-17 23:48:55 +00:00
ac_builddir=.
1997-07-14 21:49:20 +00:00
2007-06-08 03:17:15 +00:00
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
2009-04-07 06:36:33 +00:00
ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
2007-06-08 03:17:15 +00:00
# A ".." for each directory in $ac_dir_suffix.
2009-04-07 06:36:33 +00:00
ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
2007-06-08 03:17:15 +00:00
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
1997-07-14 21:49:20 +00:00
2002-10-17 23:48:55 +00:00
case $srcdir in
2007-06-08 03:17:15 +00:00
.) # We are building in place.
2002-10-17 23:48:55 +00:00
ac_srcdir=.
2007-06-08 03:17:15 +00:00
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
2002-10-17 23:48:55 +00:00
ac_srcdir=$srcdir$ac_dir_suffix;
2007-06-08 03:17:15 +00:00
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
2004-08-05 03:34:45 +00:00
esac
2007-06-08 03:17:15 +00:00
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
2002-10-17 23:48:55 +00:00
2007-06-08 03:17:15 +00:00
cd "$ac_dir"
1997-07-14 21:49:20 +00:00
# Check for guested configure; otherwise get Cygnus style configure.
2007-06-08 03:17:15 +00:00
if test -f "$ac_srcdir/configure.gnu"; then
ac_sub_configure=$ac_srcdir/configure.gnu
elif test -f "$ac_srcdir/configure"; then
ac_sub_configure=$ac_srcdir/configure
elif test -f "$ac_srcdir/configure.in"; then
# This should be Cygnus configure.
ac_sub_configure=$ac_aux_dir/configure
1997-07-14 21:49:20 +00:00
else
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
1997-07-14 21:49:20 +00:00
ac_sub_configure=
fi
# The recursion is here.
if test -n "$ac_sub_configure"; then
# Make the cache file name correct relative to the subdirectory.
2002-10-17 23:48:55 +00:00
case $cache_file in
[\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;;
2007-06-08 03:17:15 +00:00
*) # Relative name.
ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
1997-07-14 21:49:20 +00:00
esac
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
1997-07-14 21:49:20 +00:00
# The eval makes quoting arguments work.
2007-06-08 03:17:15 +00:00
eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
--cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
2010-12-25 01:14:37 +00:00
as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
1997-07-14 21:49:20 +00:00
fi
2007-06-08 03:17:15 +00:00
cd "$ac_popdir"
1997-07-14 21:49:20 +00:00
done
fi
2009-04-07 06:36:33 +00:00
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
2010-07-10 02:25:39 +00:00
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
2009-04-07 06:36:33 +00:00
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
1997-07-14 21:49:20 +00:00