Click here to learn
about this Sponsor:
Home  |  News  |  Articles  |  Polls  |  Forum

Keywords: Match:
Open source compiler (GCC) graduates to 3.0
Jun. 19, 2001

By Stephen Shankland; special to ZDNet . . .

The foundation of the open-source movement has just shifted.

On Monday, programmers released version 3.0 of GCC, a software project not as well-known as open-source projects such as Linux but one that's key to all of them. GCC is a compiler--the critical software that converts programs written by humans into instructions a chip can understand.

GCC is used to create everything from Linux and its various BSD Unix cousins to higher-level software such as the Apache Web server, the Gnome user interface and the Jabber instant-messaging software. And it can run on and create software for more than 40 different chip families.

When Eric Allman was creating his open-source Sendmail e-mail server software about a decade ago, GCC was just one of a collection of compilers he had to support to make sure his software could run on a large number of computers. "I was using a lot of compilers, and GCC was one of them," he said. "At this point, GCC is so common you almost could use just GCC."

But GCC isn't just for open-source projects--the collaborative efforts in which developers share their programs without the secrecy of the proprietary world. Because the GCC design lets it create programs for dozens of different CPUs, it has been used to create the software for numerous proprietary systems as well.

Indeed, GCC has spread as far as Microsoft, which ships the compiler as part of its Interix software, which enables Unix software to run on Windows computers.

Version 3.0, under development for more than a year, adds several features. Among them is an improved ability to generate instructions for Intel's mainstream chips--work Intel has been funding for years. The software GCC produces for other chips is also improved.

Among the new chips now supported are Intel's Itanium and XScale, Motorola's MCore 210 and 340, Mitsubishi's D30V, Atmel's AVR, and Fujitsu's FR30, said Jeff Law, a GCC developer at Red Hat.

The new version of GCC is the first major revamp since version 2.0 was released in February 1992. Since then, GCC has survived a problem that many consider to be one of the biggest threats to open-source software: code forking, in which two separate groups of programmers develop in different directions.

GCC history

GCC originally was a project begun by Free Software Foundation founder Richard Stallman. Version 1.0 was released in May 1987.

GCC once stood for GNU C Compiler, since it was used to compile programs written in the C programming language for Stallman's "GNU's Not Unix" (GNU) effort to create a clone of Unix. Now, though, because GCC accepts programs written in many other languages as well, GCC stands for GNU Compiler Collection.

Stallman created the concept of "free software"--which he defines not as no-cost, but as software that may be freely redistributed as long as its source code remains open. He released GCC under the GNU General Public License, the license now used to cover many open-source efforts. Indeed, the Linux kernel that stepped in to become the heart of the GNU operating system project is released under the GPL.

Much of GCC's development has been supported by Linux seller Red Hat, after its 1999 acquisition of Cygnus Solutions, a company whose business was adapting GCC so it could support new chips.

Cygnus' first customers used GCC for proprietary systems such as network equipment, said Michael Tiemann, founder of Cygnus and now chief technology officer of Red Hat. Nortel was Cygnus' first major customer, in 1990. Intel joined later that year. Ericsson arrived in 1991, and Cisco Systems and Alcatel signed on in 1992, he said.

Tiemann was an instrumental early developer of the compiler. He started with version 1.0 in 1987 and added several major new features to GCC, including the ability to run on the National Semiconductor 32032 chip and the ability to accept software written in the C++ language.

Tiemann also worked on the translation of GCC to the Motorola 8800, Intel's 386 chips, MIPS chips, and Sun's Sparc chips. He also helped lay the groundwork for "very long instruction word" (VLIW) chips such as Intel's new Itanium.

One of the criticisms of GCC is the fact that it is so general-purpose: being able to use it on so many chips with so many languages means it only produces mediocre software. But Tiemann defends GCC.

In the process of figuring out how to get GCC to create software for so many different chips, GCC developers discovered improvements that apply to many different chips, Tiemann said. "Having the genetic material that spans across all these architectures in my opinion makes it a better compiler than any specific one," he said. For example, modifying GCC for chips from MIPS and Sun laid the groundwork for future Intel chips that followed those other designs.

