Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 18 Jun 2012 18:00:27 -0700
From: Isaac Dunham <idunham@...abit.com>
To: musl@...ts.openwall.com
Subject: Re: links to some info/sources (Heirloom, pcc, ncurses)?

On Mon, 18 Jun 2012 12:41:36 -0400
Rich Felker <dalias@...ifal.cx> wrote:

> On Mon, Jun 18, 2012 at 06:31:35PM +0200, Szabolcs Nagy wrote:
> > > The second question was regarding ncurses. Some utilities in
> > > Heirloom require curses but I fail to build it for musl - but it
> > > seems to be in Sabotage. Are there any good patches/tricks around
> > > to get it to build?
I used this patch (not sure if still needed):
===
diff -ur ncurses-5.9/ncurses/SigAction.h
ncurses-5.9-d/ncurses/SigAction.h ---
ncurses-5.9/ncurses/SigAction.h	2005-08-06 13:05:32.000000000
-0700 +++ ncurses-5.9-d/ncurses/SigAction.h	2012-04-03
16:32:56.841630774 -0700 @@ -49,6 +49,8 @@ #define HAVE_SIGVEC 0
 #endif
 
+#include <signal.h>
+
 #if HAVE_SIGACTION
 
 #if !HAVE_TYPE_SIGACTION
===
and these configure options:
CC=musl-gcc CFLAGS="-fno-stack-protector -Os -D_GNU_SOURCE" ./configure
--prefix=${PREFIX} --without-cxx --with-fallbacks=xterm
#forgot to add --enable-widec 
(see github.com/idunham/src-musl if you'd like to see my full build
scripts...really, it ended up looking a lot like a pkgbuild, but
somewhat more awkward)
> Indeed, it's worked for a long time, but you need to disable the C++
> interfaces if you don't have a working C++ toolchain. I don't think
> the configure script does this by default. Actually ncurses has A LOT
> of broken options by default which you need to fix when running
> configure; for instance, it does not support UTF-8 unless you use
> --enable-wide or something like that.
I've always used CXX=false for stuff like this...
The --enable-wide is because for some reason, using wchar_t instead of
char breaks the ABI.  

> > for heirloom i needed minor hacks like
> > 
> > echo '#include <ncurses/curses.h>' >include/curses.h
> > echo '#include <ncurses/term.h>' >include/term.h
AKA: 
CPPFLAGS += -I${sysincdir}/ncurses
CFLAGS   += ${CPPFLAGS} # if the makefile ignores CPPFLAGS

> This is another issue: the installation paths and filenames. I don't
> know the right option to make ncurses install itself as the default
> curses library...
It doesn't seem to allow installing $sysincdir/curses.h

FYI: pdcurses may also be an option.

Isaac Dunham

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.