Descriptions of the Current Directory
-
EGCS: An Experimental Step In The GNU C Compiler Development
Japanese Page is here.
[0] News
- June 14, 1998: I decided to terminate the egcs support with a
shared version of libf2c: firstly the U77 part of the
egcs's libf2c is not completely compatible with that
of gcc-g77-2.7.2.fu.1-2O. Secondly libf2c is not so
big and making it shared does not benefit very much.
Use the system standard egcs (1.0-2e at this moment).
- March 8, 1998: (egcs-1.0.1-1g) Rebuild with new patches
extracted from egcs*-1.0-1g at ftp.linuxppc.org.
- February 26, 1998: (egcs-1.0.1-1e) Rebuild with
a patch to
make libf2c.so.
- February 24, 1998: (egcs-1.0.1-1e) Rebuild with additional patches
extracted from egcs*-1.0-1e at ftp.linuxppc.org.
The va_arg problem discussed in mklinux-jp seems to be
fixed for this version.
- February 4, 1998: (egcs-1.0.1-1C) Rebuild with additional patches
extracted from egcs*-1.0-1C at ftp.linuxppc.org.
- January 23, 1998: (egcs-1.0.1-1) First MkLinux RPM of egcs-1.0.1,
that include C, C++, objctive C, and Fortran compilers
developed from gcc-2.8.x and g77-0.5.22
(see mklinux-jp 6582 by Kodera).
See http://www.cygnus.com/egcs/
for details of the EGCS project.
The package requires the latest
"binutils" and "glibc" which in turn necessitates
updating to wip980112 or later.
See
the update note for system updating instructions.
[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