Re: gcc

1999-02-28 Thread David O'Brien
 Peter was working on it, but I strongly suspect he won't have time to
 even think about this in the very near future

Personally, I'm slowly working on putting the FreeBSD GCC changes into
EGCS 1.1.1 so it can compile our sources.

I've got the compiler contribed and am working on the contrib of
libstdc++.  I will share my local CVS tree with anyone that wants to help
out.


 It would probably be cool to find out what the last set of issues he
 identified and/or fixed with this was though.

Agreed.  Peter is being quite quiet on this subject.

-- 
-- David(obr...@nuxi.com  -or-  obr...@freebsd.org)


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Doug Rabson
On Sat, 27 Feb 1999, Jordan K. Hubbard wrote:

  I for one would love to see 2.8.1 or newer in the tree for my own,
  selfish reasons.  Many ports (new architectures) would benefit from
  this.
 
 Is that to say that you prefer it over egcs 1.1.1?  If so, why?

I have found egcs to be slightly better at C++ code (for my own projects
anyway).  I believe that it may produce better code too but I don't have
any real evidence.

--
Doug Rabson Mail:  d...@nlsystems.com
Nonlinear Systems Ltd.  Phone: +44 181 442 9037




To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Mark Murray
David O'Brien wrote:
  Peter was working on it, but I strongly suspect he won't have time to
  even think about this in the very near future
 
 Personally, I'm slowly working on putting the FreeBSD GCC changes into
 EGCS 1.1.1 so it can compile our sources.

Hmm... Does it not make more sense to slowly remove the FreeBSD'ism
that require that we futz with the compiler?

 I've got the compiler contribed and am working on the contrib of
 libstdc++.  I will share my local CVS tree with anyone that wants to help
 out.

Me, please!

M
--
Mark Murray
Join the anti-SPAM movement: http://www.cauce.org


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread David O'Brien
 Hmm... Does it not make more sense to slowly remove the FreeBSD'ism
 that require that we futz with the compiler?

I don't think bde, et. al. is going to let -fformat-extensions go away.  :-)
 
-- 
-- David(obr...@nuxi.com  -or-  obr...@freebsd.org)


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Mark Murray
David O'Brien wrote:
  Hmm... Does it not make more sense to slowly remove the FreeBSD'ism
  that require that we futz with the compiler?
 
 I don't think bde, et. al. is going to let -fformat-extensions go away.  :-)

Then can't we get that put into mainstream gcc/egcs? 

M
--
Mark Murray
Join the anti-SPAM movement: http://www.cauce.org


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Chuck Robey
On Sat, 27 Feb 1999, Jordan K. Hubbard wrote:

  I for one would love to see 2.8.1 or newer in the tree for my own,
  selfish reasons.  Many ports (new architectures) would benefit from
  this.
 
 Is that to say that you prefer it over egcs 1.1.1?  If so, why?

I was a little surprised at the egcs thing myself.  While I (along with
probably everyone else) thinks that egcs is more advanced, it's also had
the bugs that go along with being leading edge.  Since FreeBSD's
extremely conservative attitude towards changing our compiler is very
nearly legendary, well, to be willing to jump towards the bleeding edge
suprised me.

If there really exists the political will to move us to egcs, this might
be a good thing.  The code is very definitely better, and moving us
towards egcs will make a later upgrade to an even newer egcs somewhat
easier, perhaps.  More importantly, it's going to make the egcs writers
take notice, and have a bit more receptive attitude towards accepting
patches from us for the FreeBSD port ... possibly REALLY easing the
upgrade path.

My own personal experience is that the egcs people read and react to
trouble reports ... I've sent them in to the gcc authors in the past,
but never seen any changes from them, like I did from egcs.

+---
Chuck Robey | Interests include any kind of voice or data 
chu...@glue.umd.edu | communications topic, C programming, and Unix.
213 Lakeside Drive Apt T-1  |
Greenbelt, MD 20770 | I run picnic (FreeBSD-current)
(301) 220-2114  | and jaunt (Solaris7).
+---






To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Bruce Evans
  Hmm... Does it not make more sense to slowly remove the FreeBSD'ism
  that require that we futz with the compiler?
 
 I don't think bde, et. al. is going to let -fformat-extensions go away.  :-)

Then can't we get that put into mainstream gcc/egcs? 

Because extensions are extensions of the mainstream gcc/egcs, by
definition.  Format extensions that belong in the mainstream version
aren't controlled by -fformat-extensions.  E.g., the __printf0__
attribute.

Bruce


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



tail /proc/map/*

1999-02-28 Thread Bruce Evans
tail(1) assumes that mmap(2) works on works on regular files.  mmap(2) on
the irregular regular files /proc/*/map returns success but doesn't work.
The first access to the mmapped memory usually causes the kernel to
printf messages like the following:

vnode_pager: *** WARNING *** stale FS getpages
No strategy for buffer at 0xf12828e8
: 0xf3877800: type VREG, usecount 4, writecount 0, refcount 0, flags (VOBJBUF)
tag VT_PROCFS, type 11, pid 591, mode 124, flags 0
: 0xf3877800: type VREG, usecount 4, writecount 0, refcount 0, flags (VOBJBUF)
tag VT_PROCFS, type 11, pid 591, mode 124, flags 0
vnode_pager_getpages: I/O read error
vm_fault: pager read error, pid 2023 (tail)
pid 2023 (tail), uid 15: exited on signal 11

Bruce


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Ollivier Robert
According to Chuck Robey:
 I know that, back when we ran aout, our gcc was a long way changed from
 the stock gnu gcc ... I'm wondering how much our gcc is changed, now,
 from the gcc that is the regular GNU distribution?

gcc was not that different, it was mostly the binutils chain (as, ld and
all that stuff) because a.out was not supported anymore by modern versions.

-- 
Ollivier ROBERT -=- FreeBSD: The Power to Serve! -=- robe...@keltia.freenix.fr
FreeBSD keltia.freenix.fr 4.0-CURRENT #70: Sat Feb 27 09:43:08 CET 1999



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: lockmgr panic with mmap()

1999-02-28 Thread Bruce Evans
The attached program sometimes causes a lockmgr panic. I do not think is always
did. I am running 4.0-CURRENT form Feb 19.

The trace is:
panic lockmgr: locking against self
lockmgr
mv_map_growstack
grow_stack
trap_pfault
trap
calltrap
subyte
syscall
...

A command on a running image such as this usually does it, though I do not 
know what
conditions are neccessary:

fincore /usr/local/netscape-4.5/communicator-4.5.bin

Here is a simpler example.

---
#include sys/param.h
#include sys/mman.h

#include err.h
#include stdlib.h

#define SIZE(32 * 1024 * 1024)

int
main(void)
{
void *p;
char vec[SIZE / PAGE_SIZE];

p = malloc(SIZE);
if (mincore(p, SIZE, vec) != 0)
err(1, mincore);
return (0);
}
---

mincore() locks the vmspace map, and initialises vec[] a byte at a time
using subyte().  When vec[] is sufficiently large, it is not all in core
initially and a page fault occurs in subyte().  The new stack growing
code locks the vmspace map early and panics.

Bruce


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread German Tischler
On Sun, Feb 28, 1999 at 09:32:51AM +, Doug Rabson wrote:
 On Sat, 27 Feb 1999, Jordan K. Hubbard wrote:
 
   I for one would love to see 2.8.1 or newer in the tree for my own,
   selfish reasons.  Many ports (new architectures) would benefit from
   this.
  
  Is that to say that you prefer it over egcs 1.1.1?  If so, why?
 
 I have found egcs to be slightly better at C++ code (for my own projects
 anyway).  I believe that it may produce better code too but I don't have
 any real evidence.