In addition, GCC has modules that optimize software for particular chips.

"There are companies out there that are spending $50 million or $100 million on compiler development, and for a given arch, that may give them a leading position by some percentage," he said. "But in my opinion, the (ability) to support a wide range of microprocessors with a common compiler infrastructure and the ability to more rapidly adapt to microprocessors as they come out gives you better opportunity to take advantage of Moore's Law," the principle that chips double in power every 18 months.

Cygnus, which was earning about $20 million in annual revenue at the time Red Hat acquired the company, had much of its success in "embedded" designs such as network routers and other communication equipment. Indeed, Intel's first funding of Cygnus was to create GCC support for Intel's now-defunct i960 communications processor.

Now GCC is all over the computing landscape.

"It became sort of the default compiler to use because it supports so many machines and so many platforms," Stallman said. "People wanted to be able to use the same compilers everywhere."

The code fork

While Tiemann was at Cygnus, his company gained powerful influence over GCC. The Free Software Foundation-appointed GCC maintainer, though, didn't have enough time to process all the changes to GCC, and because of disagreements over how to manage these changes, Cygnus decided in 1997 to create a new version of GCC called EGCS.

Tiemann said that through EGCS, Cygnus showed it could maintain a heavy influence over GCC without letting its own motives shut out others' priorities. Eventually the rift was healed, in April 1999, when the Free Software Foundation agreed to use the EGCS code for GCC and the EGCS project agreed to dissolve itself and work instead on GCC.

"It was a bloodless fork and a bloodless reunification," Tiemann said.



(Click here for further information)


FUEL Database on MontaVista Linux
Whether building a mobile handset, a car navigation system, a package tracking device, or a home entertainment console, developers need capable software systems, including an operating system, development tools, and supporting libraries, to gain maximum benefit from their hardware platform and to meet aggressive time-to-market goals.

Breaking New Ground: The Evolution of Linux Clustering
With a platform comprising a complete Linux distribution, enhanced for clustering, and tailored for HPC, Penguin Computing¿s Scyld Software provides the building blocks for organizations from enterprises to workgroups to deploy, manage, and maintain Linux clusters, regardless of their size.

Data Monitoring with NightStar LX
Unlike ordinary debuggers, NightStar LX doesn¿t leave you stranded in the dark. It¿s more than just a debugger, it¿s a whole suite of integrated diagnostic tools designed for time-critical Linux applications to reduce test time, increase productivity and lower costs. You can debug, monitor, analyze and tune with minimal intrusion, so you see real execution behavior. And that¿s positively illuminating.

Virtualizing Service Provider Networks with Vyatta
This paper highlights Vyatta's unique ability to virtualize networking functions using Vyatta's secure routing software in service provider environments.

High Availability Messaging Solution Using AXIGEN, Heartbeat and DRBD
This white paper discusses a high-availability messaging solution relying on the AXIGEN Mail Server, Heartbeat and DRBD. Solution architecture and implementation, as well as benefits of using AXIGEN for this setup are all presented in detail.

Understanding the Financial Benefits of Open Source
Will open source pay off? Open source is becoming standard within enterprises, often because of cost savings. Find out how much of a financial impact it can have on your organization. Get this methodology and calculator now, compliments of JBoss.

Embedded Hardware and OS Technology Empower PC-Based Platforms
The modern embedded computer is the jack of all trades appearing in many forms.

Data Management for Real-Time Distributed Systems
This paper provides an overview of the network-centric computing model, data distribution services, and distributed data management. It then describes how the SkyBoard integration and synchronization service, coupled with an implementation of the OMG¿s Data Distribution Service (DDS) standard, can be used to create an efficient data distribution, storage, and retrieval system.

7 Advantages of D2D Backup
For decades, tape has been the backup medium of choice. But, now, disk-to-disk (D2D) backup is gaining in favor. Learn why you should make the move in this whitepaper.

 


