Subject: Linux-Development Digest #987
From: Digestifier <Linux-Development-Request@senator-bedfellow.MIT.EDU>
To: Linux-Development@senator-bedfellow.MIT.EDU
Reply-To: Linux-Development@senator-bedfellow.MIT.EDU
Date:     Fri, 5 Aug 94 00:13:08 EDT

Linux-Development Digest #987, Volume #1          Fri, 5 Aug 94 00:13:08 EDT

Contents:
  libc linking problem ("Stephen Davies")
  Kernel change summary 1.1.22 -> 1.1.23 (Russell Nelson)
  SLIP speeds 1.0 vs 1.1 (Sam Oscar Lantinga)
  Re: SLIP, CSLIP, PPP and modems (Dan McGuirk)
  Re: general performance has dropped in the last month (Alex Ramos)
  Re: Slackware: ncurses broken? (Brandon S. Allbery)
  nn6.4.18 / Linux 1.1.8 -- seeing keyboard echo during network i/o (Erik E. Rantapaa)
  Kernel change summary 1.1.23 -> 1.1.24 (Russell Nelson)
  Re: -= good programmer's editor for X? (South Street North Studios)
  Re: 1.1.36 make problem: 'NULL' undeclared (N J Andrews)
  Advice reqd for developing online ordering s/w. (Glen Haneman)

----------------------------------------------------------------------------

From: "Stephen Davies" <scldad@sdc.com.au>
Subject: libc linking problem
Date: Thu, 4 Aug 94 14:50:06 PDT

G'day.

/usr/lib/libc.a(ctype.o): Undefined symbol _mcount referenced from text 
segment

Twice this week I have run into the above error message while
compiling Linux sources. Can somebody please tell me what is wrong and
how to fix it.

I am running 1.1.37 and libc 4.5.26 and gcc 2.5.8.

Thanks in anticipation,

Steve.

========================================================================
Stephen Davies Consulting                              scldad@sdc.com.au
Adelaide, South Australia.                           Voice: 61-8-2728863
Computing & Network solutions.                       Fax  : 61-8-2741015

------------------------------

From: nelson@crynwr.crynwr.com (Russell Nelson)
Subject: Kernel change summary 1.1.22 -> 1.1.23
Date: 03 Aug 1994 14:29:54 GMT

Add support for 2.88Mbyte floppies.
Switch to release 2.0 of SoundBlaster Pro (Matsushita, Kotobuki,
        Panasonic, CreativeLabs) CD-ROM driver for Linux.  Adds
        support for WDH-7001C board.  Audio frames may be read on
        CD-562 and CD-563 drives.  Supports up to four drives.
Select read of a tty had another problem -- if we're timing out, we
        only need one character to wake up.
Loading a malformed a.out file that sends a SIGSEGV signal didn't
        return an error to the caller.
Add .GZ, .TGZ, and .DEB extensions to the binary list for the MSDOS fs.
Changes to modules:
 * - Supports stacked modules (removeable only of there are no dependants).
 * - Supports table of symbols defined by the modules.
 * - Supports /proc/ksyms, showing value, name and owner of all
     the symbols defined by all modules (in stack order).
 * - Added module dependencies information into /proc/modules
 * - Supports redefines of all symbols, for streams-like behaviour.
 * - Compatible with older versions of insmod.
window clamps were being set on the wrong handle when handling a
        connection request.
--
-russ <nelson@crynwr.com>    http://www.crynwr.com/crynwr/nelson.html
Crynwr Software   | Crynwr Software sells packet driver support | ask4 PGP key
11 Grant St.      | +1 315 268 1925 (9201 FAX)  | What is thee doing about it?
Potsdam, NY 13676 | LPF member - ask me about the harm software patents do.

------------------------------

From: slouken@cs.ucdavis.edu (Sam Oscar Lantinga)
Subject: SLIP speeds 1.0 vs 1.1
Date: Thu, 4 Aug 1994 23:26:39 GMT


        I'm using a generic 14.4 internal modem to connect to 
UCDavis SLIP server.  Under the 1.0 and 1.1 kernels, I have clocked
the raw (zmodem) transfer rate at 2.0 K/s

Under 1.0.x kernels, slip (ftp) transfer has averaged about 1.45 K/s
Under 1.1.x kernels, slip (ftp) transfer has averaged about 1.01 K/s

        The speed shift happened very early in the 1.1.x series,