egcs is much closer to ISO-14882 (ISO C++), that was finished AFTER
gcc2.8.1 was released. So if one wants to do standard conform C++
programing, egcs is the choice at the time being. (though it also
doens't implement all features of the standard yet).

-- 
German Tischlerta...@gaspode.franken.de
Apple eaten (core dumped)  ta...@cip.informatik.uni-wuerzburg.de


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Russell L. Carter
%On Sat, 27 Feb 1999, Jordan K. Hubbard wrote:
%
%  I for one would love to see 2.8.1 or newer in the tree for my own,
%  selfish reasons.  Many ports (new architectures) would benefit from
%  this.
% 
% Is that to say that you prefer it over egcs 1.1.1?  If so, why?
%
%I have found egcs to be slightly better at C++ code (for my own projects
%anyway).  I believe that it may produce better code too but I don't have
%any real evidence.

The ACE people recommend egcs.  Taken directly from ~ace/ACE-INSTALL.html:

ACE/TAO don't seem to build well with g++ 2.8.1. We routinely use g++ 
2.7.2.3, egcs 1.0.2, and egcs 1.0.3, and recommend those versions. egcs 1.1.1 
is reported to be OK, as well.

TAO is quite an exercise for a C++ compiler, and I build it just fine
on -current with the egcs in ports.

Russell



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: tail /proc/map/*

1999-02-28 Thread Dmitrij Tejblum
Bruce Evans wrote:
 tail(1) assumes that mmap(2) works on works on regular files.  mmap(2) on
 the irregular regular files /proc/*/map returns success but doesn't work.

IMO, it ought to work. There should be no reason why regular files on 
procfs are more irregular than regular files on NFS.

 The first access to the mmapped memory usually causes the kernel to
 printf messages like the following:
 
 vnode_pager: *** WARNING *** stale FS getpages

(Still no such messages here. I still don't run the Terry's submission 
that just introduced the message and spread a lot of same trivial 
getpages/putpages routines over the kernel... I hope to clean out all 
this junk some day, (when everyone will finally forget that matter ;-)
The message is not quite relevant to the problem, though.)

 No strategy for buffer at 0xf12828e8
 : 0xf3877800: type VREG, usecount 4, writecount 0, refcount 0, flags (VOBJBUF)
   tag VT_PROCFS, type 11, pid 591, mode 124, flags 0
 : 0xf3877800: type VREG, usecount 4, writecount 0, refcount 0, flags (VOBJBUF)
   tag VT_PROCFS, type 11, pid 591, mode 124, flags 0
 vnode_pager_getpages: I/O read error

That is because procfs define a bogus BMAP operation, but don't define 
a STRATEGY operation. The BMAP operation apparently only useful to 
break mmap(2).

After the BMAP code removed, another procfs bugs become apparent. 
procfs claim that /proc/*/map files are all sizeof(struct regs)( == 76) bytes 
length (:-|), but don't allow read only 76 bytes from the 'map' file.
It confuse the vm code that conver mmap to read, but it also may 
confuse other things. If I change the size of the 'map' file to something 
larger, tail /proc/*/map output something quite reasonable. 

I think procfs_domap should do what requested, and should not try to 
guarantee atomicity, as now: anyhow, any file may change it content 
between reads, not just under procfs. Also, procfs could compute 'map' 
file size more accurately.

Apparently, such a mmap implementation has coherency problems. But I 
don't think that they are more difficult to solve (or more serious)
than in NFS case.

Dima

P.S. This is the changes that allow me to see a reasonable good result 
from 'tail /proc/*/map'.

--- procfs_vnops.c  Sun Feb 28 15:33:52 1999
+++ procfs_vnops.c  Sun Feb 28 17:29:22 1999
@@ -560,6 +560,12 @@
 
case Ptype:
case Pmap:
+   vap-va_bytes = vap-va_size = 4096;
+   vap-va_nlink = 1;
+   vap-va_uid = procp-p_ucred-cr_uid;
+   vap-va_gid = procp-p_ucred-cr_gid;
+   break;
+
case Pregs:
vap-va_bytes = vap-va_size = sizeof(struct reg);
vap-va_nlink = 1;
@@ -982,7 +988,7 @@
{ vop_abortop_desc,(vop_t *) procfs_abortop },
{ vop_access_desc, (vop_t *) procfs_access },
{ vop_advlock_desc,(vop_t *) procfs_badop },
-   { vop_bmap_desc,   (vop_t *) procfs_bmap },
+   /*{ vop_bmap_desc, (vop_t *) procfs_bmap },*/
{ vop_close_desc,  (vop_t *) procfs_close },
{ vop_create_desc, (vop_t *) procfs_badop },
{ vop_getattr_desc,(vop_t *) procfs_getattr },




To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Some (a.out) world breakage...

1999-02-28 Thread Zach Heilig
Make world (with no -DNOAOUT or whatever that switch is), ends up like this:

--
 Building legacy libraries
--



(echo '#define LENGTH 20';  sed -e 's/mdX/sha/g' -e 's/MDX/SHA_/g' -e 
's/SHA__/SHA_/g'  /usr/src/lib/libmd/mdXhl.c)  sha0hl.c
cc -O -pipe -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF 
-I/usr/obj/aout/usr/src/tmp/usr/include -c sha0hl.c -o sha0hl.o
cc -O -pipe -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF 
-I/usr/obj/aout/usr/src/tmp/usr/include -c /usr/src/lib/libmd/sha1c.c -o sha1c.o
(echo '#define LENGTH 20';  sed -e 's/mdX/sha/g' -e 's/MDX/SHA1_/g' -e 
's/SHA1__/SHA1_/g'  /usr/src/lib/libmd/mdXhl.c)  sha1hl.c
cc -O -pipe -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF 
-I/usr/obj/aout/usr/src/tmp/usr/include -c sha1hl.c -o sha1hl.o
cc -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF 
-I/usr/obj/aout/usr/src/tmp/usr/include  -c /usr/src/lib/libmd/i386/sha.S -o 
sha.o
sha1-586.s: Assembler messages:
sha1-586.s:56: Error: Alignment too large: 15. assumed.
*** Error code 1

Stop.

Quite obviously defining ELF for the entire legacy library build, but
waiting to really break in 'libmd'.

I did look in the broken file, and noted that ALIGN was defined as 16
in the 'ELF' case, and 4 in the 'OUT' case.  It looks impossible (to me)
for 'OUT' to be defined while compiling that file
(/usr/src/lib/libmd/i386/sha.S).

I guess it's time to quit building a.out? :-)

-- 
Zach Heilig z...@uffdaonline.net
Americans are sensitive about their money, and since this was the first major
change in the greenback in nearly 70 years, a radical redesign might have been
too much for consumers to comprehend -- John Iddings [COINage, Feb. 1999].


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



still having buildworld trouble for libmd

1999-02-28 Thread Matthew Jacob


cc -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF
-I/usr/obj/aout/usr/src/tmp/usr/include  -c /usr/src/lib/libmd/i386/sha.S
-o sha.o
sha1-586.s: Assembler messages:
sha1-586.s:56: Error: Alignment too large: 15. assumed.
*** Error code 1

I have an elf i386. The build  seems broken. What's up?




To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Warner Losh
In message 20655.920182...@zippy.cdrom.com Jordan K. Hubbard writes:
:  I for one would love to see 2.8.1 or newer in the tree for my own,
:  selfish reasons.  Many ports (new architectures) would benefit from
:  this.
: 
: Is that to say that you prefer it over egcs 1.1.1?  If so, why?

No.  I'd love to see 2.8.1 or newer.  egcs 1.1.1 is newer.  I'd prefer
egcs, for a variety of reasons...

Warner


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: still having buildworld trouble for libmd

1999-02-28 Thread Zach Heilig
On Sun, Feb 28, 1999 at 08:39:46AM -0800, Matthew Jacob wrote:
 cc -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF
 -I/usr/obj/aout/usr/src/tmp/usr/include  -c /usr/src/lib/libmd/i386/sha.S
 -o sha.o
 sha1-586.s: Assembler messages:
 sha1-586.s:56: Error: Alignment too large: 15. assumed.
 *** Error code 1

 I have an elf i386. The build  seems broken. What's up?

The '-DELF' bit on the command line (it's building a.out libraries).
It looks to be a problem with building all legacy libraries (-DELF
is there for the entire a.out library build).  libmd specifically does
not have any way of building a.out (the makefile will not add '-DOUT'
to the command line).

-- 
Zach Heilig z...@uffdaonline.net
Americans are sensitive about their money, and since this was the first major
change in the greenback in nearly 70 years, a radical redesign might have been
too much for consumers to comprehend -- John Iddings [COINage, Feb. 1999].


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: still having buildworld trouble for libmd

1999-02-28 Thread Chuck Robey
On Sun, 28 Feb 1999, Matthew Jacob wrote:

 
 
 cc -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF
 -I/usr/obj/aout/usr/src/tmp/usr/include  -c /usr/src/lib/libmd/i386/sha.S
 -o sha.o
 sha1-586.s: Assembler messages:
 sha1-586.s:56: Error: Alignment too large: 15. assumed.
 *** Error code 1
 
 I have an elf i386. The build  seems broken. What's up?

I guessed from commit logs that maybe Garrett had something to do with
it, and talking with him last night, I disabled the build of two
assembler files via the libmd Makefile:

.if (${OBJFORMAT} == elf) --  NEW
.if exists(${MACHINE_ARCH}/sha.S)
SRCS+=  sha.S
CFLAGS+= -DSHA1_ASM -DELF
.endif
.if exists(${MACHINE_ARCH}/rmd160.S)
SRCS+=  rmd160.S
CFLAGS+= -DRMD160_ASM -DELF
.endif
.endif--  NEW

When this fixed things, I asked Garrett about it, because I know nothing
at all about libmd or what uses libmd, but he didn't get back to me.
That does fix all the rest of the buildworld.

Does anyone know if this fix, only active really in the legacy build,
would have negative effects?  I want to do the installworld, but I'm
nervous about this (I don't like doing things by accident!)

+---
Chuck Robey | Interests include any kind of voice or data 
chu...@glue.umd.edu | communications topic, C programming, and Unix.
213 Lakeside Drive Apt T-1  |
Greenbelt, MD 20770 | I run picnic (FreeBSD-current)
(301) 220-2114  | and jaunt (Solaris7).
+---






To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Peter Wemm
Warner Losh wrote:
 In message 20655.920182...@zippy.cdrom.com Jordan K. Hubbard writes:
 :  I for one would love to see 2.8.1 or newer in the tree for my own,
 :  selfish reasons.  Many ports (new architectures) would benefit from
 :  this.
 : 
 : Is that to say that you prefer it over egcs 1.1.1?  If so, why?
 
 No.  I'd love to see 2.8.1 or newer.  egcs 1.1.1 is newer.  I'd prefer
 egcs, for a variety of reasons...
 
 Warner

A fair bit of work as been done on getting our stuff and egcs 1.1.1 merged
and into shape.  I see egcs 1.1.2 appears to be on the horizon, that won't
be much problem when it arrives as I expect it's pretty close to the 1.1.1
layout.

The main holdups have been getting the native egcs build to do something
more sensible with regards to -aout/-elf, and, if things work out, a bit
better cross-compile support.  (Note, the cross compile stuff doesn't work
too happily with the existing bmake glue and hacks in the code.)  I think 
I've got the threaded vs setjump/longjump exception stuff sorted out and 
runtime switchable based on -thread etc.

I suspect libg++ is approaching delete material.  libstdc++ comes with
egcs, and a hacked up libg++ is floating around that we can probably use,
but I wonder if it's time to loose it and keep just libstdc++.  libg++ on
it's own isn't all that useful, and would probably be better as a port for 
the few (if any) things that actually uses it's (non-standard) class 
libraries.

Cheers,
-Peter




To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: still having buildworld trouble for libmd

1999-02-28 Thread Matthew Jacob

Hmm! Yes, I guess we'll wait on Garrett, but I too need to do an
installworld so gratefully have borrowed your change!





To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: Some (a.out) world breakage...

1999-02-28 Thread John Polstra
In article 19990228103315.a37...@znh.org,
Zach Heilig  z...@uffdaonline.net wrote:
 Make world (with no -DNOAOUT or whatever that switch is), ends up like this:
 
 --
  Building legacy libraries
 --
 
 
 
 (echo '#define LENGTH 20';  sed -e 's/mdX/sha/g' -e 's/MDX/SHA_/g' -e 
 's/SHA__/SHA_/g'  /usr/src/lib/libmd/mdXhl.c)  sha0hl.c
 cc -O -pipe -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF 
 -I/usr/obj/aout/usr/src/tmp/usr/include -c sha0hl.c -o sha0hl.o
 cc -O -pipe -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF 
 -I/usr/obj/aout/usr/src/tmp/usr/include -c /usr/src/lib/libmd/sha1c.c -o 
 sha1c.o
 (echo '#define LENGTH 20';  sed -e 's/mdX/sha/g' -e 's/MDX/SHA1_/g' -e 
 's/SHA1__/SHA1_/g'  /usr/src/lib/libmd/mdXhl.c)  sha1hl.c
 cc -O -pipe -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF 
 -I/usr/obj/aout/usr/src/tmp/usr/include -c sha1hl.c -o sha1hl.o
 cc -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF 
 -I/usr/obj/aout/usr/src/tmp/usr/include  -c /usr/src/lib/libmd/i386/sha.S -o 
 sha.o
 sha1-586.s: Assembler messages:
 sha1-586.s:56: Error: Alignment too large: 15. assumed.
 *** Error code 1
 
 Stop.
 
 Quite obviously defining ELF for the entire legacy library build, but
 waiting to really break in 'libmd'.
 
 I did look in the broken file, and noted that ALIGN was defined as 16
 in the 'ELF' case, and 4 in the 'OUT' case.  It looks impossible (to me)
 for 'OUT' to be defined while compiling that file
 (/usr/src/lib/libmd/i386/sha.S).
 
 I guess it's time to quit building a.out? :-)

This problem can be solved easily.  Instead of .align the code
should use .p2align 4, which behaves the same for a.out as it does
for ELF.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra  Co., Inc.Seattle, Washington USA
  Nobody ever went broke underestimating the taste of the American public.
-- H. L. Mencken


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: Some (a.out) world breakage...

1999-02-28 Thread Chuck Robey
On Sun, 28 Feb 1999, John Polstra wrote:

  I did look in the broken file, and noted that ALIGN was defined as 16
  in the 'ELF' case, and 4 in the 'OUT' case.  It looks impossible (to me)
  for 'OUT' to be defined while compiling that file
  (/usr/src/lib/libmd/i386/sha.S).
  
  I guess it's time to quit building a.out? :-)
 
 This problem can be solved easily.  Instead of .align the code
 should use .p2align 4, which behaves the same for a.out as it does
 for ELF.

In test, this didn't work, so I misunderstood something.  I'm going to
show a segment of file /usr/src/lib/libmd/i386/sha.S:

gcc2_compiled.:
.text
.align ALIGN
.globl sha1_block_x86
TYPE(sha1_block_x86,@function)
sha1_block_x86:

I tried changing the .align to .p2align, and got this error:

cc -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF  -c
/usr/src/lib/libmd/i386/sha.S -o sha.o
/usr/tmp/ccx85357.s: Assembler messages:
/usr/tmp/ccx85357.s:57: Error: Alignment too large: 15 assumed
*** Error code 1

I tried changing .align instead to .p2align (in case I didn't read
you literally enough) and it complained of extra arguments.

BTW, in the code, ALIGN is defined earlier to be 4.

Last notes:  It used to break before this, only in the aout setting.
Now it breaks for elf and aout.  Also, the other file in ./i386,
rmd160.S, has an identical problem.  All this is done with the libmd
Makefile as original (the fix I worked out with Garrett, to take the
assembler files completely out of the aout build, I removed for this
test).

+---
Chuck Robey | Interests include any kind of voice or data 
chu...@glue.umd.edu | communications topic, C programming, and Unix.
213 Lakeside Drive Apt T-1  |
Greenbelt, MD 20770 | I run picnic (FreeBSD-current)
(301) 220-2114  | and jaunt (Solaris7).
+---






To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: Some (a.out) world breakage...

1999-02-28 Thread Zach Heilig
On Sun, Feb 28, 1999 at 01:18:50PM -0500, Chuck Robey wrote:
 cc -I/usr/src/lib/libmd -DSHA1_ASM -DELF -DRMD160_ASM -DELF  -c
 /usr/src/lib/libmd/i386/sha.S -o sha.o
 /usr/tmp/ccx85357.s: Assembler messages:
 /usr/tmp/ccx85357.s:57: Error: Alignment too large: 15 assumed
 *** Error code 1

...

 BTW, in the code, ALIGN is defined earlier to be 4.

No, because of the '-DELF', ALIGN is defined to be 16.

-- 
Zach Heilig z...@uffdaonline.net
Americans are sensitive about their money, and since this was the first major
change in the greenback in nearly 70 years, a radical redesign might have been
too much for consumers to comprehend -- John Iddings [COINage, Feb. 1999].


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: Some (a.out) world breakage...

1999-02-28 Thread John Polstra

Chuck Robey wrote:
 
 This problem can be solved easily.  Instead of .align the code
 should use .p2align 4, which behaves the same for a.out as it does
 for ELF.
 
 In test, this didn't work, so I misunderstood something.

Yes, you did. :-)

Get rid of ALIGN entirely.  Change all instances of .align ALIGN to
.p2align 4.

John
---
  John Polstra   j...@polstra.com
  John D. Polstra  Co., Inc.Seattle, Washington USA
  Nobody ever went broke underestimating the taste of the American public.
-- H. L. Mencken


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Warner Losh
In message 199902281707.baa63...@spinner.netplex.com.au Peter Wemm writes:
: better cross-compile support.  (Note, the cross compile stuff doesn't work
: too happily with the existing bmake glue and hacks in the code.)

Yes.  That's one of the big reasons that I'd like to see a more modern
compiler.  I'd love to have the ability to cross compile the entire
world, and right now the main hold up is gcc.  I'll be happy to work
with whoever to make sure that this functionality works.  Would that
be you Peter?

Warner


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: lockmgr panic with mmap()

1999-02-28 Thread Rahul Dhesi
Please forgive me if this is a silly question.

Since bugs do happen, deadlock can occur in the kernel.

Is it not possible in such cases to simply detect the deadlock, and kill
one of the user processes involved in the deadlock, thus releasing one
of the resources involved in the deadlock?  Then you would log
diagnostic information and let the system continue normally.  If a user
deliberately does something to deadlock the kernel, his process just
gets killed and a denial-of-service attack has been averted.

As I vaguely recall, VAX/VMS used to do soemthing like this if a
deadlock was detected.

Rahul

 Date:  Sun, 28 Feb 99 23:52:57 +1100
 From:  Bruce Evans b...@zeta.org.au
 To:curr...@freebsd.org, pango...@home.com
 Message-Id: 199902281252.xaa24...@godzilla.zeta.org.au
 Subject: Re: lockmgr panic with mmap()

 The attached program sometimes causes a lockmgr panic. I do not think is 
 always
 did. I am running 4.0-CURRENT form Feb 19.
 
 The trace is:
 panic lockmgr: locking against self
 lockmgr
 mv_map_growstack
 grow_stack
 trap_pfault
 trap
 calltrap
 subyte
 syscall
 ...
 
 A command on a running image such as this usually does it, though I do not 
 know what
 conditions are neccessary:
 
 fincore /usr/local/netscape-4.5/communicator-4.5.bin
 
 Here is a simpler example.
 
 ---
 #include sys/param.h
 #include sys/mman.h
 
 #include err.h
 #include stdlib.h
 
 #define   SIZE(32 * 1024 * 1024)
 
 int
 main(void)
 {
   void *p;
   char vec[SIZE / PAGE_SIZE];
 
   p = malloc(SIZE);
   if (mincore(p, SIZE, vec) != 0)
   err(1, mincore);
   return (0);
 }
 ---
 
 mincore() locks the vmspace map, and initialises vec[] a byte at a time
 using subyte().  When vec[] is sufficiently large, it is not all in core
 initially and a page fault occurs in subyte().  The new stack growing
 code locks the vmspace map early and panics.
 
 Bruce
 
 
 To Unsubscribe: send mail to majord...@freebsd.org
 with unsubscribe freebsd-current in the body of the message
 


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread W Gerald Hicks
[fwd to -current]

 Hi Chuck,
 
 I must agree with your concerns about the bleeding-edge nature of
 EGCS.  At Glenayre we've tried several times to move up to EGCS
 for our embedded development efforts, only to beat a hasty retreat
 back to GCC because of code generation and execution bugs in the
 compiler.
 
 Things are improving but I'd be extremely wary of a wholesale shift
 to EGCS just now.
 
 As an interesting side note, Joel Sherrill of the RTEMS project is a
 director of the EGCS project; Even RTEMS patches the EGCS distribution (!)
 
 Since RTEMS is using networking code from FreeBSD, perhaps he might
 be a good contact for those maintaining the FreeBSD compiler?

Cheers,

Jerry Hicks
wghi...@bellsouth.net


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: lockmgr panic with mmap()

1999-02-28 Thread Matthew Dillon
:Please forgive me if this is a silly question.
:
:Since bugs do happen, deadlock can occur in the kernel.
:
:Is it not possible in such cases to simply detect the deadlock, and kill
:one of the user processes involved in the deadlock, thus releasing one
:of the resources involved in the deadlock?  Then you would log
:diagnostic information and let the system continue normally.  If a user
:deliberately does something to deadlock the kernel, his process just
:gets killed and a denial-of-service attack has been averted.
:
:As I vaguely recall, VAX/VMS used to do soemthing like this if a
:deadlock was detected.
:
:Rahul

Well, the lockmgr panic with mmap() is something that ought to be
easily fixable ( by whoever did the stack changes ).

There are also deadlock problems when read()ing or write()ing a file-backed
mmap()'d area.

Most of the deadlocks remaining in the kernel are more complex and often
cannot be detected without significant new work.  For example, there is
no tracking of the PIDs holding shared locks, only exclusive locks.
Deadlocks can occur due to chains of locks across multiple processes
( e.g. 5 or 6 or more ) that loop back in on themselves.

Detecting the loop is the hard part.  This is known as 'deadlock 
detection'.   It's the same sort of deadlock detection commercial
SQL databases use to implement transactions and rollback.

In FreeBSD's case, the issue is somewhat more complex due to things
that are not strictly locks causing deadlocks - such as a low memory
condition causing a process holding an inode lock to block and then the
syncer blocking on the same inode.  The syncer is thus unable to run and
thus unable to sync the dirty buffers clogging memory to disk.  Things
like that.

-Matt



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



mtree stuff?

1999-02-28 Thread Chuck Robey
While doing yet another buildworld to check my libmd changes, I saw that
a couple of odd new components seem to be added to the build, at the
start of the buildworld, and also near the start of the legacy tools
build.  I'm not sure what's happening, but it *looks* like every target
in the whole tree is being scanned, *twice*.  I know that Jordan's been
at mtree, and there have been some other changes ... I don't have more
time right now to give, but something unusual is suddenly going on in
the buildworlds.

+---
Chuck Robey | Interests include any kind of voice or data 
chu...@glue.umd.edu | communications topic, C programming, and Unix.
213 Lakeside Drive Apt T-1  |
Greenbelt, MD 20770 | I run picnic (FreeBSD-current)
(301) 220-2114  | and jaunt (Solaris7).
+---






To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread David O'Brien
 The main holdups have been getting the native egcs build to do something
 more sensible with regards to -aout/-elf, and, if things work out, a bit

Work might go a bit faster if the work that has been done already would
be posted somewhere.  Having such an important issue being responsible on
a single over-worked person is not productive.  ***Like Jordan said, we
get NO new install and package utils until EGCS is in the tree.***

Possibly people don't realize how much the public is interested in
improved install and package tools.  At a recent FreeBSD users's group
meeting in San Francisco, Jordan spoke of the new progress on the new
tools.  I'd guess between his speal and the tons of interest and
questions that came up, that the topic was discussed well over an hour.

At a minium the stuff that has already been done should be added to the
port.

ALSO, don't forget that just getting a FreeBSD'ized EGCS is just the
first step.  We will have to test ``build world'' many times and I'm sure
we will have to change base code to compile as we like with EGCS.  The
more people that are allowed to get involved with this the faster things
will go.

In addition, at schools it is getting harder and harder to convince people
to try FreeBSD when we have a broken C++ compiler in the base system.  In
case some aren't aware, C++ is now part of the standard CS curriculum
these days.


 I suspect libg++ is approaching delete material.  libstdc++ comes
 with egcs, and a hacked up libg++ is floating around that we can
 probably use, but I wonder if it's time to loose it and keep just
 libstdc++.  

It is time to dump libg++.  Once EGCS is in the tree, I'll make a port of
the libg++ meant for post g++ 2.8 compilers.

-- 
-- David(obr...@nuxi.com  -or-  obr...@freebsd.org)


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Warner Losh
In message 19990228131503.a1...@relay.nuxi.com David O'Brien writes:
: ALSO, don't forget that just getting a FreeBSD'ized EGCS is just the
: first step.  We will have to test ``build world'' many times and I'm sure
: we will have to change base code to compile as we like with EGCS.  The
: more people that are allowed to get involved with this the faster things
: will go.

I really want to be involved in this.  I'm quite keen on having a
newer, cross-compile friendlier compiler in the tree.

Point me at something, and I'll test it.

BTW, do we need to update binutils?  Or are they new enough?  I know
that my needs for binutils are covered by the missing bits in the
current version we have in the tree.

Warner


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: lockmgr panic with mmap()

1999-02-28 Thread Richard Seaman, Jr.
On Sun, Feb 28, 1999 at 11:52:57PM +1100, Bruce Evans wrote:

[snip]

 Here is a simpler example.
 
 ---
 #include sys/param.h
 #include sys/mman.h
 
 #include err.h
 #include stdlib.h
 
 #define   SIZE(32 * 1024 * 1024)
 
 int
 main(void)
 {
   void *p;
   char vec[SIZE / PAGE_SIZE];
 
   p = malloc(SIZE);
   if (mincore(p, SIZE, vec) != 0)
   err(1, mincore);
   return (0);
 }
 ---
 
 mincore() locks the vmspace map, and initialises vec[] a byte at a time
 using subyte().  When vec[] is sufficiently large, it is not all in core
 initially and a page fault occurs in subyte().  The new stack growing
 code locks the vmspace map early and panics.

It appears to me the potential for deadlock exists in the old grow code
too, but is less likely.  

I've attached a patch that addresses the issue, though there is a
question if this is the best solution.

With the old grow code, if the map lock is already held, one of the
following will be true
a) the grow code doesn't get executed because the va is not
   in the stack region, which is equivalent to grow returning
   success
b) the grow code returns success because there's no need to
   grow the region because the va is aready in the mapped region.
