This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

tentative FAQ 0.8.2, plus new list/FAQ maintainers wanted


I've made available a tentative version of FAQ-0.8.2.
The changes from FAQ-0.8.1 are minor.
Appended at the end is a set of diffs from 0.8.1.

Sorry for such a long time between versions, but since there
are such few changes, there hasn't been much motivation.
As always, contributions are always welcome ....

And to that end, I'm looking for someone to take over maintenance
of this list and of the FAQ.  I've done it for a few years, time
to let someone else.  Maybe some fresh blood can instill some life
into things.

--- FAQ-0.8.1	Mon Apr 28 14:42:46 1997
+++ FAQ-0.8.2	Mon Aug 24 10:42:03 1998
@@ -2,9 +2,9 @@
 		CrossGCC Frequently Asked Questions
 		===================================
 
-Version: 0.8.1
-Last Updated: 970428
-Maintainer: dje@cygnus.com
+Version: 0.8.2
+Last Updated: 980824
+Maintainer: devans@cygnus.com
 Location: ftp://ftp.cygnus.com/pub/embedded/crossgcc/FAQ
 
 `crossgcc' is the name of a mailing list for discussing issues regarding
@@ -22,7 +22,8 @@
 This list is run by the "majordomo" software.
 
 This FAQ is unfinished (in the sense that there are some obvious sections
-it needs, some included below).  Please send contributions to dje@cygnus.com.
+it needs, some included below).  Please send contributions to
+devans@cygnus.com.
 
 Table of Contents
 -----------------
@@ -75,11 +76,13 @@
 
 6.  Using GDB for remote debugging
 
+    6.1 Motorola CPU32 BDM support
+
 7.  S Records, etc.
 
-    6.1 What are S Records?
-    6.1 How do I use objcopy to generate S Records?
-    6.2 How do I use the linker to generate S Records?
+    7.1 What are S Records?
+    7.1 How do I use objcopy to generate S Records?
+    7.2 How do I use the linker to generate S Records?
 
 8.  Target specific info
 
@@ -111,23 +114,20 @@
 you to avoid overloading prep.  The list of sites can be obtained with
 "finger fsf@prep.ai.mit.edu".
 
-Compiler: GCC 2.7.2.1, file gcc-2.7.2.1.tar.gz
-
-	gcc-2.7.2.2 may also be used, it's difference over 2.7.2.1 is
-	for linux native compilers, which aren't a concern here.
+Compiler: GCC 2.8.1, file gcc-2.8.1.tar.gz
 
-Assembler: GAS 2.7, file binutils-2.7.tar.gz
+Assembler: GAS 2.9.1, file binutils-2.9.tar.gz
 
-Linker: GLD 2.7, file binutils-2.7.tar.gz
+Linker: GLD 2.9.1, file binutils-2.9.1.tar.gz
 
-Utilities: Binutils 2.7, file binutils-2.7.tar.gz
+Utilities: Binutils 2.9.1, file binutils-2.9.1.tar.gz
 
-Debugger: GDB 4.16, file gdb-4.16.tar.gz
+Debugger: GDB 4.17, file gdb-4.17.tar.gz
 
 Library: There are currently two choices for a library, the GNU libc (Glibc)
 and a library put together by Cygnus (Newlib).
-	GLIBC 2.0.1, file glibc-2.0.1.tar.gz
-	Newlib 1.7.1, file newlib-1.7.1.tar.gz in directory
+	GLIBC 2.0.6, file glibc-2.0.6.tar.gz
+	Newlib 1.8.1, file newlib-1.8.1.tar.gz in directory
 		ftp.cygnus.com:/pub/newlib
 
 2. Patches
@@ -137,7 +137,7 @@
 
 2.1 Cygnus patches
 
-crossgcc-gcc-2.7.2.1.patch
+crossgcc-gcc-2.8.1.patch
 
 	This patch adds these things.
 	a. Delete building of objc-runtime.
@@ -145,15 +145,8 @@
 	   aren't available when the user is first building the cross
 	   compiler.  They *could* be, but this is a frequent source of
 	   trouble to users so this patch avoids the trouble.
-	b. float.h
-	   GCC's Makefile expects to be able to run `enquire' to compute
-	   float.h.  When building a cross compiler this can require manual
-	   intervention in the build process (and hence a source of confusion
-	   for users) and on some embedded systems it may be impossible to
-	   run enquire.  This patch provides some prebuilt versions of
-	   float.h that targets can use.
-	   ??? The support is incomplete.  For example, 96 bit and 128 bit
-	   floating point support is missing.
+	b. Miscellaneous patches to Makefile.in/configure.in
+	   [see the ChangeLog entries at the top of the patch file].
 	c. Define inhibit_libc in LIBGCC2_FLAGS if cross compiler.
 	   Various routines in libgcc2.c require headers like stdio.h which
 	   typically aren't available yet (see point a.).
