aboutsummaryrefslogtreecommitdiff
path: root/INSTALL/faq.html
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL/faq.html')
-rw-r--r--INSTALL/faq.html169
1 files changed, 155 insertions, 14 deletions
diff --git a/INSTALL/faq.html b/INSTALL/faq.html
index cbc82dafe12..1a43a77e00d 100644
--- a/INSTALL/faq.html
+++ b/INSTALL/faq.html
@@ -8,6 +8,7 @@
<ol>
<li><a href="#gcc-2-diff">How is egcs be different from gcc2?</a>
<li><a href="#open-development">What is an open development model?</a>
+ <li><a href="#release-fork">Releases and Forking</a>
<li><a href="#libc-lock">bits/libc-lock.h: No such file or directory</a>
<li><a href="#morelibc">`_IO_stdfile_0_lock' was not declared in this scope</a>
<li><a href="#fortran">Problems building the Fortran compiler</a>
@@ -25,6 +26,10 @@
<li><a href="#memexhausted">Virtual memory exhausted</a>
<li><a href="#gas">GCC can not find GAS</a>
<li><a href="#rh5.0">egcs does not work on Red Hat 5.0</a>
+ <li><a href="#x86solaris">Unable to bootstrap on x86 Solaris2.{5,6}</a>
+ <li><a href="#windows">EGCS with Windows</a>
+ <li><a href="#environ">cpp: Usage:... Error<a>
+ <li><a href="#kde">EGCS will not build KDE<a>
</ol>
@@ -71,7 +76,7 @@ time to address these again.
<p>With egcs, we are going to try a bazaar style<a
href="#cathedral-vs-bazaar"><b>[1]</b></a> approach to its
-development: We're going to be making snapshots publically available
+development: We're going to be making snapshots publicly available
to anyone who wants to try them; we're going to welcome anyone to join
the development mailing list. All of the discussions on the
development mailing list are available via the web. We're going to be
@@ -118,9 +123,54 @@ before.
for discussions.
</blockquote>
+<hr>
+<h2><a name="release-fork">Releases and Forking?</a></h2>
+<p>Some folks have questioned whether or not making releases is consistent
+with the goals of the egcs project and whether or not making releases is
+a fork from gcc2.
+
+<pre>
+The egcs project has several goals, including:
+
+ * Experimenting with a new development model, release process and
+ release packaging,
+
+ * Using the new development model to accelerate development of new
+ features, optimizations, etc for future inclusion in gcc,
+
+ * Providing high quality releases to the public.
+
+An egcs release is a copy of the egcs sources that the developers have
+tested and are believed to be suitable for wider scale use and testing.
+
+Making releases of stable, tested sources is both a goal and a means by
+which we hope to achieve other goals of the egcs project.
+
+The existence of a stable tested release allows egcs to be more thoroughly
+used and tested by a wider audience than is capable of testing snapshots.
+The expanded audience provides developers with critical feedback in a
+timely manner, which is beneficial to GCC as a whole and is consistent with
+the stated goals of egcs.
+
+The gcc maintainers are encouraged to migrate tested fixes and new features
+from egcs into gcc at their discretion. egcs maintainers are willing to
+assist the gcc maintainers as time permits. egcs periodically merges in
+changes from gcc into the egcs sources.
+
+What will keep egcs from becoming a fork is cooperation between the
+developers of gcc and egcs.
+
+We don't see this situation as significantly different than other projects
+that make releases based on some version of the gcc sources (Cygnus, g77,
+etc). All the code is still available for inclusion in gcc at the discretion
+of the gcc maintainers.
+</pre>
<hr>
<h2><a name="libc-lock">bits/libc-lock.h: No such file or directory</a></h2>
+<p>This entry should be obsolete, egcs should handle these beta versions of
+glibc2 correctly.
+
<p>egcs includes a tightly integrated libio and libstdc++ implementation which
can cause problems on hosts which have libio integrated into their C library
(most notably Linux).
@@ -135,9 +185,6 @@ a message "bits/libc-lock.h: No such file or directory" when building egcs.
Unfortunately, to fix this problem you will need to update your C library to
glibc2.0.5c.
-<p>Late breaking news: we may have at least a partial solution for these
-problems. So this FAQ entry may no longer be needed.
-
<hr>
<h2><a name="morelibc">`_IO_stdfile_0_lock' was not declared in this scope</a></h2>
<p>If you get this error, it means either egcs incorrectly guessed what version
@@ -194,10 +241,10 @@ on Irix 6.
exception handling is not working correctly, then odds are you're using a
buggy assembler.
-<p>We recommend binutils-2.8.0.1.15 or newer.
-<br><a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.15.tar.gz"> binutils-2.8.0.1.15 source</a>
-<br><a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.15.bin.tar.gz"> binutils-2.8.0.1.15 x86 binary for libc5</a>
-<br><a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.15.glibc.bin.tar.gz"> binutils-2.8.0.1.15 x86 binary for glibc2</a>
+<p>We recommend binutils-2.8.1.0.15 or newer.
+<br><a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.15.tar.gz"> binutils-2.8.1.0.15 source</a>
+<br><a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.15.bin.tar.gz"> binutils-2.8.1.0.15 x86 binary for libc5</a>
+<br><a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.15.glibc.bin.tar.gz"> binutils-2.8.1.0.15 x86 binary for glibc2</a>
Or, you can try a
<a href="ftp://ftp.cygnus.com/pub/egcs/infrastructure/gas-970915.tar.gz"> binutils snapshot</a>; however, be aware that the binutils snapshot is untested
and may not work (or even build). Use it at your own risk.
@@ -254,7 +301,7 @@ not recreate it.
<p>If you get a message about unable to find "standard.exp" when trying to
run the egcs testsuites, then your dejagnu is too old to run the egcs tests.
You will need to get a newer version of dejagnu; we've made a
-<a href="ftp://ftp.cygnus.com/pub/egcs/infrastructure/dejagnu-971028.tar.gz">
+<a href="ftp://ftp.cygnus.com/pub/egcs/infrastructure/dejagnu-971222.tar.gz">
dejagnu snapshot</a> available until a new version of dejagnu can be released.
<hr>
@@ -320,6 +367,13 @@ for the "g++", "c++" and "g77" compiler drivers.
you may not be able to build the kernel because objdump does not understand
the "-k" switch. The solution for this problem is to remove /usr/bin/encaps.
+<p>The reason you must remove /usr/bin/encaps is because it is an obsolete
+program that was part of older binutils distributions; the Linux kernel's
+Makefile looks for this program to decide if you have an old or a new
+binutils. Problems occur if you installed a new binutils but haven't
+removed encaps, because the Makefile thinks you have the old one. So zap
+it; trust us, you won't miss it.
+
<p>You may get an internal compiler error compiling process.c in newer
versions of the Linux kernel on x86 machines. This is a bug in an asm
statement in process.c, not a bug in egcs. XXX How to fix?!?
@@ -329,7 +383,7 @@ statement in process.c, not a bug in egcs. XXX How to fix?!?
_X11TransSocketUNIXConnect: Can't connect: errno = 111
</pre>
-<p>It's a kernel bug. The function sys_iopl in arch/i386/kernel/process.c
+<p>It's a kernel bug. The function sys_iopl in arch/i386/kernel/ioport.c
does an illegal hack which used to work but is now broken since GCC optimizes
more aggressively . The newer 2.1.x kernels already have a fix which should
also work in 2.0.32.
@@ -350,16 +404,103 @@ will need to specify -Wno-return-type to turn it off.
<p>Some configurations like irix4, irix5, hpux* require the use of the GNU
assembler intead of the system assembler. To ensure that egcs finds the GNU
assembler, you should configure the GNU assembler with the same --prefix
-option as you used for egcs. Then build & install the GNU assembler.
+option as you used for egcs. Then build & install the GNU assembler. After
+the GNU assembler has been installed, proceed with building egcs.
<hr>
<h2> <a name="rh5.0">egcs does not work on Red Hat 5.0</a></h2>
-<p> egcs does not currently work with Red Hat 5.0; we'll update this
-entry with more information as it becomes available.
+<p> This entry is obsolete with the release of egcs-1.0.1 which should
+handle Red Hat 5.0 correctly.
+
+<p> egcs-1.0 does not currently work with Red Hat 5.0 on some platforms; we'll
+update this entry with more information as it becomes available.
+
+<p> You may want to try this
+<a href="http://www.cygnus.com/ml/egcs/1997-Dec/0594.html"> proposed patch</a>
+for Red Hat 5.0. Please let us know if you use this patch and whether or
+not it works.
+
+<hr>
+<h2> <a name="x86solaris">Unable to bootstrap on x86 Solaris 2.{5,6}</a></h2>
+<p> This entry is obsolete with the release of egcs-1.0.1 which should
+handle x86 Solaris systems correctly.
+
+<p>This patch should fix the problem
+
+<pre>
+Index: t-sol2
+===================================================================
+RCS file: /cvs/cvsfiles/egcs/gcc/config/i386/t-sol2,v
+retrieving revision 1.2
+diff -c -3 -p -r1.2 t-sol2
+*** t-sol2 1997/09/04 23:54:04 1.2
+--- t-sol2 1997/12/04 07:19:07
+*************** crtn.o: $(srcdir)/config/i386/sol2-cn.as
+*** 31,36 ****
+ # to produce a shared library, but since we don't know ahead of time when
+ # we will be doing that, we just always use -fPIC when compiling the
+ # routines in crtstuff.c.
+
+! CRTSTUFF_T_CFLAGS = -fPIC
+ TARGET_LIBGCC2_CFLAGS = -fPIC
+--- 31,40 ----
+ # to produce a shared library, but since we don't know ahead of time when
+ # we will be doing that, we just always use -fPIC when compiling the
+ # routines in crtstuff.c.
++ #
++ # We must also enable optimization to avoid having any code appear after
++ # the call & alignment statement, but before we switch back to the
++ # .text section.
+
+! CRTSTUFF_T_CFLAGS = -fPIC -O2
+ TARGET_LIBGCC2_CFLAGS = -fPIC
+</pre>
+
+<hr>
+<h2> <a name="windows">EGCS with Windows</a></h2>
+<p>egcs does not currently support windows, either natively or with the
+cygwin32 dll. However Mumit Khan has been working on supporting Windows
+with egcs. You should check out his site if you're interested in Windows
+support.
+<a href="http://www.xraylith.wisc.edu/~khan/software/gnu-win32">GNU Win32 related projects</a>
+
+<hr>
+<h2> <a name="environ">cpp: Usage:... Error</a></h2>
+<p>If you get an error like this when building egcs (particularly when building
+__mulsi3), then you likely have a problem with your environment variables.
+<pre>
+cpp: Usage: /usr/lib/gcc-lib/i586-unknown-linux-gnulibc1/2.7.2.3/cpp
+[switches] input output
+</pre>
+
+<p>First look for an explicit '.' in either LIBRARY_PATH or GCC_EXEC_PREFIX
+from your environment. If you do not find an explicit '.', look for
+an empty pathname in those variables. Note that ':' at either the start
+or end of these variables is an implicit '.' and will cause problems.
+
+<hr>
+<h2> <a name="kde">EGCS will not build KDE</a></h2>
+<p> Previous versions of g++ accepted (as a GNU extension)
+constructor-arguments for the objects in an array of objects
+dynamically allocated with new. Here's an example of this construct:
+
+<pre>
+ struct S { S(int); }
+ void f() { new S[3](6); }
+</pre>
+
+<p>However, this construct is not allowed by the ANSI/ISO Standard, and
+is no longer accepted by g++.
+
+<p> KDE uses such constructs and therefore will not build with egcs; note
+patches are available to fix KDE.
+
+
+
<hr>
<p><a href="index.html">Return to the egcs home page</a>
-<p><i>Last modified: December 2, 1997</i>
+<p><i>Last modified: Jan 2, 1998</i>
</body>
</html>