Got a HOT tip?   please tell us!
Free weekly newsletter
Enter your email...
Click here for a profile of each sponsor:
PLATINUM SPONSORS
(Become a sponsor)
GOLD SPONSORS
(Become a sponsor)
(Become a sponsor)

ADVERTISEMENT
(Advertise here)

Check out the latest Linux powered...

Mobile phones!

MIDs, UMPCs
& tablets

Mobile devices

Other cool
gadgets



Resource Library

• Unix, Linux Uptime and Reliability Increase: Patch Management Woes Plague Windows Yankee Group survey finds IBM AIX Unix is highest in ...
• Scalable, Fault-Tolerant NAS for Oracle - The Next Generation For several years NAS has been evolving as a storage ...
• Managing Software Intellectual Property in an Open Source World This whitepaper draws on the experiences of the Black Duck ...
• Open Source Security Myths Dispelled Is it risky to trust mission-critical infrastructure to open source ...
• Bringing IT Operations Management to Open Source & Beyond Download this IDC analyst report to learn how open source ...


BREAKING NEWS

• "Dr. Mobile" prescribes Nano for netbooks
• DLNA router technology runs Linux
• Linux breadboard targets wireless geo-location
• "EDA" runs Android
• "3G" HP netbook boasts Atom, ExpressCard expansion
• Mini-notebook chips suitable for Linux devices?
• Single-drive NAS runs ARM Linux
• Linux fast-boot add-on reviewed
• Linux NAS/iSCSI server adopts Atom
• Superscalar ARM SoC runs Linux
• "Zubuntu" keeps Zaurus spirit alive
• i.MX515 targets Linux netbooks
• Palm "Nova" Linux set for CES debut?
• German Linux integrator launches workshops
• In memorium: Thiemo Seufer


Most popular stories -- past 90 days:
• Linux boots in 2.97 seconds
• Tiniest Linux system, yet?
• Linux powers "cloud" gaming console
• Report: T-Mobile sells out first 1.5 million G1s
• Open set-top box ships
• E17 adapted to Linux devices, demo'd on Treo650
• Android debuts
• First ALP Linux smartphone?
• Cortex-A8 gaming handheld runs Linux
• Ubuntu announces ARM port


DesktopLinux headlines:
• A peek at Phoenix HyperSpace
• Linux desktop gains kid-friendly browser
• OpenSUSE Community Manager discusses 11.1 release
• "...and I'm Linux" video contest approaches
• OpenSUSE rev's license, build system
• Linux gains fresh "AIR"
• Video-call software boasts HD quality
• Sun rev's "open source" desktop VM manager
• Open source music player rev's up
• Fedora 10 dubbed a "solid" chapeau


Also visit our sister site:


Sign up for LinuxDevices.com's...

news feed

Home  |  News  |  Articles  |  Polls  |  Forum  |  About  |  Contact
 

Ziff Davis Enterprise Home | Contact Us | Advertise | Link to Us | Reprints | Magazine Subscriptions | Newsletters
Tech RSS Feeds | White Papers | ROI Calculators | Tech Podcasts | Tech Video | VARs | Channel News

Baseline | Careers | Channel Insider | CIO Insight | DesktopLinux | DeviceForge | DevSource | eSeminars |
eWEEK | Enterprise Network Security | LinuxDevices | Linux Watch | Microsoft Watch | Mid-market | Networking | PDF Zone |
Publish | Security IT Hub | Strategic Partner | Web Buyer's Guide | Windows for Devices

Developer Shed | Dev Shed | ASP Free | Dev Articles | Dev Hardware | SEO Chat | Tutorialized | Scripts |
Code Walkers | Web Hosters | Dev Mechanic | Dev Archives | igrep

Use of this site is governed by our Terms of Service and Privacy Policy. Except where otherwise specified, the contents of this site are copyright © 1999-2008 Ziff Davis Enterprise Holdings Inc. All Rights Reserved. Reproduction in whole or in part in any form or medium without express written permission of Ziff Davis Enterprise is prohibited. Linux is a registered trademark of Linus Torvalds. All other marks are the property of their respective owners.