Descriptions of the Current Directory

EGCS: An Experimental Step In The GNU C Compiler Development

Japanese Page is here.

[0] News

[1] Files

This directory has the same structure as that of /usr/src/redhat after building the egcs package. The egcs SRPM is basically identical to ftp://ftp.linuxppc.org/linuxppc/redhat/SRMPS/egcs-1.0-1g.src.rpm except that the official egcs-1.0.1.tar.gz was used instead of egcs-1.0 + 1.0.1-prerelease patch and the installation prefix was changed to /usr/egcs instead of /usr to avoid overwriting the system default compilers.

RPMS/ppc/*.ppc.rpm : binary packages
SOURCES/* : source files and patches
SPECS/*.spec : package building specs
SRPMS/*.src.rpm : source package
README.html : this file

[2] Precaution

You have to update your system at least up to "Wip-980112" with shared library support in order to use this package, since "binutils-2.8.1" required by egcs-1.0.1 is only compatible with the recent wips (980112 or later). Presumably, the C, C++, and obj-C parts of the package are variants of gcc-2.8.0 and its FORTRAN part is derived from g77-0.5.22.

An example of the updating procedure to wip-980113 can be found here but this might make your system unstable, since it is afterall a wip version. As always, install the package at your own risk!

[3] Installation Instructions

Before installing the package, make sure that you have "binutils" and "glibc" updated. See the update note for system updating instructions.

Now make up your mind and do:

$ ls
egcs-1.0.1-1g.ppc.rpm
egcs-c++-1.0.1-1g.ppc.rpm
egcs-g77-1.0.1-1g.ppc.rpm
egcs-objc-1.0.1-1g.ppc.rpm
egcs-libstdc++-2.8.0-1g.ppc.rpm
egcs-libstdc++-devel-2.8.0-1g.ppc.rpm
$ rpm -qpl *

If you are satisfied with the contents of the package: proceed to

$ su
# rpm -i egcs-*

You need to add /usr/egcs/lib to /etc/ld.so.conf if it is not already included in the list:

# cat /usr/egcs/lib >> /etc/ld.so.conf
# /sbin/ldconfig

Since the whole package resides in /usr/egcs, you have to add /usr/egcs/bin to your PATH environment variable:

$ export PATH=/usr/egcs/bin:$PATH

Now you are ready to try them just like using the standard gcc suite. Good luck!

[4] Changes from G77-0.5.19 That I Noticed

G77 of egcs-1.0.1, being based on g77-0.5.22, is more strict about syntax and might requires some more flags to add to FFLAGS, unless you rewrite your source code. New such flags include:

-fno-globals: to avoid comlaints such as
Global name NAME defined at ... already defined...
Global name NAME at ... has different type...
Too many arguments passed to NAME at ...
Too few arguments passed to NAME at ...
Argument #N of NAME is ...
-fno-f90 -fugly-complex: to avoid complaints such as
Ambiguous use of intrinsic INTRINSIC ...

Try the following for more information:

$ info -f g77 M GLOBALS
$ info -f g77 M CMPAMBIG

Another difference is that this version of egcs does not supply any shared version of "libf2c". This is simply because I am lazy.

[5] Further Information

I have summarized my experience with g77-0.5.19 on MkLinux here which might be of some help.
Back to Keisuke Fujii's MkLinux Page
fujiik@jlcuxf.kek.jp Jan. 23, 1998