Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [RFA/RFC] (hppa/tui) Fix build failure due to missing wborder
@ 2004-02-23 22:03 Joel Brobecker
  2004-02-24 23:34 ` Andrew Cagney
  0 siblings, 1 reply; 9+ messages in thread
From: Joel Brobecker @ 2004-02-23 22:03 UTC (permalink / raw)
  To: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 594 bytes --]

Hello,

Re: http://sources.redhat.com/ml/gdb-patches/2004-02/msg00654.html

On HP/UX, the GDB build fails during the link due to a missing wborder.
I found the symbol in libcur_colr.sl. To fix the build, I suggest the
following change, although I could conceive that this is not the best
way of handling this. Comments and suggestions warmly welcome.

2004-02-23  J. Brobecker  <brobecker@gnat.com>

        * configure.in (LIBS): Add -lcur_colr when TUI is enabled and
        when using the HP curses library.
        * configure: Regenerate.

Tested on HP/UX 11.00, and x86-linux.

-- 
Joel

[-- Attachment #2: configure.in.diff --]
[-- Type: text/plain, Size: 1831 bytes --]

Index: configure.in
===================================================================
RCS file: /cvs/src/src/gdb/configure.in,v
retrieving revision 1.147
diff -u -2 -0 -r1.147 configure.in
--- configure.in	18 Feb 2004 19:01:36 -0000	1.147
+++ configure.in	23 Feb 2004 21:49:25 -0000
@@ -150,40 +150,45 @@
 AC_ARG_ENABLE(tui,
 [  --enable-tui            enable full-screen terminal user interface (TUI)],
   [case $enableval in
     yes | no)
       ;;
     *)
       AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
   esac],enable_tui=yes)
 if test x"$enable_tui" = xyes; then
   if test -d $srcdir/tui; then
     if test "$ac_cv_search_initscr" != no; then
       CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
       CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
       CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
       CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)"
       ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
       CONFIG_ALL="${CONFIG_ALL} all-tui"
       CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
       CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
       CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
+      if test "$ac_cv_search_initscr" = "-lHcurses"; then
+        # Hcurses does not provide all of curses. Certain functions
+        # such as wborder for instance are provided by libcur_colr.
+        LIBS="$LIBS -lcur_colr"
+      fi
     fi
   fi
 fi
 
 # Enable gdbtk.
 AC_ARG_ENABLE(gdbtk,
 [  --enable-gdbtk          enable gdbtk graphical user interface (GUI)],
   [case $enableval in
     yes | no)
       ;;
     *)
       AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
   esac],
   [if test -d $srcdir/gdbtk; then
     enable_gdbtk=yes
   else
     enable_gdbtk=no
   fi])
 # We unconditionally disable gdbtk tests on selected platforms.
 case $host_os in

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFA/RFC] (hppa/tui) Fix build failure due to missing wborder
  2004-02-23 22:03 [RFA/RFC] (hppa/tui) Fix build failure due to missing wborder Joel Brobecker
@ 2004-02-24 23:34 ` Andrew Cagney
  2004-02-25  1:18   ` Joel Brobecker
  0 siblings, 1 reply; 9+ messages in thread
From: Andrew Cagney @ 2004-02-24 23:34 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: gdb-patches

> Hello,
> 
> Re: http://sources.redhat.com/ml/gdb-patches/2004-02/msg00654.html
> 
> On HP/UX, the GDB build fails during the link due to a missing wborder.
> I found the symbol in libcur_colr.sl. To fix the build, I suggest the
> following change, although I could conceive that this is not the best
> way of handling this. Comments and suggestions warmly welcome.

[ditto ...]

> 2004-02-23  J. Brobecker  <brobecker@gnat.com>
> 
>         * configure.in (LIBS): Add -lcur_colr when TUI is enabled and
>         when using the HP curses library.
>         * configure: Regenerate.
> 
> Tested on HP/UX 11.00, and x86-linux.

I wonder, should configure be checking that wborder can be found with 
something like:

AC_SEARCH_LIBS(wborder, [ncurses Hcurses cur_colr curses pdcurses], [],
     [AC_MSG_WARN([no library containing wborder found])])

and then just test that both ac_cv_search_initscr and 
ac_cv_search_wborder are not "no"?

Andrew



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFA/RFC] (hppa/tui) Fix build failure due to missing wborder
  2004-02-24 23:34 ` Andrew Cagney
