Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
glibc/sysdeps/unix/sysv/linux/configure.in
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
188 lines (177 sloc)
6.11 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sinclude(./aclocal.m4)dnl Autoconf lossage | |
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. | |
# Local configure fragment for sysdeps/unix/sysv/linux. | |
# On Linux, the default is to use libio instead of stdio. | |
test $stdio = default && stdio=libio | |
# Don't bother trying to generate any glue code to be compatible with the | |
# existing system library, because we are the only system library. | |
inhibit_glue=yes | |
define([LIBC_LINUX_VERSION],[2.0.10])dnl | |
if test -n "$sysheaders"; then | |
OLD_CPPFLAGS=$CPPFLAGS | |
CPPFLAGS="$CPPFLAGS $SYSINCLUDES" | |
fi | |
define([libc_cv_linuxVER], [libc_cv_linux]patsubst(LIBC_LINUX_VERSION,[\.]))dnl | |
AC_CACHE_CHECK(installed Linux kernel header files, libc_cv_linuxVER, [dnl | |
AC_EGREP_CPP([eat flaming death], [#include <linux/version.h> | |
#if !defined LINUX_VERSION_CODE || LINUX_VERSION_CODE < ]dnl | |
patsubst(LIBC_LINUX_VERSION,[^\([^.]*\)\.\([^.]*\)\.\([^.]*\)$],dnl | |
[ (\1 *65536+ \2 *256+ \3) /* \1.\2.\3 */])[ | |
eat flaming death | |
#endif], | |
libc_cv_linuxVER='TOO OLD!', | |
libc_cv_linuxVER='LIBC_LINUX_VERSION or later')]) | |
if test "$libc_cv_linuxVER" != 'LIBC_LINUX_VERSION or later'; then | |
AC_MSG_ERROR([GNU libc requires kernel header files from | |
Linux LIBC_LINUX_VERSION or later to be installed before configuring. | |
The kernel header files are found usually in /usr/include/asm and | |
/usr/include/linux; make sure these directories use files from | |
Linux LIBC_LINUX_VERSION or later. This check uses <linux/version.h>, so | |
make sure that file was built correctly when installing the kernel header | |
files. To use kernel headers not from /usr/include/linux, use the | |
configure option --with-headers.]) | |
fi | |
# If the user gave a minimal version number test whether the available | |
# kernel headers are young enough. Additionally we have minimal | |
# kernel versions for some architectures. | |
case "$machine" in | |
mips*) | |
arch_minimum_kernel=2.2.15 | |
;; | |
sh*) | |
arch_minimum_kernel=2.3.99 | |
;; | |
ia64*) | |
arch_minimum_kernel=2.4.0 | |
;; | |
*) | |
arch_minimum_kernel=2.0.10 | |
;; | |
esac | |
if test -n "$minimum_kernel"; then | |
changequote(,) | |
user_version=$((`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`)) | |
arch_version=$((`echo "$arch_minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`)) | |
changequote([,]) | |
if test $user_version -lt $arch_version; then | |
AC_MSG_WARN([minimum kernel version reset to $arch_minimum_kernel]) | |
minimum_kernel=$arch_minimum_kernel | |
fi | |
else | |
if test $arch_minimum_kernel != '2.0.10'; then | |
minimum_kernel=$arch_minimum_kernel | |
fi | |
fi | |
if test -n "$minimum_kernel"; then | |
AC_MSG_CHECKING(for kernel header at least $minimum_kernel) | |
changequote(,)dnl | |
decnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 65536 + \2 * 256 + \3)/'`; | |
changequote([,])dnl | |
AC_EGREP_CPP([eat flaming death], [#include <linux/version.h> | |
#if LINUX_VERSION_CODE < $decnum | |
eat flaming death | |
#endif], libc_minimum_kernel='too old!', libc_minimum_kernel=ok) | |
AC_MSG_RESULT($libc_minimum_kernel) | |
if test "$libc_minimum_kernel" = ok; then | |
AC_DEFINE_UNQUOTED(__LINUX_KERNEL_VERSION, $decnum) | |
else | |
AC_MSG_ERROR([*** The available kernel headers are older than the requested | |
*** compatible kernel version]) | |
fi | |
fi | |
if test -n "$sysheaders"; then | |
CPPFLAGS=$OLD_CPPFLAGS | |
fi | |
# The Linux filesystem standard prescribes where to place "essential" | |
# files. I.e., when the installation prefix is "/usr" we have to place | |
# shared library objects and the configuration files on the root partition | |
# in /lib and /etc. | |
if test "$prefix" = "/usr" -o "$prefix" = "/usr/"; then | |
# 64bit libraries on sparc go to /lib64 and not /lib | |
if test "$machine" = "sparc/sparc64"; then | |
libc_cv_slibdir="/lib64" | |
if test "$libdir" = '${exec_prefix}/lib'; then | |
libdir='${exec_prefix}/lib64'; | |
# Locale data can be shared between 32bit and 64bit libraries | |
libc_cv_localedir='${exec_prefix}/lib/locale' | |
fi | |
else | |
libc_cv_slibdir="/lib" | |
fi | |
# Allow the user to override the path with --sysconfdir | |
if test $sysconfdir = '${prefix}/etc'; then | |
libc_cv_sysconfdir=/etc | |
else | |
libc_cv_sysconfdir=$sysconfdir | |
fi | |
libc_cv_rootsbindir="/sbin" | |
fi | |
# Under Linux the LinuxThreads add-on should be available. | |
case $add_ons in | |
# It is available. Good. | |
*linuxthreads*) | |
message= | |
;; | |
*) | |
message="\ | |
*** WARNING: Are you sure you do not want to use the \`linuxthreads' | |
*** add-on?" | |
;; | |
esac | |
if test "$message"; then | |
if test $enable_sanity = yes; then | |
echo "\ | |
*** You should not compile the GNU libc without the \`linuxthreads' | |
*** add-on. Not using them risks being incompatible with the | |
*** libraries of other systems. Consider getting the add-on and restarting | |
*** the configuration. | |
*** If you really mean to not use this add-on, run configure again | |
*** using the extra parameter \`--disable-sanity-checks'." | |
exit 1 | |
else | |
echo "$message" | |
fi | |
fi | |
# One Linux we use ldconfig. | |
use_ldconfig=yes | |
# We need some extensions to the `ldd' script. | |
changequote(,) | |
case "$machine" in | |
i[3456]86* | m68*) | |
ldd_rewrite_script=../sysdeps/unix/sysv/linux/ldd-rewrite.sed | |
;; | |
sparc*) | |
ldd_rewrite_script=../sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed | |
;; | |
*) | |
;; | |
esac | |
changequote([,]) | |
if test $host = $build; then | |
# If $prefix/include/{net,scsi} are symlinks, make install will | |
# clobber what they're linked to (probably a kernel tree). | |
# test -L ought to work on all Linux boxes. | |
if test "x$prefix" != xNONE; then | |
ac_prefix=$prefix | |
else | |
ac_prefix=$ac_default_prefix | |
fi | |
AC_MSG_CHECKING([for symlinks in ${ac_prefix}/include]) | |
ac_message= | |
if test -L ${ac_prefix}/include/net; then | |
ac_message="$ac_message | |
${ac_prefix}/include/net is a symlink" | |
fi | |
if test -L ${ac_prefix}/include/scsi; then | |
ac_message="$ac_message | |
${ac_prefix}/include/scsi is a symlink" | |
fi | |
if test -n "$ac_message"; then | |
AC_MSG_ERROR([$ac_message | |
\`make install' will destroy the target of the link(s). | |
Delete the links and re-run configure, or better still, move the entire | |
${ac_prefix}/include directory out of the way.]) | |
else | |
AC_MSG_RESULT(ok) | |
fi | |
fi |