openbsd-ports/lang/egcs/snapshot
2002-06-05 23:58:49 +00:00
..
patches Resurrect snapshot port, easy to do,since it's the gcc 3.1 branch. 2002-06-05 23:58:49 +00:00
pkg Resurrect snapshot port, easy to do,since it's the gcc 3.1 branch. 2002-06-05 23:58:49 +00:00
distinfo Resurrect snapshot port, easy to do,since it's the gcc 3.1 branch. 2002-06-05 23:58:49 +00:00
Makefile Resurrect snapshot port, easy to do,since it's the gcc 3.1 branch. 2002-06-05 23:58:49 +00:00
README Resurrect snapshot port, easy to do,since it's the gcc 3.1 branch. 2002-06-05 23:58:49 +00:00

$OpenBSD: README,v 1.8 2002/06/05 23:58:49 espie Exp $

Warning: highly experimental port.

It is assumed you know what you are doing by playing with this.

If configuration for your favorite processor does not work, there are
two possibilities:

- you can send me complete bug reports, telling me what's wrong, and I will
try to get a viable configuration.
- you can do it yourself but, for any non-trivial change, you *MUST* file
a copyright assignment with the FSF. Otherwise, your patch won't make it
to the official egcs distribution, and we all lose.

One point of the clean-up is to be able to trace the configuration
precisely, so that it becomes easier to track newer versions of egcs,
or port OpenBSD to other architectures. Accordingly, each code fragment
has to be tagged with the place it originally came from, and variations
from standard practice have to be thoroughly documented.

For instance, if you have to change CC1_SPEC for OpenBSD, it is important
to know what you changed from that default processor configuration: when
egcs evolves and add new specs, it's easier to know what to pick up, and
what to leave alone.

From a technical point of view, part of the challenge is that some bugs
may come from the compiler, some from the assembler, and from the linker.
It's likely that the only way to resolve many bugs will be to finally 
upgrade to a recent binutils... For instance, C++ currently has to resort
to substandard setjump/longjump exceptions as we don't handle dwarf2 unwind
info correctly.

Please read the Makefile before attempting to build this port. There might
be some tweaks involved. Start with make patch, then read the
documentation, and decide on changes. For instance, C++ folks may wish to 
play with -fsquangle: since this is an option you need to activate for
building the library, you had better decide from the start.

Once you get through all those caveats, and manage to build egcs, one
nice point is that you get fairly good C, C++, f77, objective-C, and
java compilers.