Next Previous Contents

3. Compiling

3.1 Where do I get the latest ncurses?

It is available from ftp://ftp.clark.net/pub/dickey/ncurses/. You will need at least ncurses 4.1 to compile taper. Earlier versions will NOT work. Later version will.

It is also available from sunsite.unc.edu in /pub/Linux/libs. Please do not use sunsite if you have a close by mirror since it is very heavily loaded.

Taper also requires the forms library (which comes with ncurses). Compile ncurses and then do:

        rm /usr/include/form.h
        rm /usr/lib/libform.a
        rm /usr/lib/libform_g.a
        cp ncurses-xx/form.h /usr/include
        cp ncurses-xx/lib/libform.a /usr/lib
        cp ncurses-xx/lib/libform_g.a /usr/lib

See my home page NEED_WEB_ADDRESS for a precompiled package.

3.2 I compile and get many errors saying ANSI does not support long long.

Don't worry about that. This means that you are using early kernels in which the header files were not strictly ANSI compliant. This shouldn't affect taper.

3.3 Why do I get a gcc fatal signal 11 message when compiling taper

I have taken this straight from the GCC-FAQ:

30) What does the message "Internal compiler error: cc1 got fatal signal 11,4" mean ?

Ans:    Gcc is probably the biggest memory hog you likely to run on your
        machine and it will surely eat up a lot of your RAM. Usually a fatal
        signal 11 will mean some sort of parity errors in your RAM or other
        hardware faults. I had this once when `cc1' got corrupted due to a
        race condition and bad blocks on my hard disk. There have also been
        reports that overheating chips, (not french fries), can also produce
        such errors. And watch for poor IDE controller/drive combos that
        are being run faster than the standard 8MHz AT bus clock. These
        can give the same errors by causing corruption of the swap space.

        Usually, a signal 11 (segmentation violation) means that a process
        tried to access memory out of its process space, or tried to write
        into a read-only location.  Sometimes, this signal is caused by
        software bugs, not by hardware faults (or your system would hang
        repeatedly, because the same thing happened to the kernel).  With
        gcc 2.3.3, some people could reproduce a lot of "signal 11"'s.

        A "fatal signal 4" has been reported to be generated due to lack of
        memory (happened on a 4MB system).

        Also it can mean a failure in one of the `ld' or `as' stages. Try
        recompiling whatever with a -v flag to gcc and see if it is failing
        in one of the cc1, cpp, as or ld stages possibly.

I will also add that sometimes it is due to the fact that gcc can't find the libraries. Make sure your libraries are in a location accessible to gcc (and that they are readable), and if not, change the LINK_LIB path in the Makefile.

3.4 When compiling, the compiler complains that it cannot find curses.h.

Make sure that your curses.h file is in /usr/include. Some older versions of ncurses places it in a directory called /usr/include/ncurses. If this is the case, you have two options:

Move all the files in /usr/include/ncurses to /usr/include

OR

Change the line

INCLUDE=

your Makefile.common to

INCLUDE = -I/usr/include/ncurses

3.5 I get error messages wattron and wattroff not found when compiling.

You do not have the correct curses.h header file. Make sure that you have the latest curses.h file and there are no old ones lying around.

3.6 I am getting errors such as syntax error before `int' while compiling.

You are using an old linux kernel. To overcome this, in the Makefile.common file, there is a line

   CFLAGS_NOLNK = -ansi

Change this line to

   CFLAGS_NOLNK =

3.7 Why do I get an error about not being able to find form.h when compiling?

You need the forms package that comes with ncurses. See above for how to get the latest ncurses package.

Note that you need the ncurses sources - getting the binaries alone often does not contain the form.h file that you require.

3.8 I get an error : compress/gzip.h: conflicting types for 'basename' when compiling taper

This means that you are using C libraries that are too old. Ideally, upgrade your C libraries. Alternatively, you have to edit the file gzip.h found in the compress subdirectory of taper.

Find the line:

        extern char *basename   OF((char *fname));

and change it so it reads:

        /* extern char *basename OF((char *fname)); */

and try compiling taper again.

3.9 I get the following errors whilst compiling: select_box.h:125: parse error before `umode_t'.

You are using glibc2 (or libc6) libraries. In Makefile.common, make sure there is a line:

GLIBC = TRUE


Next Previous Contents