@@ -165,17 +158,12 @@
 	d. Provide support for i386-go32 as a target.
 	   This is needed for example in a Canadian Cross where one is
 	   building a DOS hosted cross compiler from a Unix system.
-	e. Provide ppc-asm.h.
 
 The patch is available in ftp.cygnus.com:/pub/embedded/crossgcc.
 To apply the patch:
 
-cd gcc-2.7.2.1
-patch -p1 <../crossgcc-gcc-2.7.2.1.patch
-
-crossgcc-gcc-2.7.2.2.patch is also available it is identical to
-crossgcc-gcc-2.7.2.1.patch except for a few changes necessary to make
-it apply properly.
+cd gcc-2.8.1
+patch -p1 <../crossgcc-gcc-2.8.1.patch
 
 2.2 Patch for binutils-2.6 GAS bug "Case value 3 unexpected at line 1557"
 
@@ -202,6 +190,8 @@
 3) If you have a "make" that understands VPATH (like GNU make), it is
    highly recommended that you build the pieces in a different directory
    from the sources.  The examples below will assume this.
+   Also, if you do decide to build in a directory different from the source,
+   GNU make is generally the only make that can handle this correctly.
 
 The pieces have to be built and installed in a particular order.
 Why?  Clearly the cross-compiler is needed to build the libraries,
@@ -231,17 +221,17 @@
 
 # Configure, build and install binutils
 cd build-binutils
-../binutils-2.7/configure --host=$host --target=$target --prefix=$prefix -v
+../binutils-2.9.1/configure --target=$target --prefix=$prefix -v
 make all install
 
 # Configure, build and install gcc
 cd ../build-gcc
-../gcc-2.7.2.1/configure --host=$host --target=$target --prefix=$prefix -v
+../gcc-2.8.1/configure --target=$target --prefix=$prefix -v
 make all install
 
 # Configure, build and install newlib
 cd ../build-newlib
-../newlib-1.7.1/configure --host=$host --target=$target --prefix=$prefix -v
+../newlib-1.8.1/configure --target=$target --prefix=$prefix -v
 # The settings for FOO_FOR_TARGET aren't necessary if you put $prefix/bin
 # in your path before running this.
 make all install \
@@ -253,14 +243,14 @@
 
 # Configure, build and install gdb
 cd ../build-gdb
-../gdb-4.16/configure --host=$host --target=$target --prefix=$prefix -v
+../gdb-4.17/configure --target=$target --prefix=$prefix -v
 make all install
 
 3.2 One Pass Installation
 
 Is there an easier way?  Yes!
