Re: adsl/pppoe no longer connecting on 5.1

From: Kris Kennaway <kris_at_obsecurity.org>
Date: Wed, 11 Jun 2003 23:05:57 -0700
On Thu, Jun 12, 2003 at 07:18:12AM +0200, Wiktor Niesiobedzki wrote:
> On Wed, Jun 11, 2003 at 09:50:22PM -0700, Kris Kennaway wrote:
> > On Wed, Jun 11, 2003 at 10:48:32PM -0600, Andrew Lankford wrote:
> > > >Can you try backing out bsd.sys.mk to r1.26 and rebuild your world and
> > > >kernel?  Later versions of this file are causing strange problems >with
> > > >package builds.
> > > 
> > > I was a little lazy and just backed out bsd.sys.mk to 1.26 as you
> > > suggested, rebuilt /usr/lib/ , /usr/include/, and ppp.  My kernel is the
> > > same as last time.  As a result, ppp's now up and running again.
> > 
> > Thanks, that's actually more useful because it isolates the problem.
> > It's probably something in ppp that is misbehaving with CSTD=c99.
> > 
> alloca(3) function is misbehaving in ppp (namely ether.c). Is this a compiler
> bug?

It looks like gcc's inline alloca implementation allocates chunks in
larger chunks than the alloca.S implementation does.  This (untested)
patch should make the alloca.S behaviour match that of gcc.

Kris

Index: i386/gen/alloca.S
===================================================================
RCS file: /usr/home/ncvs/src/lib/libc/i386/gen/alloca.S,v
retrieving revision 1.10
diff -u -r1.10 alloca.S
--- i386/gen/alloca.S	23 Mar 2002 02:44:18 -0000	1.10
+++ i386/gen/alloca.S	12 Jun 2003 06:00:52 -0000
_at__at_ -47,8 +47,8 _at__at_
 	popl	%edx		/*  pop return addr */
 	popl	%eax		/*  pop amount to allocate */
 	movl	%esp,%ecx
-	addl	$3,%eax		/*  round up to next word */
-	andl	$0xfffffffc,%eax
+	addl	$15,%eax		/*  round up to next word */
+	andl	$0xfffffff0,%eax
 	subl	%eax,%esp
 	movl	%esp,%eax	/* base of newly allocated space */
 	pushl	8(%ecx)		/* copy possible saved registers */

Received on Wed Jun 11 2003 - 21:05:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:11 UTC