GCC 1.39 & G++ 1.39.0 with COFF GAS 1.38 on ISC 2.2

David Dawes dawes at suphys.physics.su.OZ.AU
Mon Apr 15 13:35:08 AEST 1991


In article <30057 at cs.yale.edu> karp-brad at CS.YALE.EDU (Brad Karp) writes:
>
>A few months back, a great set of patches to GCC 1.37.1, G++ 1.37.1, and GAS
>1.36 (plus a few mods to GDB 3.5) were made available which allowed one with
>a COFF system (including ISC UNIX 2.2) to produce COFF binaries with stabs
>using GAS, which in turn made it possible to produce "real" (i.e. non-
>encapsulated) COFF object files with GCC and G++ _and_ GAS. I've been running
>these GNU tools with these patches since the patches were made available, and
>all has been flawless.
>
>Does anyone out there have information about availability (both existence
>and "where-to-get-it," preferably) of similar patches for the new versions of
>these GNU development tools (GAS 1.38, GCC 1.39, and G++ 1.39.0)?

I was able to apply those old patches to the latest releases of gas, gcc, g++
without too much trouble.  (I have made this stuff available via anon ftp
from suphys.physics.su.oz.au in Esix/src/gnu, Esix/bin/gnu).

I have recently been trying to compile various parts of the X386 release using
this COFF version of gcc/gas, and ran into a few problems.  The main problems
were related to the shared libraries:  gcc/gas was putting uninitialised
statics in a .bss section rather than the .data section.  This caused problems
because the shlib spec file wasn't expecting a .bss section.  Another problem
was with the alignment of external variables in the .data section.  gas was
aligning them on 16 byte boundaries rather than on 4 byte boundaries.  This
caused the shared libs created by the coff gcc/gas to be incompatible with
the standard ones.  Another minor problem is that when gas aligns code in
.text, it fills in the gaps with 0x00 (as fills the gaps with nop (0x90)).
This doesn't cause runtime problems, but it does cause dis(1) to get confused.

When I get some time I am going to look into these incompatibilities.  I don't
know if this is how the gcc-1.37.1/gas-1.36 behaved, but I suspect it is.

If anyone else has done any work on this I'd like to hear about it.

David
--
------------------------------------------------------------------------------
 David Dawes (dawes at suphys.physics.su.oz.au) DoD#210  | Phone: +61 2 692 2639
 School of Physics, University of Sydney, Australia   | Fax:   +61 2 660 2903
------------------------------------------------------------------------------



More information about the Comp.unix.sysv386 mailing list