This is a pre-alpha version of the GNU assembler, version 1.92.3. (this is a copy of the mail announcement. Real README follows below.) This session I merged the m88k support. It configures, builds, and assembles things, including some gcc2 output. I have no way of knowing if the output is right. I've merged the tahoe support. It configures and builds. I couldn't build the cygnus version of gcc2 for this machine, so I have no idea whether gas is assembling anything at all for it. I've walked through my bug and patch archives. Gas now makes a tolerable guess at a.out headers for hpux and sequent, although I have no way to know if these are right yet. Ming tran-le's changes for 386aix will probably drop out soon. He needs multiple segments and I don't plan to get that in before the real release. Eric youngdale's help with vms has been invaluable. According to him, this gas is doing vms. I didn't quite get a cross to vms working and don't plan to spend any more time on it. The gas manual is included in the distribution, configuration, and Makefiles. It should build, be printable, and readable through info. I have not yet verified that this gas has all of the unreleased changes that hack made after the last gas release. At this point I plan to ignore these until those bugs are re-reported in an alpha or full release I don't think it's worth my time. I have not yet verified any hosts other than sun4, although I have three-staged sun3 native. I have not updated the configuration doc. I do not plan to bring in any new backends for the upcoming release unless someone hands them to me on a platter as eric did for vms. I merged the m88k and tahoe ports because they were simple for me at this point, but would have been difficult for someone else. I may yet do this for the ncube support as well. I've looked at the osf stuff and discarded it for this release. I'm not sure I like what they've done for macho object format and without macho headers, I can't even build their version. I've looked at the utah stuff and discarded it for this release. They, too, have made some sweeping changes to support their object format that I'm not sure were necessary. In any case, merging this would be too much work for me right now. I've looked at the tron port. It's remarkably clean and it's a.out format. I don't plan to merge this for the full release for two reasons. First, it's so clean, they will be able to add their stuff on top and build a seperate distribution without much trouble. Second, I'm get responses from them, and hope that they will be able to do the merge. To do before alpha: * merge patches and address bugs as they arrive. * kill a remaining bug. The following input: .text a .word 3 b .word 4 c .half b-a kills most risc ports. I believe that this represents a failing of the internal representation of relocs (aka fixS's). The fix is relatively straightforward and I intend to make it. * add autoconf style configuration for hosts (not targets). * test via three-staging (preferably with gcc2) on all a.out based machines to which I have access. * update/clean out README's and build a brief porting guide. There is still a copyright issue on the coff back end, so it may need to be pulled for the full release. If this gets resolved, I hope to see coff run personally on at least one native machine before full release. Real README: This is a pre-alpha version of the GNU assembler, version 1.92.3. A number of things have changed and the wonderful world of gas looks very different. There's still a lot of irrelevant garbage lying around that will be cleaned up soon. The gas manual now builds and installs, but internal documentation is still scarce, as are logs of the changes made since the last gas release. My apologies, and I'll try to get something useful At this point I believe gas to be ansi only code for most target cpu's. That is, there should be relatively few, if any host system dependencies. Most of my recent effort has been spent testing and dusting off ports for which Cygnus hasn't had recent need. Hosting has recently been tested on only: sun4 sun3 I believe that gas can currently be targetted for: sun4 sun3 and "ports" for other cpu's and object file formats from the following set are probably trivial at this point: a.out a29k i386 i860 i960 m68k m88k ns32k tahoe sparc vax I have tested most of these in "generic" a.out configurations so I feel pretty confident in them. If anything else works, it's an accident. Some ports now generate object files that are somewhat differently shaped, but should be more correct. Specifically: * Most a.out ports now sort the relocation table in numerically ascending order. In previous versions of gas, the relocation table was sorted in descending order. To get the previous functionality, compile with -DREVERSE_SORT_RELOCS. * ns32k: The last gas I have from hack simply looks broken for ns32k. I think this one works, but don't have an assembler that I trust against which to compare. * i386: now uses ".align x" to mean x bytes rather than 2^x bytes. It also pads with the noop instruction rather than zeroes. In all cases, compiling with -DOLD_GAS will produce an assembler that should produce object files that are bitwise identical to the previous version of gas. NEW FEATURES! This isn't a complete catalog. I've forgotten what all has been done. * support for i960, a29k, m88k, and tahoe. * support for 68030 and 68040, including the ability to limit the instructions that gas will accept. ie, you can assemble for EXACTLY 68000 and no more. * object file formats have been broken out into separate backends. * a new "backend" has been created to represent the target environment. That is, gas now mimics various other assemblers rather than creating it's own requirements. A side effect of this is that this version of gas may not behave the same way as previous versions. * ansi. gas is now strictly ansi code so host ports should be trivial. REPORTING BUGS IN GAS Bugs in THIS RELEASE of gas should be reported directly to rich@cygnus.com. NOT to bug-gnu-utils@prep.ai.mit.edu. If you report a bug in GAS, please remember to include: A description of exactly what went wrong. How GAS was configured, The Operating System GAS was running under. The options given to GAS. The actual input file that caused the problem. It is silly to report a bug in GAS without including an input file for GAS. Don't ask us to generate the file just because you made it from files you think we have access to. 1. You might be mistaken. 2. It might take us a lot of time to install things to regenerate that file. 3. We might get a different file from the one you got, and might not see any bug. To save us these delays and uncertainties, always send the input file for the program that failed. If the input file is very large, and you are on the internet, you may want to make it avaliable for anonymous FTP instead of mailing it. If you do, include instructions for FTP'ing it in your bug report.