Return-Path: jeffrey Return-Path: Received: by cygnus.com (4.1/SMI-4.1) id AA01963; Mon, 21 Sep 92 18:31:34 PDT Date: Mon, 21 Sep 92 18:31:34 PDT From: jeffrey (Jeffrey Osier) Message-Id: <9209220131.AA01963@cygnus.com> To: engnews-distrib Subject: Inside Cygnus Engineering ------------------------------------------------------------------------- Vol 1 No 9 INSIDE CYGNUS ENGINEERING September 1992 ------------------------------------------------------------------------- Inside Cygnus Engineering (ICE) is published monthly for customers of Cygnus Support. Our objective is to provide a relevant but informal summary of news and ongoing activities. Please send all comments, suggestions, and subscription requests to engnews@cygnus.com. PRODUCTS AND RELEASES --------------------- 1. Progressive Update We are still hard at work on the next progressive release. In the process, we have done significant cleanup and reorganization of the libraries (libgcc, libc and libm, libiberty, libg++) to make the toolchain easily configurable for many cross-development platforms. Our test framework has been ported and enhanced to increase platform-independence of test cases, particularly for cross development. And then there has been the very large task of building and testing each platform, fixing bugs, and starting the cycle again. As expected, logistics is proving to be the greatest challenge. Although we have built and verified most of the platforms below at one time or another in engineering, getting all of them into product boxes has proved to be our undoing. We will not be able to final- and installation-test all of these in a timely fashion. Thus we have decided to delay the final ship date and decrease the number of platforms that we will package and put on the shelf. The original ship date was set for September 30. We are moving this back a month to October 31. Core and Leveraged customers who needs updates at the end of the month will receive a beta tape and documentation. If you need an update, please contact us (at engnews@cygnus.com) as soon as possible. We anticipate that the only difference betweeb such a taoe and the stock tapes will be in the installation procedure, although, of course, late-breaking bugs may be discovered. We apologize for the inconvenience this causes. Our matrix of supported platforms covers both the needs of our current customers and inputs from our sales and marketing groups. To reduce the number of 'stock' platforms, we've decided to support certain platforms on a custom basis only. Stock platforms are shown with X's in the table below. Platforms that we will not productize are shown with O's. If there is sufficient customer interest in any of these, we will make a prerelease tape available, or make it a stock item for the Q4 progressive release. \ HOST | DEC IBM SGI TARGET \ | SUN3 SUN4 SOL2 STN RS6K IRIS DOS HP300 HP700 --------------+-------------------------------------------------------- Native | X X X X X X 68k VxWorks | X X X X X X X 68k a.out | X X X X X 68k coff | X O O 29k UDI | X X ix86 a.out | X O O i960 VxWorks | O O X O i960 Nindy | O O SPARC VxWorks | X SPARC a.out | O X = on the shelf O = may be custom built 68k = 68000, 68010, 68020, 68030, 68040 ix86 = 386, 486 i960 = KA, KB, CA SPARC = SPARC, SPARClite The DOS-hosted platforms will not include a 'make' in the current release. Due to media capacity limitations, we are also debating whether to include source code routinely, or provide it upon request. The installation process will also differ from the one on our other, Unix-based, platforms. We expect to refine these packaging issues in the next few releases while making the GNU software available as soon as possible. There is also a change for the 29k target. This platform was previously listed with serial MINIMON support. Support for the Universal Debugger Interface (UDI) is available for GDB, thanks to AMD's dedication of the needed software to the public domain. Users who wish to continue using MINIMON can do so by using the host-based MONTIP protocol converter between GDB and the target. (MONTIP is available from AMD at no charge.) 2. G++ for Solaris 2 (SPARC) With increasing numbers of Solaris 2 installations, we have received an increasing number of inquiries about our Solaris C compiler offering. As a follow-up, we will make a new release that includes C++ at the end of December. These are our current prices for support of the Solaris 2 platform follows. $1495 C/C++ per 1 user, 1 year support $3000 C only per 5 users, 1 year support $6000 C/C++ per 5 users, 1 year support The single user price is a special offer, and is effective until December 31. You can choose between two options for support: 1. We will ship you the software when C++ is available, and the one year of support begins at the time of shipment. 2. We will ship you the C tools immediately, and update you with C++ when it becomes available. The support year begins with the shipment of the C tools. 3. Binutils 2.0 Binutils 2.0 was released to the Net about 2 weeks ago. The original GNU binutils distribution has been completely rewritten. The new version is based on a Binary File Descriptor (BFD) library that provides support for multiple object file formats as well as cross-development. BFD is also used by gdb and some versions of gas. Earlier versions of the BFD Binutils have been part of the Cygnus Progressive releases since last March, so the code has been used extensively. Binutils 2.0 includes the GNU linker and the binary utilities ar, ranlib, nm, objdump, size, copy, strip. NEW AND ONGOING DEVELOPMENTS ---------------------------- We are implementing some of these only for certain platforms, so for the moment, they are not all tested or available for generic use. 1. Reno Update The GNU C++ Renovation Project, or "Reno" for short, is our project to update g++ to provide a high-quality native code C++ compiler that is both compatible with the ANSI X3J16 working draft (dpANSI C++) and which is freely redistributable according to the terms of the GNU General Public License. The first step of our project, a survey of user needs, is now complete. About 450 surveys were sent out, and we received over 150 responses. Out of the replies, over 70 were moderately to seriously interested, and gave us excellent summaries of their needs. We've begun the engineering work, starting with GNU C++ version 2.2.2 and GDB version 4.6, and expect to deliver the first major release in November, 1992, followed by subsequent releases every quarter. The first release will include significant bug fixes and enhancements in the areas of templates, nested types, multiple inheritance, and visibility checking. We will be documenting compliance with the Annotated Reference Manual (ARM) and the emerging ANSI standard. At each stage, we will also be verifying interoperability with selected class libraries including Interviews and NIHCL. Furthermore, the documentation provided by GNU C++ will be greatly improved. improving documentation. 2. Relaxing Linker for i960 Platform We are now working making the GNU linker 'relax' code in order to reduce code size for the Intel 960 backend. The relaxing phase of the assembler starts by assuming best case addressing modes and growing them to fit. The linker approach is different in that gas first generates the worst case (largest) code, and the linker tries to shrink this down. Theoretically, increasing in size generates better code, but it also results in some problem cases. The advantage of a 'shrinking' linker is that the assembler can generate code that is suitable for either a shrinking or an ordinary linker. If linked with an ordinary linker, the code will be larger and slower. If linked with a shrinking linker, there can be significant improvements. To do this, gas outputs all the relocation information rather than performing some relocations internally; then the linker moves and changes the size of sections. Gas also gives information about the alignment of various objects to the linker. The code emitted from the linker will work whether or not relaxing is enabled. 3. FSF Merges GNU software moves quickly, in part due to the continuous stream of fixes and enhancements from across the Net community. One of the fundamental activities at Cygnus Support is to keep our sources synchronized with those at the Free Software Foundation (FSF). This does not get mentioned in ICE much because it is not a "new release" or "new functionality". The merges happen quietly, requiring careful work and much diligence. Like the FSF (or net) releases and progressive releases that we make, the ongoing merge process is vital to our ongoing progress and success. During the course of development, it is easy for the source trees to diverge. There is code that is in the Cygnus source tree and not in the FSF source tree, and vice versa. In addition to the natural entropy of many distributed developers, there are also deliberate reasons for this: the need to maintain stable interoperable releases for our customers, and development that must remain confidential until a customer product is announced. The fundamental measure of divergence and therefore merge effort between the source trees is the size of the output from running 'diff'. The nature of our merge activities vary depending on whether or not we are the official maintainer of the program or package. This is illustrated by what we have done recently with gcc (predominantly maintained by the FSF) and the g++ front end (maintained by Cygnus). Our last major merge with the FSF gcc tree happened in June. Covering about 3 months of development, it started with a total of 3.8 mbytes of diffs that was reduced to 1.2 mbytes. A smaller effort merged 180 kbytes of FSF gcc 2.2.2 changes into the Cygnus tree. We are now looking to the next major merge wth gcc 2.3. This would involve over 5 mbytes of diffs, 1.8 from Cygnus and 3.2 from the FSF. In the last two months, we have performed 5 merges for g++. This included a total of 557 kbytes of diffs, mostly bug fixes. Of the 557 kbytes, 415 originated in the Cygnus tree and 142 from the FSF. 4. Documentation In addition to maintaining our existing documents, we continually try to enhance and add to them. Some of the efforts in progress include the following. - Summary of differences between gcc 1.x and 2.x - Stabs debugging format - Remote debugging: how to set up your application Another of our contributions to GNU documentation is the introduction of configurable manuals. For example, the GDB manual can be aimed at a general audience, or tailored for a particular cross-development environment. Roland Pesch, our editor, will give a presentation on `Configurable Manuals' at the International Professional Communication Conference (IPCC '92) in Santa Fe at the end of the month. SUPPORT ACTIVITIES ------------------- In addition to new developments, a significant part of our engineering resources is devoted to answering questions, fixing problems in the GNU software, and providing a range of support services to our customers. 1. Software maintenance status The maintenance statistics for the last 5 weeks are shown in the following table. We continue to ask for your help in letting us know when a problem has been fixed so that we can move it from a "feedback" state to a "closed" state. # # # # # # Date Open Analzd Fdback Closed Suspnd Total ------------------------------------------------------------ 08/10/92 269 73 171 733 101 1347 09/14/92 274 69 227 793 104 1467 ------------------------------------------------------------ Change +5 -4 +56 +60 +3 +120 OTHER ITEMS ----------- 1. Growing out of the Garage Some of you have visited us at our office at 814 University Ave and discovered that it is really an apartment. More precisely, over the last 24 months, it has become a series of 4.5 apartments strung together by ThinLAN (10 Base 2) cables. We are fast outgrowing the space, and have now found a new home in the Landings Complex at Highway 101 and Rengstorff Avenue in Mountain View. The planned move date is Hallowe'en weekend (October 31 for our international customers). We do not anticipate any interruptions in services or business activities. More information will be forthcoming in the next issue of ICE and in special mailings, and we are planning an open house in mid-November after we settle in. Please continue to communicate with us through our current email, U.S. Mail, and telephone channels in the meantime. 2. See you at the Show! It looks like it's tradeshow season. Cygnus will be at the Embedded Systems Conference at the Santa Clara Convention Center, September 21-23, and at InterOp at the Moscone Center in San Francisco, October 26-29. We will be showing our Cygnus Network Security (Kerberos) offering in addition to our development tools at InterOp. Stop by and register to win a Cygnus T-shirt at either of these shows. Cygnus will have a strong showing at the Sun Users Group Meeting at the San Jose Convention Center December 8-10. Michael Tiemann is the Keynote Speaker on Wednesday, December 9 with a talk entitled "Freely Distributable Software: GNU and HURD". Brendan Kehoe, a recent addition to the engineering team, will also be giving a paper, "Freedom of Conscience in a SunOS World". 3. Customer Forum We value your inputs, and would like to ask for your response to the following questions (to engnews@cygnus.com). We will publish summaries of answers of general interest in the following issue. 1. What other free software packages would you like us to support? 2. What additional documentation if any would you like us to provide for our current software products? --------------------------------------------------------------------- Cygnus Support 814 University Avenue One Kendall Square Palo Alto, CA 94301 Cambridge, MA 02139 +1 415 322 3811 voice +1 617 494 1040 voice +1 415 322 3270 fax +1 617 494 1325 fax ---------------------------------------------------------------------