Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!sdd.hp.com!spool.mu.edu!munnari.oz.au!metro!news From: dawes@suphys.physics.su.OZ.AU (David Dawes) Newsgroups: comp.unix.sysv386 Subject: Re: GCC 1.39 & G++ 1.39.0 with COFF GAS 1.38 on ISC 2.2 Keywords: GNU GCC G++ COFF ISC GAS Message-ID: <1991Apr15.033508.21546@metro.ucc.su.OZ.AU> Date: 15 Apr 91 03:35:08 GMT Article-I.D.: metro.1991Apr15.033508.21546 References: <30057@cs.yale.edu> Sender: news@metro.ucc.su.OZ.AU Reply-To: dawes@suphys.physics.su.OZ.AU (David Dawes) Organization: School of Physics, Uni of Sydney, Australia. Lines: 41 Nntp-Posting-Host: suphys.physics.su.oz.au In article <30057@cs.yale.edu> karp-brad@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@suphys.physics.su.oz.au) DoD#210 | Phone: +61 2 692 2639 School of Physics, University of Sydney, Australia | Fax: +61 2 660 2903 ------------------------------------------------------------------------------