mounting root

2002-08-02 Thread Pieter Danhieux

Why does the kernel still tries to mount root from fd0c first when i set
options ROOTDEVNAME=\cd9660:acd0\ ? And when fd0c fails, THEN he
mounts it from acd0.

thx for any help


-- 
www.bsdaemon.be - securax.org - docs.bsdaemon.be
keyserver: pgpkeys.mit.edu  PGP keyID: DA07EAE9




signature.asc
Description: This is a digitally signed message part


-fomit-frame-pointer for the world build

2002-08-02 Thread Dmitry Morozovsky

Hello there colleagues,

I'd tried to search thru the web, but did not succeed enough.

What are the drawbacks of building FreeBSD with -fomit-frame-pointer? As
far as I can see, it saves both space (which is not as worth as disk space
got cheaper and cheaper) and execution time (which is, AFAICC, more
important).

I'd already done some tests, but not really deep.

Would you please clarify this issue abit, or point me to any articles
describing exact -fomit-frame-pointer behaviour?

Thank you in advance.

Sincerely,
D.Marck   [DM5020, DM268-RIPE, DM3-RIPN]

*** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- [EMAIL PROTECTED] ***



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-hackers in the body of the message



Re: -fomit-frame-pointer for the world build

2002-08-02 Thread Terry Lambert

Dmitry Morozovsky wrote:
 What are the drawbacks of building FreeBSD with -fomit-frame-pointer? As
 far as I can see, it saves both space (which is not as worth as disk space
 got cheaper and cheaper) and execution time (which is, AFAICC, more
 important).
 
 I'd already done some tests, but not really deep.
 
 Would you please clarify this issue abit, or point me to any articles
 describing exact -fomit-frame-pointer behaviour?

The frame pointer is used for debugging, specifically for the
stack traceback function to know arguments.  Removing it means
losing some debugging functionality.  Next time try info gcc:

`-fomit-frame-pointer'
 Don't keep the frame pointer in a register for functions that
 don't need one.  This avoids the instructions to save, set up and
 restore frame pointers; it also makes an extra register available
 in many functions.  *It also makes debugging impossible on some
 machines.*

 On some machines, such as the Vax, this flag has no effect, because
 the standard calling sequence automatically handles the frame
 pointer and nothing is saved by pretending it doesn't exist.  The
 machine-description macro `FRAME_POINTER_REQUIRED' controls
 whether a target machine supports this flag.  *Note Registers::.

-- Terry

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-hackers in the body of the message



Re: -fomit-frame-pointer for the world build

2002-08-02 Thread Dmitry Morozovsky

On Fri, 2 Aug 2002, Terry Lambert wrote:

TL  What are the drawbacks of building FreeBSD with -fomit-frame-pointer? As
TL  far as I can see, it saves both space (which is not as worth as disk space
TL  got cheaper and cheaper) and execution time (which is, AFAICC, more
TL  important).
TL 
TL  I'd already done some tests, but not really deep.
TL 
TL  Would you please clarify this issue abit, or point me to any articles
TL  describing exact -fomit-frame-pointer behaviour?
TL
TL The frame pointer is used for debugging, specifically for the
TL stack traceback function to know arguments.  Removing it means
TL losing some debugging functionality.  Next time try info gcc:
TL
TL `-fomit-frame-pointer'
TL  Don't keep the frame pointer in a register for functions that
TL  don't need one.  This avoids the instructions to save, set up and
TL  restore frame pointers; it also makes an extra register available
TL  in many functions.  *It also makes debugging impossible on some
TL  machines.*
TL
TL  On some machines, such as the Vax, this flag has no effect, because
TL  the standard calling sequence automatically handles the frame
TL  pointer and nothing is saved by pretending it doesn't exist.  The
TL  machine-description macro `FRAME_POINTER_REQUIRED' controls
TL  whether a target machine supports this flag.  *Note Registers::.

Yes, Terry, I'd read this note. However, it does not clarify for me which
exactly functionality is lost with omitting this.

I tried to build some binaries with -fomit..., then tried to debug it a
bit, and gdb shows me both backtrace stack and arguments, so I was in
doubt a bit -- so here is my question ;-)

Sincerely,
D.Marck   [DM5020, DM268-RIPE, DM3-RIPN]

*** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- [EMAIL PROTECTED] ***



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-hackers in the body of the message



Re: -fomit-frame-pointer for the world build

2002-08-02 Thread Terry Lambert

Dmitry Morozovsky wrote:
[ ... -fomit-frame-pointer ... ]
 Yes, Terry, I'd read this note. However, it does not clarify for me which
 exactly functionality is lost with omitting this.
 
 I tried to build some binaries with -fomit..., then tried to debug it a
 bit, and gdb shows me both backtrace stack and arguments, so I was in
 doubt a bit -- so here is my question ;-)

Try it again on a SPARC or other RISC machine that pushes
register window frames on the stack after a certain function
call depth is achieved.

I was pretty sure at one time that the PPC platform had a
variant of this problem, as well.

If you want a definative answer, then the people to ask are
the GCC implementors, who put the option into the compiler
for a reason, and added the descriptive text to the .info
file in the first place.

Realize that this is a GCC issue, not a FreeBSD issue.

-- Terry

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-hackers in the body of the message



Pet Health Plan!

2002-08-02 Thread www.americanpetplan.com
Title: Email







  
  