Any thoughts?
I figured I'd post this one little gripe.  Actually, it is only this
minor difference in the kernels that prevents me from completely
converting to the 1.1.x series of Linux kernels.  I'd love for SLIP 
to speed up to 1.0.x levels.

Thanks!

        -Sam


------------------------------

From: mcguirk@indirect.com (Dan McGuirk)
Subject: Re: SLIP, CSLIP, PPP and modems
Date: 5 Aug 1994 00:09:18 GMT

In article <1994Aug3.134423.5631@brtph560.bnr.ca>,
Jay Denebeim P025 <denebeim@bnr.ca> wrote:
>Alex, you're comparing apples and oranges.  A network is not the same
>thing as a file transfer.  SLIP is used to send arbitrary packets over
>the phone line onto a network.  Its not limited to sending files.
>Because of this, there is quite a bit more information that is
>required for each packet then a file transfer takes.  Because of this,
>it is definately going to be slower.
>
>It probably shouldn't be a factor of two though.  Are you sure you
>wern't using the link for something else at the same time?

No, you don't seem to understand what he's talking about.  A 14.4k modem
can transmit at 14.4k in both directions, at the same time.  Normally, you
are only transmitting data in one direction at a time, and the receiving
system just echoes the characters back.  So you get, maybe, 1.7k/second 
max for a transfer of random data at 14.4k.  But there are some transfer 
protocols for DOS that will let you transmit at full speed in both 
directions at the same time--so you could do a 14.4k upload and a 14.4k 
download at the same time.  The bandwidth in each direction is limited to 
about 1.7k, but you can have a total bandwidth of 3.4k.

My limited knowledge tells me that you could do this with SLIP/PPP, but 
you'd have to modify the protocol, making it incompatible with existing 
SLIP/PPP installations.  And it sounds like a lot of work.  Probably not 
worth it...  wait for ISDN or something...
-- 
Dan McGuirk                                                mcguirk@indirect.com

"the purpose of technology is not to confuse the brain, but to serve the body."
                        --william s. burroughs

------------------------------

From: ramos@engr.latech.edu (Alex Ramos)
Subject: Re: general performance has dropped in the last month
Date: 4 Aug 1994 20:46:02 GMT

Rob Janssen (rob@pe1chl.ampr.org), quoted out of context, wrote:
> In <1994Aug3.233902.3992@news.etc.bc.ca> nwalker@cln.etc.bc.ca (Norm Walker) writes:
> >I have been using linux on a 486DX33 and after upgrading the kernel
> >to any version above 1.1.13 .  The system suffers from serious 
> >performance problems ... some program are alot worse than others
> >with no other software running it takes over a minute to load and
> >run pine (lots of memory available). Checking system usage while
> >trying to load pine shows that pine is in a sleep state ...
> >how does one find out what a program is waiting for
> >and has anybody else had performance problems like I have?

> The "strace" program is good at finding what programs are doing.
> (at least what they are requesting from the system)

Me too... sometimes during a compile, I notice up to 30% idle CPU time
when there appears to be little or no disk activity going on.

--
Alex Ramos (ramos@engr.latech.edu) * http://info.latech.edu/~ramos/
Louisiana Tech University, BSEE/Sr * These opinions are probably mine

------------------------------

From: bsa@kf8nh.wariat.org (Brandon S. Allbery)
Subject: Re: Slackware: ncurses broken?
Date: Thu, 4 Aug 1994 21:36:35 GMT

In article <31rbep$int@network.cc.jyu.fi>, tjko@tarzan.math.jyu.fi (Timo Kokkonen) says:
+---------------
| After upgrading to Slackware 2.0.0 I've had
| problems with programs using ncurses; 
| in many cases no colors, above 128 ASCII chars
| not visible in VC...
+------------->8

Between 1.8.1 and 1.8.5 the order of attributes in compiled terminfo files has
changed to be compatible with System V curses (so terminfo files can now be
shared between them; yes, terminfo databases can be heterogeneously NFS-
mounted).  Programs compiled with 1.8.1 must be recompiled with 1.8.5 to use
the new terminfo files; programs compiled with 1.8.5 can't be used with older
terminfo files, but you can re-"tic" the source to create 1.8.5-compatible
files.

++Brandon
-- 
Brandon S. Allbery KF8NH         [44.70.4.88]             bsa@kf8nh.wariat.org
Linux development:  iBCS2, JNOS, MH

------------------------------