-If you study the top-level Makefile that comes with binutils-2.7,
-newlib-1.7.1, or gdb-4.16, you'll see that they're all quite similar
+If you study the top-level Makefile that comes with binutils-2.9.1,
+newlib-1.8.1, or gdb-4.17, you'll see that they're all quite similar
 (not surprising since they're essentially the same file).
 
 You'll also discover that it is capable of building and installing the
@@ -268,11 +258,11 @@
 layout different than what would normally appear when you unpack the
 sources.
 
-You will need to apply the Cygnus crossgcc-gcc-2.7.2.1.patch.
+You will need to apply the Cygnus crossgcc-gcc-2.8.1.patch.
 
 What we now need to do is turn this directory layout
 
-./binutils-2.7/
+./binutils-2.9.1/
                bfd/
                binutils/
                config/
@@ -282,8 +272,8 @@
                libiberty/
                opcodes/
                texinfo/
-./gcc-2.7.2.1/
-./newlib-1.7.1/
+./gcc-2.8.1/
+./newlib-1.8.1/
                config/
                libgloss/
                newlib/
@@ -319,24 +309,24 @@
 A script exists to reorganize the above source tree using symlinks.
 It assumes:
 - you're using a version of make that understands VPATH (e.g. GNU make)
-- ./binutils-2.7 exists
-- ./gcc-2.7.2.1 exists
-- ./newlib-1.7.1 exists
+- ./binutils-2.9.1 exists
+- ./gcc-2.8.1 exists
+- ./newlib-1.8.1 exists
 - ./src does not exist
 
-The script is one-tree-1.3.sh from ftp.cygnus.com:/pub/embedded/crossgcc.
+The script is one-tree-1.5.sh from ftp.cygnus.com:/pub/embedded/crossgcc.
 It will create a subdirectory called `src'.
 
 After running the script, do this:
 
 mkdir build
 cd build
-../src/configure --host=$host --target=$target --prefix=$prefix -v
+../src/configure --target=$target --prefix=$prefix -v
 make all install
 
 mkdir ../build-gdb
 cd ../build-gdb
-../gdb-4.16/configure --host=$host --target=$target --prefix=$prefix -v
+../gdb-4.17/configure --target=$target --prefix=$prefix -v
 make all install
 
 3.3 Can I build in a directory different from the source tree?
@@ -344,7 +334,7 @@
 Yes.
 
 However, it requires a version of make that understands VPATH.
-SunOS make may or may not be sufficient: it's VPATH support has problems
+SunOS make may or may not be sufficient: its VPATH support has problems
 which require extra effort to support and developers don't always adhere
 to the restrictions.  If you don't use GNU make you're on your own
 as far as getting the build to work.
@@ -373,7 +363,7 @@
 3.5.2 How do I build a Cygnus release?
 
 Cygnus releases are essentially the "one-pass installation" tree, except
-that a lot more tools are included (e.g. byacc, flex, expect, gdb, make, tcl,
+that a lot more tools are included (e.g. bison, flex, expect, gdb, make, tcl,
 texinfo).
 
 To build a toolchain from a Cygnus release, you should consult the
@@ -382,15 +372,15 @@
 upon a Cygnus release, here is a quick introduction.
 
 Suppose you happen upon a Cygnus release and want to build a
-sparc-sun-solaris2 cross h8300-hms compiler.  Do this:
+sparc-sun-solaris2 cross m32r-elf compiler.  Do this:
 
 src=/path/to/source/tree
 rel=/path/to/install/tree
 host=sparc-sun-solaris2
-target=h8300-hms
+target=m32r-elf
 mkdir build
 cd build
-$src/configure --host=$host --target=$target --prefix=$rel -v
+$src/configure --target=$target --prefix=$rel
 make all info install install-info
 PATH=$PATH:$rel/bin ; export PATH
 
@@ -482,7 +472,7 @@
 into a shell script and run.
 
 #!/bin/sh
-# This script is build-3way.sh from crossgcc FAQ-0.8.
+# This script is build-3way.sh from crossgcc FAQ-0.8.2.
 # Before using this script it is a good idea to check with the most recent
 # version of the FAQ to see if any changes have been made.  The FAQ can be
 # obtained from ftp://ftp.cygnus.com/pub/embedded/crossgcc/FAQ.
@@ -492,10 +482,8 @@
 #   one-tree script
 # - that crossgcc-gcc-2.x.y.patch has been applied
 #
-# Note: This script provides support for cygwin32 hosts (the configuration
-# of the gnu-win32 project), but current FSF releases of GCC,Binutils do not
-# support cygwin32.  The support is present in case you pick up a copy of
-# the cygwin32 source tree.
+# Note: This script also provides support for cygwin32 hosts (the configuration
+# of the gnu-win32 project).
 #
 # Syntax: sh build-3way.sh [install]
 #
@@ -511,7 +499,7 @@
 # On the other hand, it is really rather straightforward.
 # The goal is to build a $host cross $target toolchain.  Some hosts aren't
 # well suited to program development (eg: msdos) and other hosts may not have
-# complete GNU support yet.  Both of these cases are ideallyhandled by a
+# complete GNU support yet.  Both of these cases are ideally handled by a
 # script like this where we build everything in a more familiar and
 # comfortable environment (eg: unix).
 #
@@ -723,7 +711,7 @@
 2) Configure this directory the same way you configured the DOS cross-compiler.
    We build in the source directory here.  The argument to --exec-prefix
    violates DOS's 8.3 rules but the violation is harmless.
-   eg: /path/to/binutils-2.7/configure --srcdir=. \
+   eg: /path/to/binutils-2.9.1/configure --srcdir=. \
 	 --build=$build host=i386-go32 --target=$target \
 	 --prefix=$prefix --exec-prefix=$prefix/H-i386-go32 -v
 
@@ -769,7 +757,8 @@
     newlib 8MB
 
 A sparc-sunos4.1.4 -x- m68k-coff toolchain requires about 100MB to build,
-and about 40MB installed.
+and about 40MB installed.  Note that the programs are not stripped by default.
+Stripping them will save you a considerable amount of space.
 
 4. Frequently Encountered Problems
 
@@ -782,7 +771,7 @@
 to be installed by running `gcc --print-search-dirs'.  It will print something
 like this:
 
-install: /calvin/dje/rel/H-sparc-sun-solaris2/lib/gcc-lib/sparc-sun-solaris2/2.7.2.1/
+install: /calvin/dje/rel/H-sparc-sun-solaris2/lib/gcc-lib/sparc-sun-solaris2/2.8.1/
 programs: [... omitted ...]
 libraries: [... omitted ...]
 
@@ -791,7 +780,7 @@
 
 2) Set the environment variable GCC_EXEC_PREFIX to the directory where you
 installed GCC.  For example, if you installed GCC in /home/gcc [and file
-cc1 lives in /home/gcc/lib/gcc-lib/$target/2.7.2.1 where $target is the --target
+cc1 lives in /home/gcc/lib/gcc-lib/$target/2.8.1 where $target is the --target
 argument that was passed to configure], then set GCC_EXEC_PREFIX to
 /home/gcc/lib/gcc-lib/.  The trailing '/' is important!
 
