2003-01-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>

* build45.t: Several fixes and additions.
This commit is contained in:
Ralf Corsepius
2003-01-22 13:47:32 +00:00
parent 8a86d78dec
commit 537449c28d
2 changed files with 70 additions and 9 deletions

View File

@@ -1,3 +1,7 @@
2003-01-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* build45.t: Several fixes and additions.
2003-01-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de> 2003-01-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* FAQ.texi: Rename section "Building RTEMS 4.5" into "Building * FAQ.texi: Rename section "Building RTEMS 4.5" into "Building

View File

@@ -57,6 +57,8 @@ getting it working may not be easy.
@subsection Do I need gcc-2.9x for cross compilation? @subsection Do I need gcc-2.9x for cross compilation?
[FIXME: Partially obsolete]
Not necessarily, but gcc-2.9x is highly recommended, because most development Not necessarily, but gcc-2.9x is highly recommended, because most development
has taken place using gcc-2.9x and previous versions of gcc are not actively has taken place using gcc-2.9x and previous versions of gcc are not actively
supported in RTEMS anymore (@ref{Can I use a non-gcc cross-toolchain?}). supported in RTEMS anymore (@ref{Can I use a non-gcc cross-toolchain?}).
@@ -64,13 +66,13 @@ supported in RTEMS anymore (@ref{Can I use a non-gcc cross-toolchain?}).
@subsection Where to get autoconf automake ld gcc etc.? @subsection Where to get autoconf automake ld gcc etc.?
The sources of all gnutools are available at any The sources of all gnutools are available at any
@uref{GNU,ftp://ftp.gnu.org} mirror. @uref{ftp://ftp.gnu.org,GNU} mirror.
Native Linux binaries should come with any Linux distribution. Native Linux binaries should come with any Linux distribution.
Native Cygwin binaries should be available at Cygnus. Native Cygwin binaries should be available at Cygnus.
GNU-Toolchain binaries (gcc, binutils etc.) for Linux and patches required GNU-Toolchain binaries (gcc, binutils etc.) for Linux and patches required
to build them from source are available from to build them from source are available from
@uref{OAR Corporation,ftp://ftp.oarcorp.com}. @uref{ftp://ftp.oarcorp.com,OAR Corporation}.
@section Issues when building RTEMS @section Issues when building RTEMS
@@ -89,8 +91,36 @@ cd build
/usr/local/src/rtems-@value{VERSION}/configure [options] /usr/local/src/rtems-@value{VERSION}/configure [options]
@end example @end example
@subsection Why can I not build RTEMS inside of the source tree? @subsection When running bootstrap weird thing start to happen
Many possibile causes: Most likely one of these:
@itemize @bullet
@item You are trying to build RTEMS with insufficient or incompatible
versions of autoconf and automake.
@item The autotools can't be found because your $PATH might not be set up
correctly (Cf. @ref{How to set up $PATH?})
@item You have used configure-script options which interfer with RTEMS
configuration (Cf. @ref{configure --program-[prefix|suffix|transform-name]})
@item You have tripped over a bug in RTEMS ;)
@end itemize
@subsection configure xxx cannot create executables
While running a configure script, you see a message like this:
@example
checking for m68k-rtems-gcc... (cached) m68k-rtems-gcc
checking for C compiler default output... configure: error: C compiler cannot create executables
configure: error: /bin/sh '../../../../rtems-ss-@value{VERSION}/c/make/configure'
failed for c/make
@end example
This kind of error message typically indicates a broken toolchain, broken
toolchain installation or broken user environment.
Examinating the @code{config.long} corresponding to the the failing
configure script should provide further information of what
actually goes wrong (In the example above: @code{<target>/c/<BSP>/make/config.log})
@subsection Why can I not build RTEMS inside of the source tree?
The build-directory hierarchy is setup dynamically at configuration time. The build-directory hierarchy is setup dynamically at configuration time.
@@ -130,7 +160,7 @@ If using OAR Corporation's rpms for the toolchain, simply prepend
@subsection Can I build RTEMS Canadian Cross? @subsection Can I build RTEMS Canadian Cross?
RTEMS >= 4.6.0 configuration is prepared for building RTEMS Canadian Cross, RTEMS >= 4.6.0 configuration is prepared for building RTEMS Canadian Cross,
however building RTEMS Canadian Cross is known to be in it's infancy, so however building RTEMS Canadian Cross is known to be in its infancy, so
your mileage may vary (See @code{README.cdn-X} in the toplevel directory of your mileage may vary (See @code{README.cdn-X} in the toplevel directory of
RTEMS's source tree for details.) RTEMS's source tree for details.)
@@ -151,6 +181,8 @@ See @ref{How to merge pre-RTEMS-4.5.0 BSPs into RTEMS-4.5.0?}.
@subsection make debug_install / make profile_install @subsection make debug_install / make profile_install
[FIXME:Partially obsolete]
These make targets are not supported anymore. Instead, use: These make targets are not supported anymore. Instead, use:
@example @example
@@ -160,6 +192,8 @@ make VARIANT=PROFILE install
@subsection make debug / make profile @subsection make debug / make profile
[FIXME:Partially obsolete]
These make targets are not supported anymore. These make targets are not supported anymore.
Instead, use: Instead, use:
@@ -185,7 +219,6 @@ These files are generated by auto* tools, cf.
@subsection Editing auto* generated files @subsection Editing auto* generated files
RTEMS uses automake, therefore @b{never}, @b{ever}, @b{ever} RTEMS uses automake, therefore @b{never}, @b{ever}, @b{ever}
edit Makefile.ins, Makefiles, configure or other auto* generated files. edit Makefile.ins, Makefiles, configure or other auto* generated files.
Changes to them will be swapped away soon and will get lost. Changes to them will be swapped away soon and will get lost.
@@ -231,13 +264,14 @@ any recent Linux distribution should work, too.
@subsection How to merge pre-RTEMS-4.5.0 BSPs into RTEMS-4.5.0? @subsection How to merge pre-RTEMS-4.5.0 BSPs into RTEMS-4.5.0?
The simple answer is that between 4.0 and now, RTEMS has moved to automake [FIXME:Partially obsolete]
The simple answer is that between 4.0 and 4.5.0, RTEMS has moved to automake
and greater compliance with GNU conventions. and greater compliance with GNU conventions.
In 4.0, there was a single configure script at the top of the tree. In 4.0, there was a single configure script at the top of the tree.
Now RTEMS is configured more like other GNU tools -- as a collection of Now RTEMS is configured more like other GNU tools -- as a collection of
configurable entities. configurable entities.
Each BSP now has its own configure script. Each BSP now has its own configure script.
I highly recommend you look at the Makefile.am's, configure.ac, of a similar I highly recommend you look at the Makefile.am's, configure.ac, of a similar
BSP. You might even want to consider running "bootstrap -c" from the top of BSP. You might even want to consider running "bootstrap -c" from the top of
@@ -263,6 +297,13 @@ At present time the bare BSP is in its infancy.
It is known that it can be build for most CPUs RTEMS supports. It is known that it can be build for most CPUs RTEMS supports.
It is also known to work in individual cases, but your mileage may vary. It is also known to work in individual cases, but your mileage may vary.
@subsection What is the cpukit?
[FIXME:To be extended]
One major change having been introduced to RTEMS-4.6.0 is the cpukit,
located below the directory @code{cpukit/} in RTEMS's toplevel directory.
@subsection Multilib vs. RTEMS CPU-variants @subsection Multilib vs. RTEMS CPU-variants
The GNU toolchain applies a specific classification of similar CPUs into The GNU toolchain applies a specific classification of similar CPUs into
@@ -351,6 +392,12 @@ files. I.e. auto* generated files will get automatically updated.
Configuring RTEMS in maintainer-mode will require to have autoconf, automake Configuring RTEMS in maintainer-mode will require to have autoconf, automake
and underlying tools installed (Cf. @ref{Required Tools}). and underlying tools installed (Cf. @ref{Required Tools}).
@subsection configure --program-[prefix|suffix|transform-name]
These are generic configure script options automatically added by autoconf.
RTEMS configuration does not support these, worse, they interfer with
RTEMS's configuration -- i.e. @b{do not use them}.
@subsection configure.ac vs. configure.in @subsection configure.ac vs. configure.in
autoconf < 2.50 used the name @code{configure.in} for it's input files. autoconf < 2.50 used the name @code{configure.in} for it's input files.
@@ -358,4 +405,14 @@ autoconf >= 2.50 recommends using the name @code{configure.ac}, instead.
RTEMS > 4.5.0 applies autoconf >= 2.50, therefore all former RTEMS's RTEMS > 4.5.0 applies autoconf >= 2.50, therefore all former RTEMS's
@code{configure.in}'s have been renamed into @code{configure.ac} and @code{configure.in}'s have been renamed into @code{configure.ac} and
adapted to autoconf >= 2.50 demands. have been adapted to autoconf >= 2.50 demands.
@subsection Reporting bugs
Several possibilities (In decreasing preference):
@itemize @bullet
@item File a bug report at @uref{http://www.oarcorp.com/cgi-bin/gnatweb.pl,OAR's GNAT}
@item Send an email to @uref{mailto:rtems-bugs@@OARcorp.com,rtems-bugs@@OARcorp.com}
@item Report your problem to one of the RTEMS mailing lists
(Cf. @ref{Are there any mailing lists?}).
@end itemize