Date: Mon, 23 Dec 2002 20:53:41 -0800 From: "David O'Brien" <obrien@FreeBSD.ORG> To: Bruce Evans <bde@zeta.org.au> Cc: Juli Mallett <jmallett@FreeBSD.ORG>, current@FreeBSD.ORG Subject: Re: WEIRD! div() broken on -CURRENT? Message-ID: <20021224045341.GB17618@dragon.nuxi.com> In-Reply-To: <20021222103405.A7492-100000@gamplex.bde.org> References: <20021221162001.A17127@dilbert.robbins.dropbear.id.au> <20021222103405.A7492-100000@gamplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Dec 22, 2002 at 10:40:33AM +1100, Bruce Evans wrote: > > that the pcc struct return convention had something to do with it. > > Did we really mean to change this? It is a relatively recent change. From > cvs history: > > % RCS file: /home/ncvs/src/contrib/gcc/config/freebsd.h,v > % Working file: freebsd.h > % head: 1.37 > % ... > % ---------------------------- > % revision 1.37 > % date: 2002/04/30 17:22:42; author: obrien; state: Exp; lines: +34 -460 > % MI bits for Gcc 3.1. > % ---------------------------- > > This contains mounds changes, one of which breaks 5-10 (?) years of binary > compatibility within gcc-compiled objects: Actually only a 4 years -- the a.out->ELF cut over broke the "5-10 years of binary compatibility". As mentioned at http://gcc.gnu.org/ml/gcc-patches/2002-01/msg01783.html we really made a mistake when we did the a.out->ELF cut over thus resulting in us breaking the i386 ELF ABI. I have wondered in the past how this affects is with sharing XFree86 binary modules with Linux. That said, the ABI change was not intentional. It was a GCC bug. > % RCS file: /home/ncvs/src/contrib/gcc/config/freebsd.h,v ... > % -#undef DEFAULT_PCC_STRUCT_RETURN > % -#define DEFAULT_PCC_STRUCT_RETURN 0 I moved this setting from the MI file to the i386 MD file. > I think gcc didn't override its default of DEFAULT_PCC_STRUCT_RETURN = 1 > on i386's meany years ago, since bcc uses this method of returning structs > and ISTR copying the gcc behaviour. AFAIK, stock GCC always used DEFAULT_PCC_STRUCT_RETURN=1 for i386 ELF. DEFAULT_PCC_STRUCT_RETURN=0 was the a.out default, as there wasn't a standard one had to adhear to. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021224045341.GB17618>