Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Sep 2002 21:13:32 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Jake Burkholder <jake@locore.ca>
Cc:        current@FreeBSD.ORG
Subject:   Re: aout support broken in gcc3
Message-ID:  <20020902205828.I3195-100000@gamplex.bde.org>
In-Reply-To: <20020902040144.H67527@locore.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2 Sep 2002, Jake Burkholder wrote:

> Apparently, On Mon, Sep 02, 2002 at 02:24:08PM +1000,
> 	Bruce Evans said words to the effect of;
>
> > aout support is still required for a few things (mainly for compiling
> > some boot blocks), but is broken in gcc3 for at least compile-time
>
> Which boot blocks?

Oops, perhaps only mine.  (I use my version of biosboot which is like
pc98/boot2 except it supports loading elf kernels and some local things,
and it hasn't been converted to elf at the source level.)  When I wrote
the above I thought that several standard boot blocks used OBJFORMAT=-aout.
They actually just have a lot of ${OBJFORMAT} == aout ifdefs and
elf2aout conversions.  Most of aout support at the source level seems to
have been broken some time ago by using new gas features in assembler
code.

> > The above assembler output has two syntax errors:
> > - ".quad 0".  .quad is not supported by the old aout assembler.
> > - "shldl %eax, %edx".  The old aout assembler only accepts the correct
> >   syntax of "shldl %cl,%eax,%edx".  Note that gcc doesn't elide the
> >   similarly implicit %cl register for the sall instruction.

Wrong fixes for .quad are easy and are already done for some systems
(e.g., OpenBSD) by #undefing ASM_QUAD.

The following hack seems to fix shld (the breakage seems to be
intentional):

%%%
Index: i386.md
===================================================================
RCS file: /home/ncvs/src/contrib/gcc/config/i386/i386.md,v
retrieving revision 1.12
diff -u -2 -r1.12 i386.md
--- i386.md	1 Sep 2002 21:13:32 -0000	1.12
+++ i386.md	2 Sep 2002 05:51:30 -0000
@@ -10768,5 +10768,5 @@
   "@
    shld{l}\t{%2, %1, %0|%0, %1, %2}
-   shld{l}\t{%s2%1, %0|%0, %1, %2}"
+   shld{l}\t{%2, %1, %0|%0, %1, %2}"
   [(set_attr "type" "ishift")
    (set_attr "prefix_0f" "1")
%%%

I forgot to make the corresponding change for shrd.

Bruce


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?20020902205828.I3195-100000>