@ 2004-02-25  1:18   ` Joel Brobecker
  2004-02-25  2:09     ` Daniel Jacobowitz
  0 siblings, 1 reply; 9+ messages in thread
From: Joel Brobecker @ 2004-02-25  1:18 UTC (permalink / raw)
  To: Andrew Cagney; +Cc: gdb-patches

> I wonder, should configure be checking that wborder can be found with 
> something like:
> 
> AC_SEARCH_LIBS(wborder, [ncurses Hcurses cur_colr curses pdcurses], [],
>     [AC_MSG_WARN([no library containing wborder found])])
> 
> and then just test that both ac_cv_search_initscr and 
> ac_cv_search_wborder are not "no"?

That's something I thought about, but then what happens if we found
both initscr and wborder in the same library, for instance "ncurses".
We would probably end up linking with the same -l<...> switch twice.
Not very elegant. Would you prefer this approach, though? I figured
that, since Hcurses is already HPUX-specific AFAIK, we might as well
take advantage of that knowledge and add -lcur_colr as I did. On the
other hand, mutter something about HP eventually finding their way to
the bright side of the force and putting wborder back inside Hcurses...

I prefer your suggestion too, shall I go ahead? Any objection?

-- 
Joel


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFA/RFC] (hppa/tui) Fix build failure due to missing wborder
  2004-02-25  1:18   ` Joel Brobecker
@ 2004-02-25  2:09     ` Daniel Jacobowitz
  2004-02-25 18:59       ` Joel Brobecker
  0 siblings, 1 reply; 9+ messages in thread
From: Daniel Jacobowitz @ 2004-02-25  2:09 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: Andrew Cagney, gdb-patches

On Tue, Feb 24, 2004 at 05:18:11PM -0800, Joel Brobecker wrote:
> > I wonder, should configure be checking that wborder can be found with 
> > something like:
> > 
> > AC_SEARCH_LIBS(wborder, [ncurses Hcurses cur_colr curses pdcurses], [],
> >     [AC_MSG_WARN([no library containing wborder found])])
> > 
> > and then just test that both ac_cv_search_initscr and 
> > ac_cv_search_wborder are not "no"?
> 
> That's something I thought about, but then what happens if we found
> both initscr and wborder in the same library, for instance "ncurses".
> We would probably end up linking with the same -l<...> switch twice.
> Not very elegant. Would you prefer this approach, though? I figured
> that, since Hcurses is already HPUX-specific AFAIK, we might as well
> take advantage of that knowledge and add -lcur_colr as I did. On the
> other hand, mutter something about HP eventually finding their way to
> the bright side of the force and putting wborder back inside Hcurses...
> 
> I prefer your suggestion too, shall I go ahead? Any objection?

Try this instead:
  AC_CHECK_FUNC(wborder, [],
	[AC_SEARCH_LIBS(wborder, [cur_colr], [],
		[AC_MSG_WARN([...])])])

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFA/RFC] (hppa/tui) Fix build failure due to missing wborder
  2004-02-25  2:09     ` Daniel Jacobowitz
