Linux-Development-Sys Digest #744, Volume #8     Wed, 23 May 01 19:13:11 EDT

Contents:
  Re: question about fork() ("Karl Heyes")
  Preprocessor symbols automatically defined by gcc ([EMAIL PROTECTED])
  Re: How to find system and user memory used?
  Re: A TCP-oriented filesystem???  (Todd Knarr)
  KYZO Ltd. announces development collaboration with 3Com Corporation  
([EMAIL PROTECTED])
  ioctl to USB under 2.2.18 (Martin Galligan)
  Re: unresolved symbol: open_namei (Sumithra Ramanathan)
  Re: unresolved symbol: open_namei (Alexander Viro)
  Re: Kernel (mal)function after harmless driver Segmenttion Error ("Norm Dresner")
  Re: Preprocessor symbols automatically defined by gcc ("Norm Dresner")
  Nonblocking wait() ("morpheus")
  Re: Preprocessor symbols automatically defined by gcc (Adam Fineman)
  Re: Nonblocking wait()
  Re: Preprocessor symbols automatically defined by gcc ([EMAIL PROTECTED])
  Re: Win NT boot and Lilo boot (John in SD)
  thundering-herd vs wake-one ([EMAIL PROTECTED])
  Re: Preprocessor symbols automatically defined by gcc
  Re: Nonblocking wait() (Adam Fineman)
  USENIX 2001 Annual Technical Conference (Tiffany Peoples)

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

From: "Karl Heyes" <[EMAIL PROTECTED]>
Subject: Re: question about fork()
Date: Wed, 23 May 2001 17:24:26 +0100

In article <9egj9n$q4m$[EMAIL PROTECTED]>, "Wong Ka Chun"
<[EMAIL PROTECTED]> wrote:


> Hi Kasper,
> 
>   I see. So when child exit, the system will recliam all the memory.
>   However, I have further question on this. Say, if the fork and wait things
>   are done in a

When the child exits the memory used by the child is 'reclaimed'.  threads
are a different issue as the share the data space ie where s in located.  If
the child free'd s then it would affect the parent.  The execv call should
affect all threads, although I'm not sure under linux.

> thread, will there be any problem? Also, if the parent contain C++ object
> and link with some other shared libaries, will the destructor be called?
> Will the .fini() function be called in the shared libraries when child
> terminates?  TIA.

An execv will not invoke them, but an exit from the program should do.

karl.

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

Subject: Preprocessor symbols automatically defined by gcc
From: [EMAIL PROTECTED]
Date: 23 May 2001 12:35:08 -0500


I am looking for documentation outlining standard preprocessor symbols
that are automatically defined by gcc/g++ when building source files on
a Linux system.

Is it safe to assume that the "__linux__" is automatically defined by the
compiler on a Linux system ? Typing "gcc -dM -E - < /dev/null" shows
that a number of linux-related symbols are automatically defined by gcc:

@matrix:[/home/ssahmed] gcc -dM -E - < /dev/null
#define __linux__ 1 
#define linux 1 
#define __i386__ 1 
#define __i386 1 
#define __GNUC_MINOR__ 95 
#define i386 1 
#define __unix 1 
#define __unix__ 1 
#define __GNUC__ 2 
#define __linux 1 
#define __ELF__ 1 
#define unix 1 

Should I use __linux__ or linux or __linux ?

What is the preferred (ie canonical) way of including platform-specific
code when using gcc/g++ together with autoconf and automake ?

Thanks.

-- 
Salman Ahmed

To reply, remove "nospam." from my email address

ssahmed AT pathcom DOT com

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

From: [EMAIL PROTECTED] ()
Subject: Re: How to find system and user memory used?
Date: Wed, 23 May 2001 16:52:07 -0000

In article <[EMAIL PROTECTED]>,
Kasper Dupont  <[EMAIL PROTECTED]> wrote:

>> Thanks for all answers.
>> 
>> If I only want to backup all users' files, not system files,
>> I want to know each user's memory of files used and all users'
>> memory of files used. What command do I need to use excepting
>> gtop, ktop or free? Thanks
>> 
>> Best regards
>> Jiying
>
>These might help you:
>df -h
>du -sh /home/* /home

He might find quota useful too.

--
http://www.spinics.net/linux/

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

From: Todd Knarr <[EMAIL PROTECTED]>
Subject: Re: A TCP-oriented filesystem??? 
Date: Wed, 23 May 2001 17:04:45 GMT

In comp.os.linux.development.system <[EMAIL PROTECTED]> 
At150bogomips <[EMAIL PROTECTED]> wrote:
> I thought (ignorant me) that TCP packet size was not so limited.  (In theory,

TCP ( or rather IP ) packet sizes aren't limited. In theory an IP packet
could be something like 64k long. To simplify things, though, the IP
stack isn't required to allow packets longer than the underlying physical
transport will allow, though, so while on Ethernet you may be able to
send a 1024-byte payload, a PPP link may refuse to take it because it's
longer than the allowable size. Since TCP segments can't be longer than
the IP packet payload size, you have to be able to handle packets when
you're limited to the minimum IP packet size. This can be as small as
68 bytes, but in practice 576 will probably be the smallest you'll see
which gives a 512-byte payload.

Note that those are maximum sizes, packets/segments can always be smaller
than that, down to a 1-byte payload if that's all that needs sent.

> normally one still must load all the way from main memory.)  Disk--> RAM-->NIC
> only involves two memory accesses; Disk-->RAM-->CPU-->RAM-->NIC involves four
> memory accesses.  It just seemed that two accesses would be faster/less
> burdensome than four accesses.

Normally the CPU isn't the bottleneck in servers. The biggest bottleneck is
usually the network pipe itself, followed by the bus used to transfer data
from the disk to main memory. Your average PII-500 will max out a 100baseT
Ethernet long before the CPU and memory begin to even sweat.

-- 
Collin was right. Never give a virus a missile launcher.
                                -- Erk, Reality Check #8

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

From: [EMAIL PROTECTED]
Subject: KYZO Ltd. announces development collaboration with 3Com Corporation 
Date: Wed, 23 May 2001 17:10:34 GMT

UNITED KINGDOM - April 2001 - KYZO Ltd, a UK-based start-up
specializing in network appliances based on the Linux� operating
system, today announced its collaboration with 3Com Corporation
(Nasdaq: COMS), in developing a range of new products designed to meet
the needs of small businesses. The collaboration has resulted in the
OfficeConnect� Network Storage Server, initially launched in October
2000. 


The OfficeConnect Network Storage Server enables small businesses to
improve their daily operations and securely store vital files and
data. The network storage server is the easiest way to add storage to
networks and enable employees, including mobile workers and
telecommuters, to share information for increased productivity. The
advantage of this server includes continuous, automatic "back-up" of
all files on the network to protect business critical information. 

"We understand that small businesses are looking for comprehensive yet
simple solutions for sharing and accessing critical business
information," said Malcolm Cartledge, OEM marketing director for KYZO.
"By pairing our Linux based technology with 3Com's extensive small
business experience, the final result is a cost-effective and reliable
network storage solution." 

"3Com provides small business owners with solutions that help them
safely store information and ultimately get more from their network,"
said Paul Brett, Small Business Marketing Planning Manager for 3Com
Corporation. "By working with KYZO, we developed a network storage
solution specifically to meet the needs of small business owners." 

Using KYZO's technology, the 3Com's OfficeConnect Network Storage
Server allows three levels of management - users have the ability to
only change their passwords, managers are able to create folders and
groups, and administrators have full access to configure the system.
By devolving administration to the appropriate staff in this way, the
ownership and support costs for this product can be dramatically
reduced. Also, by locating network storage servers within the
workgroup environment, small business can greatly reduce overall
network congestion. 



About 3Com Corporation
3Com simplifies how people connect to information and services through
easy-to-use, connectivity products and solutions for consumers and
commercial organizations. The company also provides access
infrastructures and IP services platforms for network service
providers. For further information, visit www.3com.com or the press
site at www.3com.com/pressbox. 

About KYZO Ltd
KYZO is a world leader in developing network appliances and embedded
systems for a variety of applications and a broad range of clients,
typically based on its own LinuxROM distribution. The company
specializes in developing highly targeted solutions where ease-of-use
for non-technical users is of paramount importance. 




For further details contact: 


KYZO Ltd. 
By visiting www.kyzo.com 
- 3Com and OfficeConnect are � 3Com Corporation. 
- Linux is a registered trademark of Linus Torvalds. 

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

From: [EMAIL PROTECTED] (Martin Galligan)
Subject: ioctl to USB under 2.2.18
Date: 23 May 2001 12:00:07 -0700

I'm trying to do an ioctl to a USB device, under RedHat, (a 2.2.18 kernel with 
the devices built in).  The open call (fd = open( "/dev/usblp0", O_RDWR );)
works fine, but I can't even figure out from any HOWTO or man page, what possible 
args to put in the ioctl:
  retval = ioctl( fd, SIOCGIFMAP);

Initially, I'd like to requests PNP Id's from everything on the USB bus.

-Marty

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

From: Sumithra Ramanathan <[EMAIL PROTECTED]>
Subject: Re: unresolved symbol: open_namei
Date: Wed, 23 May 2001 14:20:43 -0500
Reply-To: [EMAIL PROTECTED]

I am trying to get the driver upgraded for 2.4.x . That's when I see this
error. I am not trying to downgrade the kernel version.

Sumithra

Kasper Dupont wrote:

> Sumithra Ramanathan wrote:
> >
> > Hello
> >
> > I recently upgraded to Redhat 7.1 and recompiled a ethernet device
> > driver on it. There were no compile time errors. I tried to insmod and
> > the error unresolved symbol: open_namei is reported.
> >
> > I had the same driver working on Redhat 7.0 and gcc downgraded to 2.95.
> >
> > My questions are
> > 1. Do I have to downgrade to egcs 1.1.2? If so what are packages to be
> > downgraded?
> > 2. What does this error mean and why is open_namei not exported?
> >
> > Thanks for any suggestions
> > Sumithra
>
> From RH7.0 to RH7.1 the kernel was upgraded from
> version 2.2.16 to 2.4.x. There are lots of differences
> between the two versions, in particular large part of
> the virtual file system and the network layers have
> been rewritten.
>
> You have to upgrade the network driver to a 2.4.x
> compatible version. It might be possible to downgrade
> the kernel, but I think that would be a very bad idea.
>
> --
> Kasper Dupont


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

From: [EMAIL PROTECTED] (Alexander Viro)
Subject: Re: unresolved symbol: open_namei
Date: 23 May 2001 16:25:47 -0400

In article <[EMAIL PROTECTED]>,
Sumithra Ramanathan  <[EMAIL PROTECTED]> wrote:
>I am trying to get the driver upgraded for 2.4.x . That's when I see this
>error. I am not trying to downgrade the kernel version.

There is no chance to do that unless you have the source of driver.
If you do - well, it can be ported, but it may be nontrivial. Is it
your code?

-- 
"You're one of those condescending Unix computer users!"
"Here's a nickel, kid.  Get yourself a better computer" - Dilbert.

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

From: "Norm Dresner" <[EMAIL PROTECTED]>
Subject: Re: Kernel (mal)function after harmless driver Segmenttion Error
Date: Wed, 23 May 2001 20:56:03 GMT

Kasper Dupont <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]...
> Norm Dresner wrote:
> >
> > A few weeks ago I'd noticed that when a new driver I was writing crashed
> > with a segmentation error that the system log ceased to function.
Several
> > readers in this newsgroup pointed out that the failure could have been
> > caused by my driver clobbering essential kernel code, and I while I
didn't
> > agree, I couldn't  prove otherwise.
> >
> > Yesterday, after finally getting the driver working, I intentionally
> > introduced a controllable segmentation fault into it via an ioctl-code
which
> > tried to read from the raw PCI address -- not the ioremap-ed virtual
address
> > that I know works.  That's all it did: read a word from this address
into a
> > local variable and if successful print it out via printk().
> >
> > And, exactly as before, after the segmentation fault, the system log was
> > inoperative.  This time I know that there was no clobbering of kernel
code.
> > So ...  I ask again:  Why does the system log either die or hang after
any
> > segmentation error?
> >
> > Thanks
> >     Norm
>
> A segmentation fault in the kernel can lead to
> inconsistency in the internal data structures.
> Even if you don't change anything there might
> be problems because some of the procedure calls
> on the stack might have started doing something
> that they don't get the chacne to finish.
>
> Unless you know the exact layout of the kernel
> stack and how these functions work you will not
> be able to tell wether the kernel is left in a
> consistent state.
>
> --
> Kasper Dupont

    So you're saying that this is an intentional "feature" to prevent
further corruption of the kernel?

        Norm




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

From: "Norm Dresner" <[EMAIL PROTECTED]>
Subject: Re: Preprocessor symbols automatically defined by gcc
Date: Wed, 23 May 2001 21:03:54 GMT

<[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]...
>
> I am looking for documentation outlining standard preprocessor symbols
> that are automatically defined by gcc/g++ when building source files on
> a Linux system.
>
> Is it safe to assume that the "__linux__" is automatically defined by the
> compiler on a Linux system ? Typing "gcc -dM -E - < /dev/null" shows
> that a number of linux-related symbols are automatically defined by gcc:
>
> @matrix:[/home/ssahmed] gcc -dM -E - < /dev/null
> #define __linux__ 1
> #define linux 1
> #define __i386__ 1
> #define __i386 1
> #define __GNUC_MINOR__ 95
> #define i386 1
> #define __unix 1
> #define __unix__ 1
> #define __GNUC__ 2
> #define __linux 1
> #define __ELF__ 1
> #define unix 1
>
> Should I use __linux__ or linux or __linux ?
>
> What is the preferred (ie canonical) way of including platform-specific
> code when using gcc/g++ together with autoconf and automake ?
>
> Thanks.
>
> --
> Salman Ahmed

    What you have done is to tell gcc to dump all of the currently known
preprocessor symbols after compiling the file.  Since you don't have a file
with it's own #defines (or equivalently #includes), you're getting ALL of
the default preprocessor symbols.

It's common practice that "user" #defines never start with __ (two
underscores) so I'd say that __linux__  is "safer" than linux.

    Norm




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

From: "morpheus" <[EMAIL PROTECTED]>
Subject: Nonblocking wait()
Date: Wed, 23 May 2001 21:52:13 GMT

Hi,
it's still me! ;-)
I got through the implementation of my shell, now I wish to make a
background option... this wait, i need to implement a nonblocking
wait... is this waitpid?
Something like

pid=fork();
if (pid==0)
 execvp(child_exec);
else
 {
 x = getpid();
 waitpid(x);
 }

what parameters in waitpid? Man is not so clear about it!
Thanks in advance for any help!
Ale



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

From: Adam Fineman <[EMAIL PROTECTED]>
Subject: Re: Preprocessor symbols automatically defined by gcc
Date: Wed, 23 May 2001 18:02:17 -0400

[EMAIL PROTECTED] wrote:
> 
> I am looking for documentation outlining standard preprocessor symbols
> that are automatically defined by gcc/g++ when building source files on
> a Linux system.
> 
> Is it safe to assume that the "__linux__" is automatically defined by the
> compiler on a Linux system ?

I think you're ok assuming that.  I've just checked 8 machines here at
work, with varying combinations of distribution/kernel version/gcc
version, including some cross-compilers, and they've all had __linux__
defined.

AFAIK, __linux__ is defined as long as gcc was configured to compile for
linux.

> Typing "gcc -dM -E - < /dev/null" shows
> that a number of linux-related symbols are automatically defined by gcc:
> 
> @matrix:[/home/ssahmed] gcc -dM -E - < /dev/null
> #define __linux__ 1
> #define linux 1
> #define __i386__ 1
> #define __i386 1
> #define __GNUC_MINOR__ 95
> #define i386 1
> #define __unix 1
> #define __unix__ 1
> #define __GNUC__ 2
> #define __linux 1
> #define __ELF__ 1
> #define unix 1
> 
> Should I use __linux__ or linux or __linux ?
> 
> What is the preferred (ie canonical) way of including platform-specific
> code when using gcc/g++ together with autoconf and automake ?
> 

You should be asking about this stuff on one of the gnu newsgroups, I
think.  Or, you can always look at the way it was done in the source for
the compiler itself.  That should give you a pretty good example.

HTH

--
Adam

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

From: [EMAIL PROTECTED] ()
Subject: Re: Nonblocking wait()
Date: Wed, 23 May 2001 22:01:32 -0000

In article <hiWO6.20088$[EMAIL PROTECTED]>,
morpheus <[EMAIL PROTECTED]> wrote:

>it's still me! ;-)
>I got through the implementation of my shell, now I wish to make a
>background option... this wait, i need to implement a nonblocking
>wait... is this waitpid?

You will need to handle SIGCHLD.

--
http://www.spinics.net/linux/

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

Subject: Re: Preprocessor symbols automatically defined by gcc
From: [EMAIL PROTECTED]
Date: 23 May 2001 18:13:19 -0500

>>>>> "ND" == Norm Dresner <[EMAIL PROTECTED]> writes:
    ND>     What you have done is to tell gcc to dump all of the
    ND> currently known preprocessor symbols after compiling the file.
    ND> Since you don't have a file with it's own #defines (or
    ND> equivalently #includes), you're getting ALL of the default
    ND> preprocessor symbols.

That was intentional. I wanted to see what preprocessor symbols gcc was
defining without including any header files.

-- 
Salman Ahmed

To reply, remove "nospam." from my email address

ssahmed AT pathcom DOT com

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

From: John in SD <[EMAIL PROTECTED]>
Subject: Re: Win NT boot and Lilo boot
Reply-To: [EMAIL PROTECTED]
Date: Wed, 23 May 2001 22:15:25 GMT

On Tue, 22 May 2001 14:40:45 +0200, "Hugin" <[EMAIL PROTECTED]> wrote:

>Hello,
>
>I've got a Win2000 install on a 90GB Raid array on a Promise
>FastTrak100 controller. To boot of this I have to set my BIOS to
>boot SCSI first. I also have a linux install on a 9GB harddisk
>connected as secondary master. To boot of this I have to set
>the BIOS to boot C first.
>
>Is there a way (either by using Lilo or NT loader) so that I can
>choose which OS to use during boot?
>
>The problem is that Lilo can't see the raid array, as it is not supported
>under Linux. Also tried to add a line to boot.ini and created a
>bootsect.lnx file on the raid array which points to the linux unstall,
>but had no luck so far...
>

What version of LILO are you using?  Newer versions have support for far more
controllers.

In any event, you might get away with the following in lilo.conf:

disk=/dev/hdb   bios-0x81
...

other=/dev/hdb
    label=Win2k
    unsafe

--John



LILO version 21.7 (24-Feb-2001) source at
http://www.ibiblio.org/pub/Linux/system/boot/lilo
patches to -2 at ftp://brun.dyndns.org/pub/linux/lilo

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

From: [EMAIL PROTECTED]
Crossposted-To: comp.unix.bsd.freebsd.misc
Subject: thundering-herd vs wake-one
Date: 23 May 2001 21:30:31 GMT

Note: This is crossposted on FreeBSD and Linux because I'm asking this
question in the context of both of these systems.

Linux recently added "wake-one" capability in version 2.4 (patches exist
for 2.2), and from what I read so far, FreeBSD has had this well before
Linux did.  I've been looking for more information on it, and there is
a lot, but unfortunately, there isn't any good information that I have
found on just how it exactly works, particularly in terms of the subtle
effects on inherited listen descriptors, as well as any other issues
that process level programs need to consider.  Among the things I have
read is that Apache has specific code to deal with some of these issues.
I don't actually see it in the source (but it just may not be commented
appropriately).

What I am asking for is for information that specifically describes how
wake-one is supposed to work, including things like what circumstances it
offers no advantages, and what circumstances it does.  I'm also interested
in compatibility issues with programs written with the understanding that
wake-many would be the way.

I'd also like to know some about the history of it, including when it
showed up in FreeBSD (or was it always there?).

-- 
=================================================================
| Phil Howard - KA9WGN |   Dallas   | http://linuxhomepage.com/ |
| [EMAIL PROTECTED] | Texas, USA | http://phil.ipal.org/     |
=================================================================

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

From: [EMAIL PROTECTED] ()
Subject: Re: Preprocessor symbols automatically defined by gcc
Date: Wed, 23 May 2001 22:31:29 -0000

In article <_AVO6.40590$[EMAIL PROTECTED]>,
Norm Dresner <[EMAIL PROTECTED]> wrote:

>    What you have done is to tell gcc to dump all of the currently known
>preprocessor symbols after compiling the file.  Since you don't have a file
>with it's own #defines (or equivalently #includes), you're getting ALL of
>the default preprocessor symbols.

That's exactly what he was wanting.

--
http://www.spinics.net/linux/

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

From: Adam Fineman <[EMAIL PROTECTED]>
Subject: Re: Nonblocking wait()
Date: Wed, 23 May 2001 18:39:52 -0400

morpheus wrote:
> 
> Hi,
> it's still me! ;-)
> I got through the implementation of my shell, now I wish to make a
> background option... this wait, i need to implement a nonblocking
> wait... is this waitpid?
> Something like
> 
> pid=fork();

First you want to check for (pid < 0), which means that the fork()
failed.

> if (pid==0)
>  execvp(child_exec);

You know that this will not compile, I hope.  The prototype is: int
execvp( const char *file, char *const argv[]);
Also, you are ignoring the return value.  Don't be lazy; always check
return values.  Don't pick up bad habits so early in your career.

> else
>  {
>  x = getpid();

This returns the pid of the shell.  You really don't want the shell to
wait on the shell, do you?
What you wan't to do is wait on the child you just forked and execed,
right?  fork() returns 0 in the child and the pid of the new process in
the parent, so the variable pid is what you want, not x.

>  waitpid(x);

Again, this won't compile.  The prototype is: pid_t waitpid(pid_t pid,
int *status, int options);
And check the return value!!!

>  }
> 


> what parameters in waitpid? Man is not so clear about it!

What, specifically, don't you understand about the man page?  I cut &
pasted the above prototype from the man page.  Each parameter is
explained in the man page.

> Thanks in advance for any help!
> Ale

Also, you mentioned that this was for running something in the
*background*???  If the shell stops until the command finishes (i.e.
waits on the child), then the command is running in the *foreground*. 
If the shell and the command can both be running simultaneously, the the
command is running in the background.

HTH,

--
Adam

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

From: Tiffany Peoples <[EMAIL PROTECTED]>
Subject: USENIX 2001 Annual Technical Conference
Date: Wed, 23 May 2001 15:48:48 -0700

2001 USENIX Annual Technical Conference
June 25-30, 2001 
Marriott Copley Place Hotel
Boston, Massachusetts, USA
http://www.usenix.org/events/usenix01/

==============================================
REGISTER BY May 25, 2001 and Save up to $200!
==============================================

Join peers, research and industry leaders in Boston at the USENIX Annual 
Technical Conference. 

FEATURING THIRTY professional-level tutorials, SEVENTEEN brand-new!
Here�s a sampling:
Running Web Servers Securely     Internet Security for Linux Sys Admins
Network Security Profiles        UNIX Network Programming
Network Programming with Perl    Inside the Linux Kernel
Building Linux Applications         Large Heterogeneous Networks
Practical Wireless IP Security         Exploring the Potential of LDAP
Wireless Networking Fundamentals    Configuring & Administering Samba 
Servers

* KEYNOTE ADDRESS by Daniel D. Frye, Director of IBM Linux Technology 
Center.

* INVITED TALKS on WAP, IP Wireless Networking, Security Aspects of 
Napster and Gnutella, Security For E-voting in Public Elections, Virtual 
Machines, Online Privacy, Active Content and Secure DNS

*NEWLY ADDED CLOSING SESSION with Cynthia Breazeal, researcher from the 
MIT media lab, currently developing robots that can duplicate human 
facial emotions.

*VENDOR EXHIBITION featuring innovative companies, products and 
services. 
For more information on exhibiting, please contact Dana Geffner at 
[EMAIL PROTECTED]

For more information and to register, visit: 
http://www.usenix.org/events/usenix01/

=====================================================================
The 2001 USENIX Annual Technical Conference is sponsored by 
USENIX, the Advanced Computing Systems Association.   www.usenix.org
=====================================================================

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


** 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: [EMAIL PROTECTED]

You can send mail to the entire list by posting to the
comp.os.linux.development.system newsgroup.

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

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

Reply via email to