diff --git a/configure.ac b/configure.ac index 05ed5b960..5907be3eb 100644 --- a/configure.ac +++ b/configure.ac @@ -94,6 +94,8 @@ AC_PROG_SED AC_LANG(C++) AC_USE_SYSTEM_EXTENSIONS +AC_CANONICAL_TARGET + echo "CXXFLAGS: $CXXFLAGS" # @@ -229,42 +231,6 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])], ]) LDFLAGS="$prev_LDFLAGS" - -# -# Test cpu for special handling of ppc -# -# This is used to skip use of tputs on ppc systems, since it seemed to -# be broken, at least on older debin-based systems. This is obviously -# not the right way to to detect whether this workaround should be -# used, since it catches far to many systems, but I do not have the -# hardware available to narrow this problem down, and in practice, it -# seems that tputs is never really needed. -# - -AC_CANONICAL_TARGET - -if test $target_cpu = powerpc; then - AC_DEFINE([TPUTS_KLUDGE],[1],[Evil kludge to get Power based machines to work]) -fi - - -# -# BSD-specific flags go here -# - -AC_MSG_CHECKING([if we are under BSD]) -case $target_os in - *bsd*) - AC_DEFINE( __BSD_VISIBLE, 1, [Macro to enable additional prototypes under BSD]) - AC_DEFINE( _NETBSD_SOURCE, 1, [Macro to enable additional prototypes under BSD]) - AC_MSG_RESULT(yes) - ;; - *) - AC_MSG_RESULT(no) - ;; -esac - - # # See if Linux procfs is present. This is used to get extra # information about running processes. @@ -329,121 +295,6 @@ AC_CHECK_SIZEOF(wchar_t) WCHAR_T_BITS=`expr 8 \* $ac_cv_sizeof_wchar_t` AC_DEFINE_UNQUOTED([WCHAR_T_BITS], [$WCHAR_T_BITS], [The size of wchar_t in bits.]) - -# -# On some platforms (Solaris 10) adding -std=c99 in turn requires that -# _POSIX_C_SOURCE be defined to 200112L otherwise several -# POSIX-specific, non-ISO-C99 types/prototypes are made unavailable -# e.g. siginfo_t. Defining _XOPEN_SOURCE to 600 is compatible with -# the _POSIX_C_SOURCE value and provides a little assurance that -# extension functions' prototypes are available, e.g. killpg(). -# -# Some other platforms (OS X), will remove types/prototypes/macros -# e.g. SIGWINCH if either _POSIX_C_SOURCE or _XOPEN_SOURCE is defined. -# -# This test adds these macros only if they enable a program that uses -# both Posix and non-standard features to compile, and that program -# does not compile without these macros. -# -# We try to make everyone happy. -# -# The ordering of the various autoconf tests is very critical as well: -# -# * This test needs to be run _after_ header detection tests, so that -# the proper headers are included. -# -# * This test needs to be run _before_ testing for the presense of any -# prototypes or other language functinality. - -XCXXFLAGS="$CXXFLAGS" - -echo checking how to use -D_XOPEN_SOURCE=600 and -D_POSIX_C_SOURCE=200112L... -local_found_posix_switch=no - -for i in "" "-D_POSIX_C_SOURCE=200112L" "-D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=200112L"; do - - AC_MSG_CHECKING( if switches \"$i\" works) - CXXFLAGS="$XCXXFLAGS $i" - - # - # Try to run this program, which should test various extensions - # and Posix functionality. If this program works, then everything - # should work. Hopefully. - # - - AC_TRY_LINK( - [ - #include - #include - #include - - /* POSIX, C89 and C99: POSIX extends this header. - * For: kill(), killpg(), siginfo_t, sigset_t, - * struct sigaction, sigemptyset(), sigaction(), - * SIGIO and SIGWINCH. */ - #include - - #ifdef HAVE_SIGINFO_H - /* Neither POSIX, C89 nor C99: Solaris-specific (others?). - * For: siginfo_t (also defined by signal.h when in - * POSIX/extensions mode). */ - #include - #endif - - #ifdef HAVE_SYS_IOCTL_H - /* As above (under at least Linux and FreeBSD). */ - #include - #endif - - #ifdef HAVE_TERMIOS_H - #include - #endif - ], - [ - /* Avert high-level optimisation, by making the program's - * return value depend on all tested identifiers. */ - long ret = 0; - /* POSIX only: might be unhidden by _POSIX_C_SOURCE. */ - struct sigaction sa; - sigset_t ss; - siginfo_t info; - ret += (long)(void *)&info + kill( 0, 0 ) + - sigaction( 0, &sa, 0 ) + sigemptyset( &ss ); - /* Extended-POSIX: might be unhidden by _XOPEN_SOURCE. */ - ret += killpg( 0, 0 ); - /* Non-standard: might be hidden by the macros. */ - { - struct winsize termsize; - ret += (long)(void *)&termsize; - ret += SIGWINCH + TIOCGWINSZ + SIGIO; - } - return ret; - - ], - local_cv_use__posix_c_source=yes, - local_cv_use__posix_c_source=no, - ) - - if test x$local_cv_use__posix_c_source = xyes; then - AC_MSG_RESULT( yes ) - local_found_posix_switch=yes - break; - else - AC_MSG_RESULT( no ) - fi - -done - -# -# We didn't find any combination of switches that worked - revert to -# no switches and hope that the fallbacks work. A warning will be -# printed at the end of the configure script. -# - -if test ! x$local_found_posix_switch = xyes; then - CXXFLAGS="$XCXXFLAGS" -fi - # # Detect nanoseconds fields in struct stat # @@ -826,11 +677,6 @@ AC_ARG_WITH([extra-confdir], AC_CONFIG_FILES([Makefile]) AC_OUTPUT -if test ! x$local_found_posix_switch = xyes; then - echo "Can't find a combination of switches to enable common extensions like detecting window size." - echo "Some fish features may be disabled." -fi - echo "fish is now configured." echo "Use 'make' and 'make install' to build and install fish." diff --git a/src/fallback.cpp b/src/fallback.cpp index a5cff93d2..f5638e81e 100644 --- a/src/fallback.cpp +++ b/src/fallback.cpp @@ -42,14 +42,6 @@ #include "fallback.h" // IWYU pragma: keep #include "util.h" // IWYU pragma: keep -#ifdef TPUTS_KLUDGE -int tputs(const char *str, int affcnt, int (*fish_putc)(tputs_arg_t)) { - while (*str) { - fish_putc(*str++); - } -} -#endif - #ifdef TPARM_SOLARIS_KLUDGE #undef tparm diff --git a/src/fallback.h b/src/fallback.h index 59eba2242..97c72b77d 100644 --- a/src/fallback.h +++ b/src/fallback.h @@ -57,14 +57,6 @@ struct winsize { #endif -#ifdef TPUTS_KLUDGE - -/// Linux on PPC seems to have a tputs implementation that sometimes behaves strangely. This -/// fallback seems to fix things. -int tputs(const char *str, int affcnt, int (*fish_putc)(tputs_arg_t)); - -#endif - #ifdef TPARM_SOLARIS_KLUDGE /// Solaris tparm has a set fixed of paramters in it's curses implementation, work around this here. #define tparm tparm_solaris_kludge