@ 2004-02-25 18:59       ` Joel Brobecker
  2004-02-25 19:55         ` Andrew Cagney
  2004-02-25 20:30         ` Mark Kettenis
  0 siblings, 2 replies; 9+ messages in thread
From: Joel Brobecker @ 2004-02-25 18:59 UTC (permalink / raw)
  To: Andrew Cagney, gdb-patches

[-- Attachment #1: Type: text/plain, Size: 903 bytes --]

On Tue, Feb 24, 2004 at 09:09:42PM -0500, Daniel Jacobowitz wrote:
> Try this instead:
>   AC_CHECK_FUNC(wborder, [],
> 	[AC_SEARCH_LIBS(wborder, [cur_colr], [],
> 		[AC_MSG_WARN([...])])])

Very clever! I didn't know that AC_CHECK_FUNC was using $LIBS to
link its test program...

Attach is a new suggested patch.

2004-02-25  J. Brobecker  <brobecker@gnat.com>

        * configure.in: Make sure that the wborder function is available.
        Otherwise, search for it in the cur_colr library.
        * configure: Regenerate.

On HP/UX, configure outputs:

        checking for library containing initscr... -lHcurses
        checking for wborder... no
        checking for library containing wborder... -lcur_colr

On Linux, configure says:

        checking for library containing initscr... -lncurses
        checking for wborder... yes

In both cases, I verified that TUI was linked in.
-- 
Joel

[-- Attachment #2: configure.in.diff --]
[-- Type: text/plain, Size: 1470 bytes --]

Index: configure.in
===================================================================
RCS file: /cvs/src/src/gdb/configure.in,v
retrieving revision 1.147
diff -u -p -r1.147 configure.in
--- configure.in	18 Feb 2004 19:01:36 -0000	1.147
+++ configure.in	25 Feb 2004 18:57:33 -0000
@@ -146,6 +146,16 @@ fi
 AC_SEARCH_LIBS(initscr, [ncurses Hcurses curses pdcurses], [],
     [AC_MSG_WARN([no curses library found])])
 
+# Check whether the wborder function is provided by the curses
+# library detected above.  In certain implementations such as
+# the HP/UX Hcurses for instance, this function is provided by an
+# additional library.  So if we did not find this function inside
+# the curses library, try some alternate libraries we know might
+# provide it.
+AC_CHECK_FUNC(wborder, [wborder_available=yes],
+    [AC_SEARCH_LIBS(wborder, [cur_colr], [wborder_available=yes],
+        [AC_MSG_WARN([no wborder function found])])])
+
 # Enable TUI.
 AC_ARG_ENABLE(tui,
 [  --enable-tui            enable full-screen terminal user interface (TUI)],
@@ -157,7 +167,7 @@ AC_ARG_ENABLE(tui,
   esac],enable_tui=yes)
 if test x"$enable_tui" = xyes; then
   if test -d $srcdir/tui; then
-    if test "$ac_cv_search_initscr" != no; then
+    if test "$ac_cv_search_initscr" != no -a "$wborder_available" = "yes"; then
       CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
       CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
       CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFA/RFC] (hppa/tui) Fix build failure due to missing wborder
  2004-02-25 18:59       ` Joel Brobecker
@ 2004-02-25 19:55         ` Andrew Cagney
  2004-02-25 20:11           ` Joel Brobecker
  2004-02-25 20:30         ` Mark Kettenis
  1 sibling, 1 reply; 9+ messages in thread
From: Andrew Cagney @ 2004-02-25 19:55 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: gdb-patches

> On Tue, Feb 24, 2004 at 09:09:42PM -0500, Daniel Jacobowitz wrote:
> 
>>> Try this instead:
>>>   AC_CHECK_FUNC(wborder, [],
>>> 	[AC_SEARCH_LIBS(wborder, [cur_colr], [],
>>> 		[AC_MSG_WARN([...])])])
> 
> 
> Very clever! I didn't know that AC_CHECK_FUNC was using $LIBS to
> link its test program...
> 
> Attach is a new suggested patch.

Yes, ok.

Andrew

$ date -u
Wed Feb 25 19:55:12 UTC 2004



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFA/RFC] (hppa/tui) Fix build failure due to missing wborder
  2004-02-25 19:55         ` Andrew Cagney
@ 2004-02-25 20:11           ` Joel Brobecker
  0 siblings, 0 replies; 9+ messages in thread
From: Joel Brobecker @ 2004-02-25 20:11 UTC (permalink / raw)
  To: Andrew Cagney; +Cc: gdb-patches

On Wed, Feb 25, 2004 at 02:55:25PM -0500, Andrew Cagney wrote:
> >On Tue, Feb 24, 2004 at 09:09:42PM -0500, Daniel Jacobowitz wrote:
> >
> >>>Try this instead:
> >>>  AC_CHECK_FUNC(wborder, [],
> >>>	[AC_SEARCH_LIBS(wborder, [cur_colr], [],
> >>>		[AC_MSG_WARN([...])])])
> >
> >
> >Very clever! I didn't know that AC_CHECK_FUNC was using $LIBS to
> >link its test program...
> >
> >Attach is a new suggested patch.
> 
> Yes, ok.

Thank you, checked in.

-- 
Joel


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFA/RFC] (hppa/tui) Fix build failure due to missing wborder
  2004-02-25 18:59       ` Joel Brobecker
  2004-02-25 19:55         ` Andrew Cagney
@ 2004-02-25 20:30         ` Mark Kettenis
  2004-02-26  0:43           ` Joel Brobecker
  1 sibling, 1 reply; 9+ messages in thread
From: Mark Kettenis @ 2004-02-25 20:30 UTC (permalink / raw)
  To: brobecker; +Cc: cagney, gdb-patches

   Date: Wed, 25 Feb 2004 10:59:46 -0800
   From: Joel Brobecker <brobecker@gnat.com>

   --7iMSBzlTiPOCCT2k
   Content-Type: text/plain; charset=us-ascii
   Content-Disposition: inline

   On Tue, Feb 24, 2004 at 09:09:42PM -0500, Daniel Jacobowitz wrote:
   > Try this instead:
   >   AC_CHECK_FUNC(wborder, [],
   > 	[AC_SEARCH_LIBS(wborder, [cur_colr], [],
   > 		[AC_MSG_WARN([...])])])

   Very clever! I didn't know that AC_CHECK_FUNC was using $LIBS to
   link its test program...

Except that AC_SEARCH_LIBS is clever enough itself.  It first tries to
find the function in the libraries already present.

AC_SEARCH_LIBS (initscr, [ncurses ...]), [], [AC_MSG_WARN...])
AC_SEARCH_LIBS (wborder, cur_clr, [], [AC_MSG_WARN...])

Should do exactly what you want.

Mark


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFA/RFC] (hppa/tui) Fix build failure due to missing wborder
  2004-02-25 20:30         ` Mark Kettenis