c) the grow code returns false if the va is within the stack
   region and there's no room left, which normally will result
   in a SIGSEGV
d) the grow code attempts to grow the stack via vm_map_find and
   will then deadlock at the vm_map_lock call

With this patch, if the map lock is already held, by always returning
success, cases a) and b) will be the same as before.  For case c)
the code will attempt to continue to execute, generally calling
vm_fault, which should, I think, generate a SIGSEGV, essentially
the same result as the old code, but via a different path.  Case d)
will now continue executing in a manner equivalent to the new case c).

The question is whether there is a way to do the autogrow function if
the map lock is already held.




-- 
Richard Seaman, Jr.   email: d...@tar.com
5182 N. Maple Lanephone: 414-367-5450
Chenequa WI 53058 fax:   414-367-5850Index: vm_map.c
===
RCS file: /home/ncvs/src/sys/vm/vm_map.c,v
retrieving revision 1.152
diff -c -r1.152 vm_map.c
*** vm_map.c1999/02/24 21:26:25 1.152
--- vm_map.c1999/02/28 20:41:25
***
*** 663,668 
--- 663,674 
int  rv;
int  is_procstack = 0;
  
+ 
+ #define   vm_map_locked(map) lockstatus((map)-lock)
+ 
+   if (vm_map_locked(map))
+   return (KERN_SUCCESS);
+ 
vm_map_lock(map);
  