This offer is brought to 
  you by the American Pet Plan.com. If you no longer wish to receive 
  offers in the future, please unsubscribe below. If you cannot view 
  this email, please click here: www.americanpetplan.com 

  

  
  

  1992 Celebrating 10 years of Excellence! 
  2002
  

  The American Pet Plan can 
  save you hundreds or even thousands of dollars per yearon all 
  your veterinary health care costs!All at very affordable rates!! 
  
  

  Veterinarian 
  Recommended!Benefits 
  Include: 
  
  
  


  $5.00 Doctor Visits!

  $10.00 Comprehensive Medical Exams!

  Lowest Cost In-Office 
  Vaccinations!

  Benefits on All other Veterinary Care  
  Rx's!

  Benefits on Grooming  
  Boarding!

  Benefits on Pet Sitting  Dog Training!

  Immediate Benefits on Pre-existing 
Conditions!

  All Animals Accepted!

  No Age Limits!

  Extremely Affordable!

  And So Much 
  More!
  VISIT US NOW 
  AT WWW.AMERICANPETPLAN.COM 
  !
  

  

  

  This message is never sent unsolicited. 
  You are receiving this message as a member of the American Pet Plan.com or 
  one of our advertising affiliates. If you do not want to receive 
  special offers in the future, please click here: [EMAIL PROTECTED] 
  and type in UNSUBSCRIBE in the subject line. You will be immediately 
  removed.
index_header.jpg

Re: -fomit-frame-pointer for the world build

2002-08-02 Thread Bakul Shah

 I tried to build some binaries with -fomit..., then tried to debug it a
 bit, and gdb shows me both backtrace stack and arguments, so I was in
 doubt a bit -- so here is my question ;-)

I can answer that.  Consider the following two functions:

f(int n)
{
int x; int y;
... // no calls to other functions, no nested
// declaration of variables
}

g(int n)
{
int x;
int array[n];   // allowed in gcc
int y;
... // no calls to other functions, no nested
// declaration of variables
}

First assume stack grows toward higher addresses.  For the
other direction just swap - and + in computing local
var addresses.

Note that when using a frame ptr (also called a dynamic
link in compiler lingo), one generally needs to something
like this:

on entry:
push frame ptr
frame ptr = stack ptr
stack ptr += framesize

just before returning:
stack ptr -= framesize
frame ptr = pop
return

Its caller then removes arguments on the stack.

Now notice that the framesize of f() is a constant!  To
address a local variable(or any args), one can either use
frame ptr + offset1,
where offset1 = its distance from the frame ptr,
note that for arg n the distance is -ve.
or use
stack ptr - offset2,
where offset2 = its distance from the stack ptr.

Given that the framesize is constant, we can always compute
where the frame starts from the stack ptr and hence we don't
need the frame ptr.  Debugging should also work if the
framesize constant is made known to the debugger -- usually
by storing it just before the generated code for the
function.  Consequently you don't need to save and restore
the caller's frame ptr -- hence the time savings.

But if the framesize is not a constant (such as when a
variable sized array is declared as in g()), things get a bit
complicated.  If we have a frame ptr as well as a stack ptr,
you can address x as well as y with a constant offset.  If
you remove the frame pointer, you need to use the value of n
in computing the offset of x.  Further, the debugger may find
it very difficult to locate the framesize (but it can be
done) to unravel the stack.  So you may or may not see any
time savings.

Note that there are tricks to making the framesize constant
even when there are variables declared in nested blocks.
This is done by hoisting the vars to the function level.

My view is that -fomit-frame-pointer is almost always worth
it provided gdb is smart enough to locate all the frames.

If this is not clear enough, try drawing a picture of how
the frames are popped and pushed on a stack as well as stare
the generated code until you 'get it'!

-- bakul

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-hackers in the body of the message



very minor vm_map.c typo ?

2002-08-02 Thread Dominic Marks

Hello,

In vm_map.c, in the vm_map_insert(...) function there is the following 
piece of code which checks if the addresses supplied to the function are 
valid:

**
if ((start  map-min_offset) || (end  map-max_offset) ||
(start = end))
return (KERN_INVALID_ADDRESS);
**

Specifically, I am interested in the final comparison. Is it possible 
that start == end could ever be correct? Do zero sized entries ever get 
inserted? (I don't see why you would ever wish to do this, please 
explain it to me if there is a reason).

Normally I'd submit a PR about this but since its not an area of the 
code I am very familiar with I thought I'd ask. I would also supply a 
patch but for a one character change it seems pretty silly.

Thanks,
--
Dominic


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-hackers in the body of the message



Re: very minor vm_map.c typo ?

2002-08-02 Thread Peter Wemm

Dominic Marks wrote:
 Hello,
 
 In vm_map.c, in the vm_map_insert(...) function there is the following 
 piece of code which checks if the addresses supplied to the function are 
 valid:
 
 **
 if ((start  map-min_offset) || (end  map-max_offset) ||
   (start = end))
   return (KERN_INVALID_ADDRESS);
 **
 
 Specifically, I am interested in the final comparison. Is it possible 
 that start == end could ever be correct? Do zero sized entries ever get 
 inserted? (I don't see why you would ever wish to do this, please 
 explain it to me if there is a reason).

That would most likely be a case of defensive programming, especially in
case of a sign wraparound problem or the like.  No, inserting a zero-length
map entry isn't valid and the defensive case comes for free.

Cheers,
-Peter
--
Peter Wemm - [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
All of this is for nothing if we don't go to the stars - JMS/B5


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-hackers in the body of the message