From: SourceForge.net <no...@so...> - 2003-06-09 00:35:43
|
Bugs item #751104, was opened at 2003-06-08 17:35 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104664&aid=751104&group_id=4664 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Jason Duell (jcduell) Assigned to: Nobody/Anonymous (nobody) Summary: curses search fails on Tru64 Initial Comment: Hans: I just tried building cscope on an HP Alphaserver (Compaq Tru64 UNIX V5.1A (Rev. 1885); Compaq AlphaServer SC TS2.5). It doesn't find any curses library, and so it winds up failing at link time. But if I just add '-lcurses' to the link command, it seems fine. I waded into our autoconf to see what's going on. The system doesn't seem to have any version of ncurses.h on it, but it has /usr/include/curses.h and /usr/lib/libcurses.a. It looks like in the AC_EGREP_HEADER command we search for 'init_color', but we don't find it, because it only gets declared if _XOPEN_SOURCE_EXTENDED is defined, and it isn't. So no curses library is found, and CURSES_LIBS doesn't get set to anything. I'm attaching a patch that fixes this, by using a manual AC_EGREP_CPP check that #defines _XOPEN_SOURCE_EXTENDED before it includes curses.h. A note about the patch: I was confused by the way we run a AC_EGREP_CPP(USE_NCURSES) check after the AC_EGREP_HEADER check, regardless of whether the EGREP_HEADER check succeeded or not. I stuck it into it's own check on $search_ncurses, but perhaps that's wrong thing to do. I also didn't take any action to pass -D_XOPEN_SOURCE_EXTENDED as a compiler flag, which would probably be a good idea if we need it (it works without it on Tru64, but it's probably getting defined by some other header file) I have a couple of other questions about our autoconf setup: 1) We should probably fail if we can't find a usable curses library--a helpful error message is better than a build that fails with missing symbols. 2) how are we propagating the CURSES_LIBS to the generated Makefile? Makefile.am refers to '$(CURSES_LIBS)' instead of @CURSES_LIBS@. The latter way is the standard way to grab the values of variables propagated with AC_SUBST. I'm surprised that the way we refer to them works at all. 3) Our curses checks are a mess. Have we ever looked at how vim (or some other standard curses program) does this? I'm not sure if our midnight commander inspired approach is the best way to go. Cheers, Jason ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104664&aid=751104&group_id=4664 |