/* If addr is already in the entry range, no need to grow.*/


Re: gcc

1999-02-28 Thread John Polstra
In article 199902282119.oaa81...@harmony.village.org,
Warner Losh  i...@harmony.village.org wrote:
 
 BTW, do we need to update binutils?  Or are they new enough?  I know
 that my needs for binutils are covered by the missing bits in the
 current version we have in the tree.

I'm pretty sure our existing binutils are fine.  They're the newest
GNU version, and they work OK with the egcs and gcc-2.8.1 ports.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra  Co., Inc.Seattle, Washington USA
  Nobody ever went broke underestimating the taste of the American public.
-- H. L. Mencken


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread The Hermit Hacker
On Sun, 28 Feb 1999, David O'Brien wrote:

 In addition, at schools it is getting harder and harder to convince people
 to try FreeBSD when we have a broken C++ compiler in the base system.  In
 case some aren't aware, C++ is now part of the standard CS curriculum
 these days.

I work as System Administrator at a Canadian University that is *totally*
wired.  All new students get a laptop as part of their tuition, and profs
make heavy use of it.  The Computer Science department's template is a
Win95/Linux mix...and the reason has nothing to do with C++.

Most of the reason revolves around hardware support...the laptops are all
IBM thinkpads, and the Linux kernel is barely able to drive the ethernet
card used, as well as graphics...FreeBSD didn't even stand a chance :(

It should be too easy to replace the compiler after the system is
installed...and shouldn't be seen as a major hindrance...

Marc G. Fournier
Systems Administrator @ hub.org 
primary: scra...@hub.org   secondary: scra...@{freebsd|postgresql}.org 



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread David O'Brien
 It should be too easy to replace the compiler after the system is
 installed...and shouldn't be seen as a major hindrance...

But as Micro$hit knows, being able to check off feature boxes is
important.  Here, the CS dept encourages people that own a PC to install
a Unix at home (we are still 100% Unix based for classes).  When I push
FreeBSD, I get asked if EGCS comes with it.  I say no not by default, but
we have a very easy to add version of it.  They say, why go through the
trouble if Linux already has it by default.  Same for our support
people.  They are the laziest and most non-computer enthusiast group I've
ever seen.  Path of least effort is what wins with them.

-- 
-- David(obr...@nuxi.com  -or-  obr...@freebsd.org)


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Chuck Robey
On Sun, 28 Feb 1999, David O'Brien wrote:

  It should be too easy to replace the compiler after the system is
  installed...and shouldn't be seen as a major hindrance...
 
 But as Micro$hit knows, being able to check off feature boxes is
 important.  Here, the CS dept encourages people that own a PC to install
 a Unix at home (we are still 100% Unix based for classes).  When I push
 FreeBSD, I get asked if EGCS comes with it.  I say no not by default, but
 we have a very easy to add version of it.  They say, why go through the
 trouble if Linux already has it by default.  Same for our support
 people.  They are the laziest and most non-computer enthusiast group I've
 ever seen.  Path of least effort is what wins with them.

Please keep in mind that if, in our haste, we import a compiler that
puts instability into FreeBSD, then we've drunk poison.  The feature
list won't matter, the fact that we're up to date won't matter, the fact
that FreeBSD suddenly, out of the blue, became unstable is the only
thing that anyone will remember.

I'm not against egcs if it can be shown to be stable.  I'm completely
against it if it exposes FreeBSD to bugs outside our control.  That's my
only argument in favor of gcc28, but *please* don't disregard it.  I am
in CS classes too, and David's points are precisely correct, but they
*aren't* the number one concern, even for a student who would *love* to
have the latest compiler.

Maintaining FreeBSD's exemplary reputation is my number one concern
here.  If it means asking certain folks (like me!) to install a port to
get a particular compiler, that's then something we should view
separately (not less, but separately).

If David comes up with a test compiler, I want to install it, and test
it myself for at least 20 buildworld/installworldkernel/cvsup cycles. I
would want at least several others to report their results too.  We need
to move forward *quickly* to either gcc28 or egcs, but please, don't be
willing to sacrifice stability.  I can do that testing with automated
scripts, so it wouldn't need lots of my time, and I would do that
happily.


+---
Chuck Robey | Interests include any kind of voice or data 
chu...@glue.umd.edu | communications topic, C programming, and Unix.
213 Lakeside Drive Apt T-1  |
Greenbelt, MD 20770 | I run picnic (FreeBSD-current)
(301) 220-2114  | and jaunt (Solaris7).
+---