@ 2004-02-26  0:43           ` Joel Brobecker
  0 siblings, 0 replies; 9+ messages in thread
From: Joel Brobecker @ 2004-02-26  0:43 UTC (permalink / raw)
  To: Mark Kettenis; +Cc: cagney, gdb-patches

[-- Attachment #1: Type: text/plain, Size: 522 bytes --]

> Except that AC_SEARCH_LIBS is clever enough itself.  It first tries to
> find the function in the libraries already present.
> 
> AC_SEARCH_LIBS (initscr, [ncurses ...]), [], [AC_MSG_WARN...])
> AC_SEARCH_LIBS (wborder, cur_clr, [], [AC_MSG_WARN...])
> 
> Should do exactly what you want.

Thanks for the tip! I checked the following change in.

2004-02-25  J. Brobecker  <brobecker@gnat.com>

        * configure.in: Refine the previous change.
        * configure: Regenerate.

Tested on hpux and x86-linux.

-- 
Joel

[-- Attachment #2: configure.in.diff --]
[-- Type: text/plain, Size: 1267 bytes --]

Index: configure.in
===================================================================
RCS file: /cvs/src/src/gdb/configure.in,v
retrieving revision 1.148
diff -u -p -r1.148 configure.in
--- configure.in	25 Feb 2004 20:09:46 -0000	1.148
+++ configure.in	26 Feb 2004 00:41:27 -0000
@@ -152,9 +152,8 @@ AC_SEARCH_LIBS(initscr, [ncurses Hcurses
 # additional library.  So if we did not find this function inside
 # the curses library, try some alternate libraries we know might
 # provide it.
-AC_CHECK_FUNC(wborder, [wborder_available=yes],
-    [AC_SEARCH_LIBS(wborder, [cur_colr], [wborder_available=yes],
-        [AC_MSG_WARN([no wborder function found])])])
+AC_SEARCH_LIBS(wborder, [cur_colr], [],
+    [AC_MSG_WARN([wborder function not found, tui will be disabled])])
 
 # Enable TUI.
 AC_ARG_ENABLE(tui,
@@ -167,7 +166,7 @@ AC_ARG_ENABLE(tui,
   esac],enable_tui=yes)
 if test x"$enable_tui" = xyes; then
   if test -d $srcdir/tui; then
-    if test "$ac_cv_search_initscr" != no -a "$wborder_available" = "yes"; then
+    if test "$ac_cv_search_initscr" != no -a "$ac_cv_search_wborder" != no; then
       CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
       CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
       CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2004-02-26  0:43 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-02-23 22:03 [RFA/RFC] (hppa/tui) Fix build failure due to missing wborder Joel Brobecker
2004-02-24 23:34 ` Andrew Cagney
2004-02-25  1:18   ` Joel Brobecker
2004-02-25  2:09     ` Daniel Jacobowitz
2004-02-25 18:59       ` Joel Brobecker
2004-02-25 19:55         ` Andrew Cagney
2004-02-25 20:11           ` Joel Brobecker
2004-02-25 20:30         ` Mark Kettenis
2004-02-26  0:43           ` Joel Brobecker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox