mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 06:50:12 +00:00
dba6ec9548
On some platforms (HPUX, SOLARIS, AIX), we forcibly set CC or set a default CC, because we must use a specific compiler to build kernel modules, and we specify certain compiler-specific flags. But we do this after AC_PROG_CC has run, which also searches for a compiler to use, and runs a few tests against it. AC_PROG_CC often chooses a different compiler (it prefers gcc if it's available). As a result, some compiler-derived info may be wrong, which can yield confusing results, even breaking the build depending on what the user's PATH is, or what compilers are installed on the system. We can avoid all of this if we move our CC-setting logic to before AC_PROG_CC is called. This is a little tricky, because our logic to set AFS_SYSNAME requires the C compiler, so we must do this before OPENAFS_SYSNAME, and also before AC_USE_SYSTEM_EXTENSIONS, or any other autoconf macro that uses the C compiler. Move our CC-setting logic into a new macro, OPENAFS_PATH_CC, which is separate from OPENAFS_CONFIGURE_COMMON and must be called before OPENAFS_CONFIGURE_COMMON. Add some safeguards to try to detect if AC_PROG_CC is already called to try to prevent future changes from breaking this; this isn't perfect, but it's better than nothing. Change-Id: I7c327df5acc5d1ff701b70825eecaaaab4aa44a8 Reviewed-on: https://gerrit.openafs.org/15456 Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Ben Huntsman <ben@huntsmans.net> Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
89 lines
1.8 KiB
Plaintext
89 lines
1.8 KiB
Plaintext
dnl This file contains the common configuration code which would
|
|
dnl otherwise be duplicated between configure and configure-libafs.
|
|
dnl
|
|
dnl NB: Because this code is a macro, references to positional shell
|
|
dnl parameters must be done like $[]1 instead of $1
|
|
|
|
AC_DEFUN([OPENAFS_CONFIGURE_COMMON],[
|
|
|
|
dnl If the user hasn't specified CFLAGS don't let configure pick -g -O2
|
|
AS_IF([test -z "$CFLAGS"], [CFLAGS=" "])
|
|
AC_USE_SYSTEM_EXTENSIONS
|
|
AC_PROG_CC
|
|
|
|
OPENAFS_AUTOHEADER_TOP
|
|
OPENAFS_AUTOHEADER_BOTTOM
|
|
SRCDIR_PARENT=`pwd`
|
|
|
|
#BOZO_SAVE_CORES pam
|
|
OPENAFS_OPTIONS
|
|
OPENAFS_DOC
|
|
|
|
dnl Checks for UNIX variants.
|
|
AC_SEARCH_LIBS([strerror],[cposix])
|
|
|
|
dnl Various compiler setup.
|
|
AC_TYPE_PID_T
|
|
AC_TYPE_SIZE_T
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
AC_PROG_RANLIB
|
|
AC_PROG_YACC
|
|
OPENAFS_LEX
|
|
|
|
dnl Checks
|
|
OPENAFS_FORCE_ABS_INSTALL
|
|
OPENAFS_CHECK_BIGENDIAN
|
|
OPENAFS_PRINTF_TAKES_Z_LEN
|
|
OPENAFS_OSTYPE
|
|
OPENAFS_SYSNAME
|
|
OPENAFS_OSCONF
|
|
OPENAFS_LINUX_CHECKS
|
|
OPENAFS_C_ATOMIC_CHECKS
|
|
OPENAFS_SOCKET_CHECKS
|
|
OPENAFS_LIBRARY_CHECKS
|
|
AC_CHECK_RESOLV_RETRANS
|
|
OPENAFS_SOCKOPT_CHECK
|
|
OPENAFS_PTHREAD_CHECKS
|
|
HOST_CPU="$host_cpu"
|
|
OPENAFS_BSD_CHECKS
|
|
OPENAFS_OPTION_TESTS
|
|
OPENAFS_TIVOLI_TESTS
|
|
OPENAFS_HEADER_CHECKS
|
|
OPENAFS_MEMBER_CHECKS
|
|
OPENAFS_LIBINTL_CHECKS
|
|
OPENAFS_MORE_OPTION_TESTS
|
|
OPENAFS_FUNCTION_CHECKS
|
|
OPENAFS_ROKEN
|
|
OPENAFS_HCRYPTO
|
|
OPENAFS_CURSES
|
|
OPENAFS_C_ATTRIBUTE
|
|
OPENAFS_C_PRAGMA
|
|
OPENAFS_C_FLEXIBLE_ARRAY
|
|
OPENAFS_MORE_ROKEN_CHECKS
|
|
OPENAFS_NETDB_CHECKS
|
|
OPENAFS_ROKEN_HEADERS
|
|
OPENAFS_BSWAP_CHECKS
|
|
OPENAFS_PIO_CHECKS
|
|
OPENAFS_REGEX_CHECKS
|
|
OPENAFS_MORE_PTHREAD_CHECKS
|
|
OPENAFS_TYPE_CHECKS
|
|
RRA_HEADER_PAM_CONST
|
|
OPENAFS_DIRECTORY_PATHS
|
|
OPENAFS_YET_MORE_OPTION_TESTS
|
|
OPENAFS_OUTPUT_VARIABLES
|
|
OPENAFS_FUSE
|
|
OPENAFS_SWIG
|
|
OPENAFS_TOPDIRS
|
|
OPENAFS_CROSSTOOLS
|
|
OPENAFS_LINT
|
|
OPENAFS_CRYPT_CHECKS
|
|
OPENAFS_C_STRUCT_LABEL_CHECK
|
|
OPENAFS_DIRENT_CHECKS
|
|
OPENAFS_SYS_RESOURCE_CHECKS
|
|
OPENAFS_UUID_CHECKS
|
|
OPENAFS_CTF_TOOLS_CHECKS
|
|
])
|