To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: panic: zone: entry not free

1999-02-28 Thread Assar Westerlund
Eivind Eklund eiv...@freebsd.org writes:
   That is, INVARIANTS in kernel incompatible with dynamic loading.
  
  Somehow this strikes me as a Bad Thing...
 
 It _is_ a bad thing.  I've been pondering what to do with the
 intrusive invariant checks - make them dependent on
 INTRUSIVE_INVARIANTS, perhaps?  That would still make some KLDs
 incompatible with INTRUSIVE_INVARIANTS, but that is probably the best
 we can do.

I think that the goal should be to make KLDs work with all kinds of
kernels.  And the only place where this seems to be a problem is with
zalloc and zfree.  So it seems to me that one of the following could
be done to solve it:

a. make zalloc and zfree non-inline
b. call zalloci and zfreei in code that can end up in KLDs
c. call zalloci and zfreei everywhere where it's not performance-critical

/assar


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Jordan K. Hubbard
 The main holdups have been getting the native egcs build to do something
 more sensible with regards to -aout/-elf, and, if things work out, a bit
 better cross-compile support.  (Note, the cross compile stuff doesn't work
 too happily with the existing bmake glue and hacks in the code.)  I think 
 I've got the threaded vs setjump/longjump exception stuff sorted out and 
 runtime switchable based on -thread etc.

I'd personally be happy with an egcs that just did sensible things
with ELF, though I guess a.out is a bonus(?) of sorts.  Still, I just
tweaked the egcs 1.1.1 configure script to replace my system compiler
entirely and then built the world and kernel from it - the resulting
system appears to work, provided that you comment out the compiler
from the build so that it doesn't clobber itself.  I think we really
are probably holding this up a bit too much on the small points rather
than the big ones. :)

 I suspect libg++ is approaching delete material.  libstdc++ comes with
 egcs, and a hacked up libg++ is floating around that we can probably use,
 but I wonder if it's time to loose it and keep just libstdc++.  libg++ on

I agree.  I've done that here as well.

- Jordan


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Jordan K. Hubbard
 Work might go a bit faster if the work that has been done already would
 be posted somewhere.  Having such an important issue being responsible on
 a single over-worked person is not productive.  ***Like Jordan said, we
 get NO new install and package utils until EGCS is in the tree.***

Would you like to sort of be egcs czar for awhile and coordinate this
with the other volunteers?  No slight to Peter intended, who's sort of
been doing that up to now, but he's just too damn busy to be principal
contact for this I think.  Unless we bust soemthing loose here, we're
going to be discussing egcs and a possible upgrade to it at this
time next year.

 At a minium the stuff that has already been done should be added to the
 port.

Can you chase Peter around until he provides at least that much? :)

 It is time to dump libg++.  Once EGCS is in the tree, I'll make a port of
 the libg++ meant for post g++ 2.8 compilers.

What's the exact division between libg++ and libstdc++?  I'm sure
I'm not the only person confused by this one. :)

- Jordan


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Jordan K. Hubbard
 Please keep in mind that if, in our haste, we import a compiler that
 puts instability into FreeBSD, then we've drunk poison.  The feature

A legit concern, but also realize that all of us are talking about
4.0 here - the new compiler would be an issue we'd have up to a full
year on before the product it's in goes mainstream.  If that's not enough
time to work out the compiler issues after switching, I can't imagine
when we WILL have a better time to try and do this then.  Progress
entails some pain, and if we're unwilling to suffer any at all then
progress ceases entirely.

- Jordan


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Kenneth Wayne Culver
 A legit concern, but also realize that all of us are talking about
 4.0 here - the new compiler would be an issue we'd have up to a full
 year on before the product it's in goes mainstream.  If that's not enough
 time to work out the compiler issues after switching, I can't imagine
 when we WILL have a better time to try and do this then.  Progress
 entails some pain, and if we're unwilling to suffer any at all then
 progress ceases entirely.

This is interesting, what makes egcs better than gcc? just a dumb
question. I agree with Jordan though: no pain no gain. :-)

Kenneth Culver



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Chuck Robey
On Sun, 28 Feb 1999, Jordan K. Hubbard wrote:

  Please keep in mind that if, in our haste, we import a compiler that
  puts instability into FreeBSD, then we've drunk poison.  The feature
 
 A legit concern, but also realize that all of us are talking about
 4.0 here - the new compiler would be an issue we'd have up to a full
 year on before the product it's in goes mainstream.  If that's not enough
 time to work out the compiler issues after switching, I can't imagine
 when we WILL have a better time to try and do this then.  Progress
 entails some pain, and if we're unwilling to suffer any at all then
 progress ceases entirely.

I keep on hearing about how we're losing because we don't have the 3
month old latest feature, and I want to show that we're equally
concerned with stability, that's all.  I want forward movement too, but
every time I see something one-sided, like the comments about the CS
courses (and that being in itself enough reason to move forward), I have
to bring this up.   I want us to go to egcs just as much as you do, but
I don't want us to give an obvious show of abandoning our previous
professional approach to things.

Every time I see a post that is one-sidedly aimed towards the latest
untested thing, with not one word about making certain it *works*, I
want to tell folks that going that way, there be dragons.

Yes, let's try egcs.  I want to do buildworlds/installworlds/new kernel
builds here with it for a while.  Do you have the Makefiles you used to
cut it out of your build?  Could I install egcs out of ports, and do
that testing?  I want to do that, if it would contribute.  Lots of it.
I want to show that it's TESTED.  TESTED.  TESTED.


+---
Chuck Robey | Interests include any kind of voice or data 
chu...@glue.umd.edu | communications topic, C programming, and Unix.
213 Lakeside Drive Apt T-1  |
Greenbelt, MD 20770 | I run picnic (FreeBSD-current)
(301) 220-2114  | and jaunt (Solaris7).
+---






To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread David O'Brien
On Sun, Feb 28, 1999 at 05:59:08PM -0500, Kenneth Wayne Culver wrote:
 
 This is interesting, what makes egcs better than gcc? just a dumb
 question. I agree with Jordan though: no pain no gain. :-)

IMHO, maintence.  EGCS is actively being developed.  Gcc 2.8.x might be,
but it is hard to see.  Also Jeff Law of the EGCS steering committee, has
said that FSF is heavily leaning on GNU GCC 2.9 (or 2.8.2) being some
branch along the EGCS tree.
 
-- 
-- David(obr...@nuxi.com  -or-  obr...@freebsd.org)


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Peter Jeremy
Chuck Robey chu...@mat.net wrote:
 Please keep in mind that if, in our haste, we import a compiler that
 puts instability into FreeBSD, then we've drunk poison.

I agree that -STABLE _must_ remain stable.

That said, I believe that we _do_ need to move forward.  I'd like to
see either EGCS or gcc-2.8.1 (and the former seems to be better
supported at present) brought into -current as soon as practical.

Jordan K. Hubbard j...@zippy.cdrom.com wrote:
A legit concern, but also realize that all of us are talking about
4.0 here - the new compiler would be an issue we'd have up to a full
year on before the product it's in goes mainstream.

I'd like to see it merged back into the 3.x tree earlier than this.
The general complaining about compiler related issues (C++ and
FORTRAN-77 being the two most recent issues) will continue until the
compiler makes it into a release.  I think we should be able to easily
validate the compiler in time for the 3.x.y release due around October
(assuming the 4-monthly releases continue) - maybe even the June
release.

Peter


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread The Hermit Hacker
On Sun, 28 Feb 1999, Chuck Robey wrote:

 On Sun, 28 Feb 1999, David O'Brien wrote:
 
   It should be too easy to replace the compiler after the system is
   installed...and shouldn't be seen as a major hindrance...
  
  But as Micro$hit knows, being able to check off feature boxes is
  important.  Here, the CS dept encourages people that own a PC to install
  a Unix at home (we are still 100% Unix based for classes).  When I push
  FreeBSD, I get asked if EGCS comes with it.  I say no not by default, but
  we have a very easy to add version of it.  They say, why go through the
  trouble if Linux already has it by default.  Same for our support
  people.  They are the laziest and most non-computer enthusiast group I've
  ever seen.  Path of least effort is what wins with them.
 
 Please keep in mind that if, in our haste, we import a compiler that
 puts instability into FreeBSD, then we've drunk poison.  The feature
 list won't matter, the fact that we're up to date won't matter, the fact
 that FreeBSD suddenly, out of the blue, became unstable is the only
 thing that anyone will remember.

Last I heard, that was what the -current source tree was for...has that
changed recently?  

Marc G. Fournier
Systems Administrator @ hub.org 
primary: scra...@hub.org   secondary: scra...@{freebsd|postgresql}.org 



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread David O'Brien
 I keep on hearing about how we're losing because we don't have the 3
 month old latest feature

With EGCS the issue isn't having the latest 3 mo. feature, but we have a
totally BROKEN C++ compiler.

The STL with it is broken, and it is so far from the ISO C++ standard,
it really can't be called C++ any longer.

 Every time I see a post that is one-sidedly aimed towards the latest
 untested thing

I'm working on the egcs 1.1.x branch.  I wouldn't go near their HEAD
branch for FreeBSD use.  I distrust that code more than I do Micro$oft's.

 Yes, let's try egcs.  I want to do buildworlds/installworlds/new kernel
 builds here with it for a while.  

What I have won't build kernels yet.  I could hack our system Makefiles
to use different compile options, but I don't like that approach.  So
I'm working on adding our compiler flags and such.

 Could I install egcs out of ports, and do that testing?  I want to do
 that, if it would contribute.  

Last I tried, no.

IMHO, we are a ways off, but we need to at least be working on it.

-- 
-- David(obr...@nuxi.com  -or-  obr...@freebsd.org)


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread The Hermit Hacker
On Sun, 28 Feb 1999, Jordan K. Hubbard wrote:

  Please keep in mind that if, in our haste, we import a compiler that
  puts instability into FreeBSD, then we've drunk poison.  The feature
 
 A legit concern, but also realize that all of us are talking about
 4.0 here - the new compiler would be an issue we'd have up to a full
 year on before the product it's in goes mainstream.  If that's not enough
 time to work out the compiler issues after switching, I can't imagine
 when we WILL have a better time to try and do this then.  Progress
 entails some pain, and if we're unwilling to suffer any at all then
 progress ceases entirely.