Crossposted-To: news.software.nn
From: rantapaa@s6.math.umn.edu (Erik E. Rantapaa)
Subject: nn6.4.18 / Linux 1.1.8 -- seeing keyboard echo during network i/o
Date: Fri, 5 Aug 1994 01:50:10 GMT

I've compiled nn 6.4.18 under Slackware 1.2 and the resulting nn client
echos keystrokes to the screen when the program is busy doing network or
file i/o.  For example, select some articles, hit 'Z' followed quickly
by some characters and those characters will be echoed to the screen.
This doesn't happen with the nn client I use under SunOS.  Is defining
`HAVE_TERMIO' the right thing to do for linux?

Attached is a copy of the conf/s-linux.h file I hacked up.  Another
change I made was to include <netinet/in.h> in m-i80386.h since
the ntoh*() and hton*() subroutines are defined there (and I'm using
a NETOWRK_DATABASE).

============================= s=linux.h ================================
/*
 *      Use this file as a template for new s- files
 */


/*
 *      Include header files containing the following definitions:
 *
 *              off_t, time_t, struct stat
 */

#include <sys/types.h>
#include <sys/stat.h>


/*
 *      Define if your system has system V like ioctls
 */

#define HAVE_TERMIO                     /* */

/*
 *      Define to use terminfo database.
 *      Otherwise, termcap is used
 */

/* #define      USE_TERMINFO                    /* */

/*
 *      Specify the library (or libraries) containing the termcap/terminfo
 *      routines.
 *
 *      Notice:  nn only uses the low-level terminal access routines
 *      (i.e. it does not use curses).
 */

#define TERMLIB -ltermcap

/*
 *      Define HAVE_STRCHR if strchr() and strrchr() are available
 */

#define HAVE_STRCHR                     /* */

/*
 *      Availability of varargs/vprintf/vsprintf is normally assumed
 *      on most systems, *unless* NO_VARARGS is defined either here or
 *      in the m- file.
 *
 *      To overrule a NO_VARARGS in the m- file, define HAVE_VARARGS
 *      below if the varargs feature is available, *including* the
 *      vprintf/vsprintf routines.
 *
 *      You may also define NO_VARARGS here, if varargs or the v*printf
 *      are not available on this OS, but the m- file doesn't say so.
 */

/* #define HAVE_VARARGS /* Ignore NO_VARARGS -- else default */
/* #define NO_VARARGS /* */

/*
 *      Define if a signal handler has type void (see signal.h)
 */

#define SIGNAL_HANDLERS_ARE_VOID        /* */

/*
 *      Define if signals must be set again after they are caught
 */

#define RESET_SIGNAL_WHEN_CAUGHT        /* */

/*
 *      Define FAKE_INTERRUPT if a keyboard interrupt (^C) cannot interrupt
 *      a read() system call.  This happens on a few BSD based systems
 *      which don't have SV_INTERRUPT defined in <signal.h> and no
 *      siginterrupt() call to make systems call interruptable.  
 *      However, if siginterrupt() is available, but SV_INTERRUPT isn't
 *      defined, then simply define that instead of FAKE_INTERRUPT!
 */

/* #define FAKE_INTERRUPT       /* */

/*
 *      Define HAVE_HARD_SLEEP if sending a SIGALRM isn't enough to
 *      interrupt a sleep() call - typical symptom is that nnadmin W
 *      doesn't wakeup the nnmaster.
 */

/* #define HAVE_HARD_SLEEP              /* BSD ? */

/*
 *      Define HAVE_UALARM if your system has a 4.3 BSD like ualarm() call.
 *      Else define MICRO_ALARM(n) to timeout in n/10 seconds if possible.
 *      Don't define either if system only has the standard alarm() call.
 */

/* #define HAVE_UALARM                  /* BSD 4.3 */
/* #define MICRO_ALARM(n)       xxxx(n) /* */

/*
 *      Define if your system has BSD like job control (SIGTSTP works)
 */

#define HAVE_JOBCONTROL                 /* */


/*
 *      Define if your system has a 4.3BSD like syslog library.
 */

#undef HAVE_SYSLOG

/*
 *      Define if your system provides the "directory(3X)" access routines
 *
 *      If true, include the header file(s) required by the package below
 *      (remember that <sys/types.h> or equivalent is included above)
 *      Also typedef Direntry to the proper struct type.
 */

#define HAVE_DIRECTORY                  /* */

#include <dirent.h>                     /* System V */
/* #include <sys/dir.h>                         /* BSD */

typedef struct dirent Direntry;         /* System V */
/* typedef struct direct Direntry;              /* BSD */

/*
 *      Define if your system has a mkdir() library routine
 */

#define HAVE_MKDIR                      /* */

/*
 *      Pick one:
 *      Define HAVE_GETHOSTNAME if you have a BSD like gethostname routine.
 *      Define HAVE_UNAME if a system V compatible uname() is available.
 *      Define HOSTNAME_FILE "...." to a file containing the hostname.
 *      Define HOSTNAME_WHOAMI if sysname is defined in <whoami.h>.
 *
 *      As a final resort, define HOSTNAME to the name of your system
 *      (in config.h).
 */

/* #define HAVE_GETHOSTNAME                     /* BSD systems */
#define HAVE_UNAME                              /* System V */
/* #define HOSTNAME_FILE "/etc/uucpname"        /* or another file */
/* #define HOSTNAME_WHOAMI                      /* in <whoami.h> */

/*
 *      Define HAVE_MULTIGROUP if system has simultaneous multiple group
 *      membership capability (BSD style).
 *      Also define NGROUPS or include the proper .h file if NGROUPS is
 *      not defined in <sys/param.h>.
 *      Also define GIDSET_TYPE to the type of the elements in the array
 *      initialized by getgroups() if different from "int" (many systems
 *      have a gid_t, but very few use it for getgroups()).
 */

#define HAVE_MULTIGROUP /* BSD */

/*
 *      Define DETATCH_TERMINAL to be a command sequence which
 *      will detatch a process from the control terminal
 *      Also include system files needed to perform this HERE.
 *      If not possible, just define it (empty)
 */

/* #include "...." */

#define DETATCH_TERMINAL setpgrp();


/*
 *      Specify where the Bourne Shell is.
 */

#define SHELL           "/bin/sh"

/*
 *      Define OLD_AWK to the name of the "old awk" program if your
 *      standard 'awk' is 'nawk' (new awk).  Use full path if necessary.
 *      (This is a temporary hack until I get time to fix the scripts
 *      which breaks nawk).
 */

/* #define OLD_AWK      "oawk"          /* */

/*
 *      Define AVOID_SHELL_EXEC if the system gets confused by
 *              #!/bin/sh
 *      lines in shell scripts, e.g. only reads #! and thinks it
 *      is a csh script.
 */

/* #define AVOID_SHELL_EXEC             /* */

/*
 *      Specify the default mailer to be invoked by nnmail
 */

#define MAILX           "/bin/mailx"    /* SV */
/* #define      MAILX   "/usr/ucb/Mail"         /* BSD */

/*
 *      Define the maximum length of any pathname that may occur
 */

#define FILENAME        256

/*
 *      Define USE_MALLOC_H if the faster malloc() in -lmalloc should be used.
 *      This requires that -lmalloc is added to EXTRA_LIB below.
 *
 *      You can tune the malloc package through the following definitions
 *      according to the descriptions in malloc(3X):
 */

/* #define USE_MALLOC_H         /* */

/* #define MALLOC_GRAIN         sizeof(double)          /* M_GRAIN */
/* #define MALLOC_MAXFAST       (MALLOC_GRAIN*4)        /* M_MXFAST */
/* #define MALLOC_FASTBLOCKS    100                     /* M_NLBLKS */

/*
 *      NNTP support requires tcp/ip with socket interface.
 *
 *      Define NO_RENAME if the rename() system call is not available.
 *      Define NO_BZERO if the bzero() function is not available.
 *      Define EXCELAN if the tcp/ip package is EXCELAN based.
 *      Define NNTP_EXTRA_LIB to any libraries required only for nntp.
 */

/* #define NO_RENAME                    /* */
/* #define NO_BZERO                     /* */
/* #define EXCELAN                      /* */
/* #define NNTP_EXTRA_LIB -lsocket      /* */

/*
 *      Define standard compiler flags here:
 */

#define COMPILER_FLAGS

/*
 *      Define standard loader flags here:
 */

#define LOADER_FLAGS

/*
 *      If your system requires other libraries when linking nn
 *      specify them here:
 */

#define EXTRA_LIB

--
Erik E. Rantapaa  --  rantapaa@math.umn.edu  --  "A fen saved is a fen earned"

------------------------------

From: nelson@crynwr.crynwr.com (Russell Nelson)
Subject: Kernel change summary 1.1.23 -> 1.1.24
Date: 03 Aug 1994 14:54:10 GMT

Two video modes added to ati: 100x30 and 100x25.
Switch to release 2.1 of SoundBlaster Pro CD-ROM driver.  Found bug
        with multisession CDs.
Floppy was grabbing irq/dma too soon.
fsync the floppy instead of sync'ing it.
Add media_change call to fs device drivers.
--
-russ <nelson@crynwr.com>    http://www.crynwr.com/crynwr/nelson.html
Crynwr Software   | Crynwr Software sells packet driver support | ask4 PGP key
11 Grant St.      | +1 315 268 1925 (9201 FAX)  | What is thee doing about it?
Potsdam, NY 13676 | LPF member - ask me about the harm software patents do.

------------------------------

From: ssn@pnet1.pnet.com (South Street North Studios)
Subject: Re: -= good programmer's editor for X?
Date: 4 Aug 1994 21:51:49 -0400

Chris Bitmead (chrisb@cssc-syd.tansu.com.au) pondered:
=> Emacs 19.25 has syntax colouring.

Really?! Holy smoke -- I've been wishing for that. I'm *just* getting to 
know emacs; I love it. But how does one activate this syntax colouring?

=-= Patrick =-=
-- 
 __                __                                     __
(_  _    _|_ |_   (_ _|_ ._ _  _ _|_  |\ | _ ._ _|_ |_   (_ _|_    _|. _  _
__)(_)|_| |_ | |  __) |_ | (/_(/_ |_  | \|(_)|   |_ | |  __) |_|_|(_||(_)_>
ssn@pcnet.com \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Get it together

------------------------------

From: N J Andrews <N.J.Andrews@durham.ac.uk>
Subject: Re: 1.1.36 make problem: 'NULL' undeclared
Date: 3 Aug 1994 15:10:00 GMT

In article <31633d$hie@news.doit.wisc.edu>, mja@venus.telecom.wisc.edu (Michael Adas) writes:
|> Chris Tilbury (cjt@aspen.estate.warwick.ac.uk) wrote:
|> : Mark Evans (evansmp@mb52112.aston.ac.uk) wrote:
|> : : stick a #define NULL 0 anywhere in /usr/src/linux/include/linux/timer.h
|> :
|> : Which spills out no end of warnings about NULL being re-defined, since
|> : it's defined in /usr/src/linux/include/linux/types.h as
|> :
|> : #define    NULL    ((void *) 0)
|> :
|> : "#include <linux/types.h>" near the top of "timer.h" would strike me
|> : as a less risky solution, and a bit cleaner.
|> :
|> : Chris (just trying this out now)
|> 
|> I fixed this by putting this at the top of timer.h:
|> 
|> #ifndef NULL
|> #define NULL ((void *) 0)
|> #endif
|> 
|> The reason for the ifndef is that sometimes NULL is already defined when this
|> file is included, and sometimes it isn't (case in point, ps2aux.c).  If you
|> just define it, the compiler will complain that it is being defined twice
|> when compiling certain files.
|> 

As a matter of C style I would have said the correct definition for NULL should
be :-

#ifndef NULL
#define NULL 0
#endif

Just adding my voice the crowd.

-- 
Nigel J. Andrews
Astronomical Instrumentation Group
Physics Department
University of Durham

------------------------------

From: gch@sydney.DIALix.oz.au (Glen Haneman)
Subject: Advice reqd for developing online ordering s/w.
Date: Thu, 04 Aug 94 22:26:32 GMT

I am developing some software that would allows customers to
login via modem and order items. So far, what I have written
is basically a front end to ingres, where users can browse
product lists, select the items they want and leave there
customer details.

Since I want the system to be secure (i.e. I don't want users
breaking out of the program and into the filesytem) what is the
best way of handling this ?  Should I replace the command that 
launches the shell with a command to run my program, or is there
a better way of doing this ?

Any suggestion will be greatly appreciated.
Thanks,

Glen Haneman (gch@sydney.dialix.oz.au)
-- 
Glen Haneman (gch@sydney.dialix.oz.au)


------------------------------


** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: Linux-Development-Request@NEWS-DIGESTS.MIT.EDU

You can send mail to the entire list (and comp.os.linux.development) via:

    Internet: Linux-Development@NEWS-DIGESTS.MIT.EDU

Linux may be obtained via one of these FTP sites:
    nic.funet.fi				pub/OS/Linux
    tsx-11.mit.edu				pub/linux
    sunsite.unc.edu				pub/Linux

End of Linux-Development Digest
******************************