@@ -900,7 +889,7 @@
 - subroutines to replace missing hardware functionality
   (for example, say, 32 bit integer multiply)
 - software floating point support for chips that don't have hardware
-  floating point routines (see 5.3)
+  floating point routines (see 5.4)
 - other routines needed to implement language functionality that GCC
   doesn't emit inline code for
 
@@ -923,18 +912,20 @@
 
 Glibc is the GNU libc maintained by the FSF.  It is intended to be a complete
 replacement library for native systems.  It includes the routines required
-by the C Standard as well as Posix routines.
+by C Standards as well as Posix and other routines.
 Newlib is a collection of software from several sources, and was put
 together by Cygnus for embedded systems.  It contains the routines required
 by the C Standard as well as a math library and misc. other routines.
 It is not intended to be a complete replacement library for Unix systems.
+However, newlib is the native library for go32 and cygwin32 systems.
 
 Glibc is covered by the LGPL (the GNU Library General Public License).
 Newlib is a collection of software from several sources, each with their
 own copyrights, but basically it's a Berkeley style copyright.
 
 Glibc, being intended for native Unix environments, does not need to worry
-about memory usage as much.
+about memory usage as much.  It is designed to work most efficiently
+in demand-page-loaded shared library situations.
 Newlib, being intended for embedded systems, does worry about memory usage
 (and is more memory-efficient than glibc).
 
@@ -973,6 +964,12 @@
 the targets that it supports.  That is the best place to look.
 If you have `info' and the gdb `info' files installed you can run
 "info -f gdb.info -n Remote" to view the relevant section.
+
+6.1 BDM Support
+
+ftp://ftp.lpr.e-technik.tu-muenchen.de/pub/bdm/
+
+FIXME: Unfinished.
 
 7. S Records, etc.
 
@@ -1000,6 +997,8 @@
 8.1 What embedded targets are supported?
 
 Here is a partial list.
+Targets are being added all the time so this list will always
+be out of date.
 
 They are named by the argument one would use with the --target= option
 of `configure'.
@@ -1013,6 +1012,7 @@
 i386-coff
 i386-elf
 i960-coff
+m32r-elf
 m68k-aout
 m68k-coff
 mips-ecoff
@@ -1075,8 +1075,11 @@
 
 10.2 Online documentation
 
-Documentation for the GNU tools may be found in
-http://www.cygnus.com/library-dir.html.
+Documentation for the GNU tools as packaged by Cygnus may be found in
+http://www.cygnus.com/pubs/gnupro.
+
+??? If someone has an FSF URL for online versions of the docs,
+please let me know so I can add it here.  /Doug
 
 10.3 Bug reporting
 
@@ -1095,7 +1098,7 @@
 right to the page you need to read for GCC.
 
 Failing that, always include the following information:
-- version number (e.g. gcc-2.7.2.1)
+- version number (e.g. gcc-2.8.1)
 - configuration (the arguments you passed to `configure')
 - type of system you are compiling on (e.g. i386-linux, sparc-solaris2),
   ideally this is the result of the `config.guess' program that is included