diff options
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rwxr-xr-x | gdb/configure | 7 | ||||
-rw-r--r-- | gdb/configure.ac | 7 | ||||
-rw-r--r-- | gdb/stub-termcap.c | 21 |
4 files changed, 31 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fed4e9e..919e93c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2015-04-06 Pedro Alves <palves@redhat.com> + Bernd Edlinger <bernd.edlinger@hotmail.de> + + * configure.ac: Remove the mingw32-specific stub-termcap.o + fallback, and instead fallback to the stub termcap on all hosts. + * configure: Regenerate. + * stub-termcap.c [!__MINGW32__] (PC, BC, UP): Define as weak + symbols. + 2015-04-03 Pierre-Marie de Rodat <derodat@adacore.com> * gdbtypes.c (is_dynamic_type_internal): Remove the unused diff --git a/gdb/configure b/gdb/configure index b8d4a7a..f835157 100755 --- a/gdb/configure +++ b/gdb/configure @@ -7455,11 +7455,6 @@ case $host_os in go32* | *djgpp*) ac_cv_search_tgetent="none required" ;; - *mingw32*) - if test x"$curses_found" != xyes; then - ac_cv_search_tgetent="none required" - CONFIG_OBS="$CONFIG_OBS stub-termcap.o" - fi ;; esac # These are the libraries checked by Readline. @@ -7521,7 +7516,7 @@ fi if test "$ac_cv_search_tgetent" = no; then - as_fn_error "no termcap library found" "$LINENO" 5 + CONFIG_OBS="$CONFIG_OBS stub-termcap.o" fi diff --git a/gdb/configure.ac b/gdb/configure.ac index ace033e..c703e35 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -617,18 +617,13 @@ case $host_os in go32* | *djgpp*) ac_cv_search_tgetent="none required" ;; - *mingw32*) - if test x"$curses_found" != xyes; then - ac_cv_search_tgetent="none required" - CONFIG_OBS="$CONFIG_OBS stub-termcap.o" - fi ;; esac # These are the libraries checked by Readline. AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses]) if test "$ac_cv_search_tgetent" = no; then - AC_MSG_ERROR([no termcap library found]) + CONFIG_OBS="$CONFIG_OBS stub-termcap.o" fi AC_ARG_WITH([system-readline], diff --git a/gdb/stub-termcap.c b/gdb/stub-termcap.c index 5897d89..722929f 100644 --- a/gdb/stub-termcap.c +++ b/gdb/stub-termcap.c @@ -40,9 +40,28 @@ extern char *tgoto (const char *cap, int col, int row); } #endif +/* These globals below are global termcap variables that readline + references. + + Actually, depending on preprocessor conditions that we don't want + to mirror here (as they may change depending on readline versions), + readline may define these globals as well, relying on the linker + merging them if needed (-fcommon). That doesn't work with + -fno-common or C++, so instead we define the symbols as weak. + Don't do this on Windows though, as MinGW gcc 3.4.2 doesn't support + weak (later versions, e.g., 4.8, do support it). Given this stub + file originally was Windows only, and we only needed this when we + made it work on other hosts, it should be OK. */ +#ifndef __MINGW32__ +char PC __attribute__((weak)); +char *BC __attribute__((weak)); +char *UP __attribute__((weak)); +#endif + /* Each of the files below is a minimal implementation of the standard termcap function with the same name, suitable for use in a Windows - console window. */ + console window, or when a real termcap/curses library isn't + available. */ int tgetent (char *buffer, char *termtype) |