My 2cents...waiting a year before it goes mainstream is really
going to hurt things.  There appear to be more and more projects coming
out that are relying on features existent in the C++ in egcs that gcc
can't support.  MICO (corba) is one of them...KDE appears to be more
towards it with some of its applications...

Bringing it into 4.0-CURRENT is great, and debugging it there, but
getting it rolled into the 3.x tree should, IMHO, be considered long
before 4.x gets released...

Marc G. Fournier
Systems Administrator @ hub.org 
primary: scra...@hub.org   secondary: scra...@{freebsd|postgresql}.org 



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread The Hermit Hacker
On Sun, 28 Feb 1999, Kenneth Wayne Culver wrote:

  A legit concern, but also realize that all of us are talking about
  4.0 here - the new compiler would be an issue we'd have up to a full
  year on before the product it's in goes mainstream.  If that's not enough
  time to work out the compiler issues after switching, I can't imagine
  when we WILL have a better time to try and do this then.  Progress
  entails some pain, and if we're unwilling to suffer any at all then
  progress ceases entirely.
 
 This is interesting, what makes egcs better than gcc? just a dumb
 question. I agree with Jordan though: no pain no gain. :-)

For those doing, or using, C++ related projects, the current gcc is
BROKEN...egcs, with its faster development cycle (kinda like ours) tends
to be working harder on C++ spec compliance...

Marc G. Fournier
Systems Administrator @ hub.org 
primary: scra...@hub.org   secondary: scra...@{freebsd|postgresql}.org 



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Mike Smith
  It should be too easy to replace the compiler after the system is
  installed...and shouldn't be seen as a major hindrance...
 
 But as Micro$hit knows, being able to check off feature boxes is
 important.  Here, the CS dept encourages people that own a PC to install
 a Unix at home (we are still 100% Unix based for classes).  When I push
 FreeBSD, I get asked if EGCS comes with it.  I say no not by default, but
 we have a very easy to add version of it. 

It does come by default.  You have to install it, yes, but then you 
have to install the compiler with Linux as well.  Big hairy deal.

 They say, why go through the
 trouble if Linux already has it by default.  Same for our support
 people.  They are the laziest and most non-computer enthusiast group I've
 ever seen.  Path of least effort is what wins with them.

Order the systems with FreeBSD preinstalled from Gateway. 8)

-- 
\\  Sometimes you're ahead,   \\  Mike Smith
\\  sometimes you're behind.  \\  m...@smith.net.au
\\  The race is long, and in the  \\  msm...@freebsd.org
\\  end it's only with yourself.  \\  msm...@cdrom.com




To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Chuck Robey
On Sun, 28 Feb 1999, The Hermit Hacker wrote:

 On Sun, 28 Feb 1999, Chuck Robey wrote:
 
  On Sun, 28 Feb 1999, David O'Brien wrote:
  
It should be too easy to replace the compiler after the system is
installed...and shouldn't be seen as a major hindrance...
   
   But as Micro$hit knows, being able to check off feature boxes is
   important.  Here, the CS dept encourages people that own a PC to install
   a Unix at home (we are still 100% Unix based for classes).  When I push
   FreeBSD, I get asked if EGCS comes with it.  I say no not by default, but
   we have a very easy to add version of it.  They say, why go through the
   trouble if Linux already has it by default.  Same for our support
   people.  They are the laziest and most non-computer enthusiast group I've
   ever seen.  Path of least effort is what wins with them.
  
  Please keep in mind that if, in our haste, we import a compiler that
  puts instability into FreeBSD, then we've drunk poison.  The feature
  list won't matter, the fact that we're up to date won't matter, the fact
  that FreeBSD suddenly, out of the blue, became unstable is the only
  thing that anyone will remember.
 
 Last I heard, that was what the -current source tree was for...has that
 changed recently?  

Go looking in the archives, moving our base compiler has come up about
3-4 times a year on hackers since the 386BSD patchkit days.  The
argument hasn't changed, that stability in our base compiler was worth
far more than destabilizing FreeBSD.  Current is for experimentation
ONLY when it doesn't break the buildworld.  Try that, even for a few
hours, and you already know what will happen.

I'm FOR bringing in egcs, but ONLY if it gets a fair testing, which
isn't done in 24 hours, or by one single person.  This affects everyone,
in as major a way as it's possible to get.  This can easily become out
of control.  Notice how much work and testing went into the aout to elf
move?  Well, this requires the same thing, as far as testing goes.
The very first rule is, the system compiler MUST be stable.  If we can
prove (and I think we can) that egcs can do that, fine.  If we can't
prove it (either because it's not true, or because it's just left to
chance) then we shouldn't move to egcs.

Your argument about CS students needing the better compiler was true,
but totally ignored the fact that getting the CS students their compiler
IS NOT the top priority, especially since ports can do it (did for me).
That's not an argument against it, it's an argument against single-topic
myopia.  First, consider IF egcs can do the job of being the FreeBSD
system compiler (which means building our kernel without any surprises
whatsoever), because that's the number 1 requirement.  If that's proven,
then prove that the userland code and libraries remain similarly
stable.  After that, then your argument begins to take force, but until
that point, it's not germane.


+---
Chuck Robey | Interests include any kind of voice or data 
chu...@glue.umd.edu | communications topic, C programming, and Unix.
213 Lakeside Drive Apt T-1  |
Greenbelt, MD 20770 | I run picnic (FreeBSD-current)
(301) 220-2114  | and jaunt (Solaris7).
+---






To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Daniel C. Sobral
Peter Jeremy wrote:
 
 I'd like to see it merged back into the 3.x tree earlier than this.
 The general complaining about compiler related issues (C++ and
 FORTRAN-77 being the two most recent issues) will continue until the
 compiler makes it into a release.  I think we should be able to easily
 validate the compiler in time for the 3.x.y release due around October
 (assuming the 4-monthly releases continue) - maybe even the June
 release.

We can easily validate the compiler till then assuming when for the
import into the -current tree?

--
Daniel C. Sobral(8-DCS)
d...@newsguy.com
d...@freebsd.org

To make it absolutely clear: you stand on the wrong end of my
blasters, so you better get lost before I start target practice!



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Brian Feldman
How about this, which noone has suggested:
Why don't we, for now, import EGCS and libstdc++, getting those working?
Of course, here's the trick; let's keep /usr/bin/gcc and /usr/bin/cc as 2.7.2.x
like they are now. But for /usr/bin/c++ and /usr/bin/g++, let's have EGCS
overwrite the 2.7.2.x ones. As far as I see, EGCS doesn't gain anything for C,
and only has gains for C++. Why not switch over partially? We can have
2.7.2.1 not build cc1plus, only cc1 and cc1obj, and have EGCS 1.1.1 build only
cc1plus.
With this, we get two advantages over the current system. Not only do
we get a working, actively supported, C++ compiler, but also we get to keep
(for now) the stable, reliable, C compiler we've been depending on for years.
Noone can complain that the compiler is destabilizing the system, as all
system utilities are in C, not C++, and noone can complain that we're behind
the times with C++, since we have the latest C++ compiler and libstdc++. Of
course, in the long run, once stability is proven, switching to entirely EGCS
would make sense.

 Brian Feldman_ __  ___ ___ ___  
 gr...@unixhelp.org   _ __ ___ | _ ) __|   \ 
 http://www.freebsd.org/ _ __ ___  | _ \__ \ |) |
 FreeBSD: The Power to Serve!  _ __ ___  _ |___/___/___/ 



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: panic: zone: entry not free

1999-02-28 Thread Archie Cobbs
Assar Westerlund writes:
 I think that the goal should be to make KLDs work with all kinds of
 kernels.  

I've been thinking about this too...

Certainly, for each kernel config option FOO we could have a symbol
in the kernel that a KLD could examine:

  static const u_char kernlel_option_FOO = 1;

But what to do about KLD's that want to link against kernel symbols
that may or may not exist? For example, some KLD's that present
interfaces would like to know if BPF is in the kernel, and if so
to support it .. but this means linking with bpfattach(), etc..

Would it be possible to permit 'partial' linking of a KLD, so that
the following code would work no matter what kernel was used?

  int
  xyz_attach()
  {
 ...
 if (kernlel_option_BPF  0)
   bpf_attach(..);  /* bpf_attach only gets resolved if it exists
 * in the kernel; otherwise, it remains NULL but
 * that's OK because in that case we don't call it
 */
 ...
  }

Maybe this would require something like this in the KLD..

  MODULE_BREAKABLE_LINKS(xyz) { bpfattach, bpf_mtap };

A fair bit of hackery, but probably worth it...

-Archie

___
Archie Cobbs   *   Whistle Communications, Inc.  *   http://www.whistle.com


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Jordan K. Hubbard
Sounds like an absolute nightmare.  Needless to say, I loath this idea. :)

 How about this, which noone has suggested:
   Why don't we, for now, import EGCS and libstdc++, getting those working
?
 Of course, here's the trick; let's keep /usr/bin/gcc and /usr/bin/cc as 2.7.2
.x
 like they are now. But for /usr/bin/c++ and /usr/bin/g++, let's have EGCS
 overwrite the 2.7.2.x ones. As far as I see, EGCS doesn't gain anything for C
,
 and only has gains for C++. Why not switch over partially? We can have
 2.7.2.1 not build cc1plus, only cc1 and cc1obj, and have EGCS 1.1.1 build onl
y
 cc1plus.
   With this, we get two advantages over the current system. Not only do
 we get a working, actively supported, C++ compiler, but also we get to keep
 (for now) the stable, reliable, C compiler we've been depending on for years.
 Noone can complain that the compiler is destabilizing the system, as all
 system utilities are in C, not C++, and noone can complain that we're behin
d
 the times with C++, since we have the latest C++ compiler and libstdc++. Of
 course, in the long run, once stability is proven, switching to entirely EGCS
 would make sense.
 
  Brian Feldman  _ __  ___ ___ ___  
  gr...@unixhelp.org _ __ ___ | _ ) __|   \ 
