Subject: Re: build problems
To: None <simonb@telstra.com.au>
From: maximum entropy <entropy@zippy.bernstein.com>
List: port-pmax
Date: 06/28/1997 21:10:09
>From: Simon Burge <simonb@telstra.com.au>
>
>Well, I've tracked the problem.  Seems to be the following patch for
>setjmp and friends:
>
>> Modified Files:
>> 	_setjmp.S 
>> Log Message:
>> Add .set noreorder/.set reorder around .cpload
>
>If I remove the .set noreorder/.set reorder around .cpload, everything
>works fine.  I'm not sure what else may have broken with this - I'm in
>the process of doing another make build now...
>
>Jonathan, what's the reasoning behind the change?  Was it to fix another
>problem?  I'm still at a loss as to why gawk 3.0.3 works ok though.
>The code around the setjmp in eval.c didn't change between 2.16.5 and
>3.0.3...  Another PR?

I'm guessing that the motivation for this change was incorrect code
for _setjmp and _longjmp when profiling is turned on.

Have a look at the definition of LEAF(), and MCOUNT, in
/sys/arch/mips/include/asm.h.

It looks to me like the right thing for _setjmp.S is do a .set
noreorder at the top and right after both LEAF()'s, and never do a
.set reorder for any reason.

I'm not a MIPS assembly guru by any stretch of the imagination, so
take this all with several grains of salt...

--
entropy -- it's not just a good idea, it's the second law.

This message may refer to a product containing software developed by
Christopher G. Demetriou for the NetBSD Project.