http://www.freebsd.org/ _ __ ___  | _ \__ \ |) |
  FreeBSD: The Power to Serve!_ __ ___  _ |___/___/___/ 
 
 
 
 To Unsubscribe: send mail to majord...@freebsd.org
 with unsubscribe freebsd-current in the body of the message



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Peter Jeremy
Brian Feldman gr...@unixhelp.org wrote:
[use cc1-2.7.2.1 and ECGS cc1plus]

 we get to keep
(for now) the stable, reliable, C compiler we've been depending on for years.

With all the well-known idiosyncrasies that we've been working around
for years.

 Of
course, in the long run, once stability is proven, switching to entirely EGCS
would make sense.

There's a catch-22 here:  We can't prove the stability of EGCS until we
start using it.  Even if we don't make EGCS the base compiler, we need
a standard documented mechanism for doing `make world' with EGCS as well
as agreement that bug reports using ECGS will be considered.

Peter


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread The Hermit Hacker
On Sun, 28 Feb 1999, Chuck Robey wrote:

 Your argument about CS students needing the better compiler was true,
 but totally ignored the fact that getting the CS students their compiler
 IS NOT the top priority, especially since ports can do it (did for me).

U, you mis-quoted.  I agree with your above, and my statement had to
do with an inability of FreeBSD to run on the hardware that we have (IBM
thinkpad laptops) then anything software related (other then
kernel/driver)...

Marc G. Fournier
Systems Administrator @ hub.org 
primary: scra...@hub.org   secondary: scra...@{freebsd|postgresql}.org 



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Alex Zepeda
On Sun, 28 Feb 1999, Brian Feldman wrote:

 How about this, which noone has suggested:
   Why don't we, for now, import EGCS and libstdc++, getting those working?
 Of course, here's the trick; let's keep /usr/bin/gcc and /usr/bin/cc as 
 2.7.2.x
 like they are now. But for /usr/bin/c++ and /usr/bin/g++, let's have EGCS
 overwrite the 2.7.2.x ones. As far as I see, EGCS doesn't gain anything for C,
 and only has gains for C++. Why not switch over partially? We can have
 2.7.2.1 not build cc1plus, only cc1 and cc1obj, and have EGCS 1.1.1 build only
 cc1plus.

Perhaps on face value it's an interesting idea.  Debian does something
similar.  But egcs post 1.1 (or is it 1.1.1) use binary incompatable
exception handling.. as in it's not compatable with gcc 2.8.x.  But then
you also get to keep two versions of gcc in the CVS tree.  Plus egcs also
supports more optimizations than our gcc does.

Why not rip the compiler out completely and let the user drop in their
favorite compiler (egcs, tcc, etc, etc)? ;-)

- alex



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



make world broken for a day. some NFS stuff as well.

1999-02-28 Thread Alfred Perlstein

Sorry if this is the result of work in progress, but i've been unable
to make world since saturday night.

It happens during the build of libskey.

--

cc -fpic -DPIC -pipe -DPERMIT_CONSOLE -D_SKEY_INTERNAL -I/usr/src/lib/libskey -W
 -Wall -Werror -I/usr/obj/usr/src/tmp/usr/include -c /usr/src/lib/libskey/skey_g
etpass.c -o skey_getpass.So
cc1: warnings being treated as errors
cc1: warnings being treated as errors
cc1: warnings being treated as errors
/usr/obj/usr/src/tmp/usr/include/stdio.h:354: warning: `__sputc' defined but not
 used
/usr/obj/usr/src/tmp/usr/include/stdio.h:354: warning: `__sputc' defined but not
 used
/usr/obj/usr/src/tmp/usr/include/stdio.h:354: warning: `__sputc' defined but not
 used
*** Error code 1
**

.

I'm also noticing that 4.0-current defualt NFS mounts are hanging
the client nfsiod gets wedged in sbwait state. 

I'm able to reproduce it locally by building and installing ssh2 from
ports, it hangs during the install phase.  The rest of the machine is
ok, but i cannot umount -f the NFS mount from the client.

I'm going to see if i can do anything to track this down, my goal is
that umount -f on NFS should never, EVER not work.

It seems that while it's wegded it sends data back and forth (tcpdump)
i'm going to look into this, if you have any tests or programs i can run
to track it down please tell me.

.

Lastly i'm interested in writing a man page for kernel.conf i know
how to submit diffs, but what about totally new files?  just send-pr
with it attached? or a url?

thanks,
-Alfred



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Brian Feldman
On Mon, 1 Mar 1999, Peter Jeremy wrote:

 Brian Feldman gr...@unixhelp.org wrote:
 [use cc1-2.7.2.1 and ECGS cc1plus]
 
  we get to keep
 (for now) the stable, reliable, C compiler we've been depending on for years.
 
 With all the well-known idiosyncrasies that we've been working around
 for years.
 
  Of
 course, in the long run, once stability is proven, switching to entirely EGCS
 would make sense.
 
 There's a catch-22 here:  We can't prove the stability of EGCS until we
 start using it.  Even if we don't make EGCS the base compiler, we need
 a standard documented mechanism for doing `make world' with EGCS as well
 as agreement that bug reports using ECGS will be considered.

All gcc/cc do is act as a front-end to cc1/cc1obj/cc1plus. Hence, a second cc
for egcs could be used, or maybe using a cc -egcs flag, etc.

 
 Peter
 

 Brian Feldman_ __  ___ ___ ___  
 gr...@unixhelp.org   _ __ ___ | _ ) __|   \ 
 http://www.freebsd.org/ _ __ ___  | _ \__ \ |) |
 FreeBSD: The Power to Serve!  _ __ ___  _ |___/___/___/ 



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Tugrul


On Mon, 1 Mar 1999, Peter Jeremy wrote:

 There's a catch-22 here:  We can't prove the stability of EGCS until we
 start using it.  Even if we don't make EGCS the base compiler, we need
 a standard documented mechanism for doing `make world' with EGCS as well
 as agreement that bug reports using ECGS will be considered.
 

I'd personally love an option for make world to use egcs installed
from the port tree. And perhaps a new mailing list just for throwing
random egcs complaints at. Right now I'm manually building the source
tree with egcs to see how I fair. Any failures I get from building thus
far are replicable with the built in gcc, so egcs doesn't seem to choke on
the code all too much.
The kernel code is a slightly different matter. I get the
following errors:

[20:10]galat...@callisto:/usr/src/sys/compile/CALLISTO# make CC=egcc -k
egcc -c -O3 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -ansi
-nostdinc -I- -I. -I../.. -I../../../include  -DKERNEL -DVM_STACK -include
opt_global.h -elf  ../../i386/i386/identcpu.c
../../i386/i386/identcpu.c: In function `printcpuinfo':
../../i386/i386/identcpu.c:558: warning: unknown conversion type character
`b' in format
../../i386/i386/identcpu.c:558: warning: too many arguments for format
../../i386/i386/identcpu.c: In function `print_AMD_info':
../../i386/i386/identcpu.c:902: internal error--insn does not satisfy its
constraints:
(insn:HI 278 454 279 (set (reg:SI 2 %ecx)
(subreg:SI (lshiftrt:DI (reg:DI 1 %edx)
(const_int 22)) 0)) 250 {lshrdi3_const_int_subreg} (nil)
(expr_list:REG_DEAD (reg:SI 1 %edx)
(nil)))
toplev.c:1431: Internal compiler error in function fatal_insn
*** Error code 1 (continuing)
egcc -c -O3 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -ansi
-nostdinc -I- -I. -I../.. -I../../../include  -DKERNEL -DVM_STACK -include
opt_global.h -elf  ../../i386/i386/pmap.c
../../i386/i386/pmap.c: In function `pmap_setdevram':
../../i386/i386/pmap.c:555: internal error--insn does not satisfy its
constraints:
(insn:HI 107 330 109 (set (reg:SI 1 %edx)
(subreg:SI (lshiftrt:DI (reg:DI 0 %eax)
(const_int 12)) 0)) 250 {lshrdi3_const_int_subreg} (nil)
(expr_list:REG_DEAD (reg:SI 0 %eax)
(nil)))
toplev.c:1431: Internal compiler error in function fatal_insn
*** Error code 1 (continuing)
`kernel' not remade because of errors.
[20:10]galat...@callisto:/usr/src/sys/compile/CALLISTO# 

Fun fun fun :-)
I built those two files with gcc and rebooted with the output.
Seemed fine.

Tugrul Galatali




To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Peter Jeremy
Tugrul tug...@ianai.blacksun.org wrote:
 Right now I'm manually building the source
tree with egcs to see how I fair.

I tried this with 2.x and gcc-2.8.1, but was never successful - I
never managed to stop it building the base compiler and not complain
that it hadn't built the base compiler.  I didn't spend much effort
on it.

   The kernel code is a slightly different matter. I get the
following errors:

FWIW, I've had very few problems building 2.x kernels using gcc-2.8.1.
(I did find some problems and have previously described fixes or work-
arounds for them all).  I haven't yet built an ELF gcc or EGCS, so I'm
not sure whether there are problems with -current.  If the compiler
is reporting insn does not satisfy its constraints, then it's probably
a compiler bug.

Peter


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: SiS 5591

1999-02-28 Thread Greg Lehey
On Sunday, 28 February 1999 at  1:51:45 -0500, Tugrul wrote:

   Seems to work alright here. dmesg and dd tests follow.

 [before]
 mercury# dd if=/dev/zero of=/tmp/zero bs=1024k count=32
 32+0 records in
 32+0 records out
 33554432 bytes transferred in 6.013635 secs (5579725 bytes/sec)
 mercury#

 [after]
 mercury# dd if=/dev/zero of=/tmp/zero bs=1024k count=32
 32+0 records in
 32+0 records out
 33554432 bytes transferred in 5.892770 secs (5634706 bytes/sec)
 mercury#

   Not much gain with this drive :/

You shouldn't use files to this kind of test.  The buffer cache will
falsify the results, especially on relatively small transfers.  Try a
dd to (or from :-) the raw device.

The other thing is, of course, that you can't transfer faster than the
disk will allow.  If you can do that in PIO mode, you won't get any
speed improvement with DMA.  What you *will* get is a significant drop
in CPU load.

 Copyright (c) 1992-1999 FreeBSD Inc.
 Copyright (c) 1982, 1986, 1989, 1991, 1993
   The Regents of the University of California. All rights reserved.
 FreeBSD 3.1-STABLE #0: Sun Feb 28 01:32:47 EST 1999
 galat...@mercury.novastar.com:/usr/src/sys/compile/MERCURY
 Timecounter i8254  frequency 1193225 Hz
 CPU: Pentium/P55C (166.45-MHz 586-class CPU)
   Origin = GenuineIntel  Id = 0x543  Stepping=3
   Features=0x8001bfFPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX

Could you send me the output of a verbose boot, please?

Greg
--
See complete headers for address, home page and phone numbers
finger g...@lemis.com for PGP public key


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: mount -o union broken recently?

1999-02-28 Thread Luigi Rizzo
 i just experienced the above today while trying diskless, and while
 ls only seems to return the entries for the topmost directory, files
 are accessible if you know the name. no idea if this is of any help.
 
 This is exactly the right pointer, thanks! The problem appears to be

great -- will try this later today! so... should i bug someone to
have this committed back to the tree (or ask permission to do it
myself) ?

cheers
luigi


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



RE: gcc

1999-02-28 Thread alexandr
In Reply to Your Message of Sun, 28 Feb 1999 20: 38:49 -0400
Date: Sun, 28 Feb 1999 22:08:14 -0500
From: Jerry Alexandratos alexa...@mail.eecis.udel.edu
Message-ID:  199902282208.aa04...@mail.eecis.udel.edu

The Hermit Hacker scra...@hub.org says:
: On Sun, 28 Feb 1999, Chuck Robey wrote:
: 
:  Your argument about CS students needing the better compiler was true,
:  but totally ignored the fact that getting the CS students their compiler
:  IS NOT the top priority, especially since ports can do it (did for me).
: 
: U, you mis-quoted.  I agree with your above, and my statement had to
: do with an inability of FreeBSD to run on the hardware that we have (IBM
: thinkpad laptops) then anything software related (other then
: kernel/driver)...

I think I take offense to this statement.  I've been running FreeBSD on
various models of StinkPads for the past two+ years.  The combo works
(mostly) like a charm too.

   --Jerry

8) Jerry Alexandratos  % - %   Nothing inhabits my(8 
8) alexa...@louie.udel.edu % - %thoughts, and oblivion (8
8) darks...@strauss.udel.edu   % - %drives my desires.(8


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Tugrul


On Sun, 28 Feb 1999, Tugrul wrote:
 
 [20:10]galat...@callisto:/usr/src/sys/compile/CALLISTO# make CC=egcc -k
[...errors...]
 [20:10]galat...@callisto:/usr/src/sys/compile/CALLISTO# 
 

Never mind, those errors are not faults in EGCS it seems. PGCC
introduces those problems. I built my kernel with plain old egcs 1.1.1 and
its just fine.
When I get home tomorrow I should have a completely EGCS compiled
system. So far so good.

Tugrul Galatali



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



RE: gcc

1999-02-28 Thread The Hermit Hacker
On Sun, 28 Feb 1999 alexa...@mail.eecis.udel.edu wrote:

 In Reply to Your Message of Sun, 28 Feb 1999 20: 38:49 -0400
 Date: Sun, 28 Feb 1999 22:08:14 -0500
 From: Jerry Alexandratos alexa...@mail.eecis.udel.edu
 Message-ID:  199902282208.aa04...@mail.eecis.udel.edu
 
 The Hermit Hacker scra...@hub.org says:
 : On Sun, 28 Feb 1999, Chuck Robey wrote:
 : 
 :  Your argument about CS students needing the better compiler was true,
 :  but totally ignored the fact that getting the CS students their compiler
 :  IS NOT the top priority, especially since ports can do it (did for me).
 : 
 : U, you mis-quoted.  I agree with your above, and my statement had to
 : do with an inability of FreeBSD to run on the hardware that we have (IBM
 : thinkpad laptops) then anything software related (other then
 : kernel/driver)...
 
 I think I take offense to this statement.  I've been running FreeBSD on
 various models of StinkPads for the past two+ years.  The combo works
 (mostly) like a charm too.

You are most welcome to take offense to that statement, especially
considering you obviously have no idea what you are taking offesnse at...

Yes, FreeBSD installs on these things, but the network card in them are
not supported by FreeBSD, which defeats the purpose of a Networked
Campus...

Marc G. Fournier
Systems Administrator @ hub.org 
primary: scra...@hub.org   secondary: scra...@{freebsd|postgresql}.org 



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



RE: gcc

1999-02-28 Thread Alfred Perlstein


On Sun, 28 Feb 1999, The Hermit Hacker wrote:

  The Hermit Hacker scra...@hub.org says:
  : On Sun, 28 Feb 1999, Chuck Robey wrote:
  : 
  :  Your argument about CS students needing the better compiler was true,
  :  but totally ignored the fact that getting the CS students their compiler
  :  IS NOT the top priority, especially since ports can do it (did for me).
  : 
  : U, you mis-quoted.  I agree with your above, and my statement had to
  : do with an inability of FreeBSD to run on the hardware that we have (IBM
  : thinkpad laptops) then anything software related (other then
  : kernel/driver)...
  
  I think I take offense to this statement.  I've been running FreeBSD on
  various models of StinkPads for the past two+ years.  The combo works
  (mostly) like a charm too.
 
 You are most welcome to take offense to that statement, especially
 considering you obviously have no idea what you are taking offesnse at...
 
 Yes, FreeBSD installs on these things, but the network card in them are
 not supported by FreeBSD, which defeats the purpose of a Networked
 Campus...

What are the most commonly found chipsets in these thinkpads?

-Alfred



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread David O'Brien
  It is time to dump libg++.  Once EGCS is in the tree, I'll make a port of
  the libg++ meant for post g++ 2.8 compilers.
 
 What's the exact division between libg++ and libstdc++?  I'm sure
 I'm not the only person confused by this one. :)

libg++ was a set of standard classes for strings, lists, etc. created
by FSF to help others from inventing the wheel.  Stroustrup has commented
that one of his bigger mistakes was releasing C++ on the world w/o a
standard set of classes.  (where as Eiffel, et. al. did)

The ISO C++ standards committee realized this and decided to come up with
a standard set of basic C++ data structures.  ATT's iostream and HP
Labs' STL (standard templet library) ended up becoming part of this
standard set.

Thus libg++ classes are a purely FSF class library that shouldn't be used
for any new code development.  The current libg++ only contains what was
left after the ISO stdlibc++ stuff was gutted.

-- 
-- David(obr...@nuxi.com  -or-  obr...@freebsd.org)


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: panic: zone: entry not free

1999-02-28 Thread Bruce Evans
I think that the goal should be to make KLDs work with all kinds of
kernels.  And the only place where this seems to be a problem is with
zalloc and zfree.  So it seems to me that one of the following could
be done to solve it:

a. make zalloc and zfree non-inline
b. call zalloci and zfreei in code that can end up in KLDs
c. call zalloci and zfreei everywhere where it's not performance-critical

There are many potential problems with SMP kernels.  Many of the inline
functions in machine/cpufunc.h depend on SMP.  We've already pessimised
the usual (non-SMP) case by uninlining a few too many spl-related
functions.

Bruce


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread Jordan K. Hubbard
 Thus libg++ classes are a purely FSF class library that shouldn't be used
 for any new code development.  The current libg++ only contains what was
 left after the ISO stdlibc++ stuff was gutted.

Thanks for the explanation - that makes things much clearer.  So, I
guess we shoot for libstdc++ as the minimum requirements and perhaps
provide libg++ as well (not necessarily initially) just for the
convenience of those porting code from environments where the GNU
library functions were used.

I've just built the world and kernel from egcs-2.91.62 and it
seems to work pretty well.  I haven't really stress the system
all that much yet, but it hasn't misbehaved in any way yet.

- Jrodan



To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread David O'Brien
 guess we shoot for libstdc++ as the minimum requirements and perhaps
 provide libg++ as well (not necessarily initially) just for the

Just make libg++ a port. :-)

-- 
-- David(obr...@nuxi.com  -or-  obr...@freebsd.org)


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: panic: zone: entry not free

1999-02-28 Thread Assar Westerlund
Bruce Evans b...@zeta.org.au writes:
 I think that the goal should be to make KLDs work with all kinds of
 kernels.  And the only place where this seems to be a problem is with
 zalloc and zfree.  So it seems to me that one of the following could
 be done to solve it:
 
 a. make zalloc and zfree non-inline
 b. call zalloci and zfreei in code that can end up in KLDs
 c. call zalloci and zfreei everywhere where it's not performance-critical
 
 There are many potential problems with SMP kernels.  Many of the inline
 functions in machine/cpufunc.h depend on SMP.  We've already pessimised
 the usual (non-SMP) case by uninlining a few too many spl-related
 functions.

So you think it would be bad to have zalloc and zfree as non-inline
functions?  That would mean that KLDs would be different depending on
the options used to build the kernel and that KLDs would need some way
of figuring out the these options.  How should that be done?  By
installing opt_global.h after building the kernel?

/assar


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message



Re: gcc

1999-02-28 Thread John Birrell
Jordan K. Hubbard wrote:
 I've just built the world and kernel from egcs-2.91.62 and it
 seems to work pretty well.  I haven't really stress the system
 all that much yet, but it hasn't misbehaved in any way yet.
 
 - Jrodan

Since 4.0 was only recently branched, now seems like a good time
to start using egcs as the system compiler, even if things are a bit
bumpy for a while. Many people who started using -current during the
2.X vs 3.0 time can use 3.X-stable without losing much, if anything.

-- 
John Birrell - j...@cimlogic.com.au; j...@freebsd.org 
http://www.cimlogic.com.au/
CIMlogic Pty Ltd, GPO Box 117A, Melbourne Vic 3001, Australia +61 418 353 137


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message