m68k-rtems-gcc toolchain build problem on Solaris-7

Joel Sherrill joel.sherrill at OARcorp.com
Tue Dec 30 14:58:53 UTC 2003


What native compiler are you using?

--joel

Paul Cadaret wrote:

> With help from Thomas (see below) I used the files he pointed out at
>
> ftp://ftp.rtems.com/pub/rtems/releases/4.6.0pre5/tools
>
> to run the build according to the PDF file at
> http://www.rtems.com/onlinedocs/releases/rtemsdocs-4.6.0pre5/share/rtems/pdf/started.pdf 
>
> and I followed the PDF file instructions carefully for:
>
>     4.1.2 Unarchiving the Tools
>     4.1.3 Applying RTEMS Patches,
>             Apply RTEMS Patch to GCC,
>             Apply RTEMS Patch to binutils,
>             Apply RTEMS Patch to newlib
>     4.1.4.2 Using configure and make,
>                 Configuring and Building BINUTILS,
>                 Configuring and Building GCC and NEWLIB
>
> Binutils built and installed without error.
>
> Building gcc-3.2.3 died as follows:
>
>       1113
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/gcc/xgcc 
>
>     -B/sd/c0t8d0/opt1/web/sites/ftp.rtems.com/
>       1113  tools/gcc-3.2.3/build.m68k-rtems/gcc/ -nostdinc
>
> -B/sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/m 
>
>       1113  68k-rtems/newlib/ -isystem
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/m68k-rtems/newlib/targ-i 
>
>       1113  nclude -isystem
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/src/newlib/libc/include 
>
>     -B/tools/local.m68k-rtems/m6
>       1113  8k-rtems/bin/ -B/tools/local.m68k-rtems/m68k-rtems/lib/
>     -isystem /tools/local.m68k-rtems/m68k-rtems/include -O2 -I../../src/
>       1113  gcc/../newlib/libc/sys/rtems/include -DIN_GCC
>     -DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes
>     -Wmissing-proto
>       1113  types -isystem ./include   -g -DHAVE_GTHR_DEFAULT
>     -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I.
>     -I../../src/g
>       1113  cc -I../../src/gcc/. -I../../src/gcc/config
>     -I../../src/gcc/../include  -DL_floatdisf -c ../../src/gcc/libgcc2.c
>     -o libgcc/.
>       1113  /_floatdisf.o
>
>       1114
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/gcc/xgcc 
>
>     -B/sd/c0t8d0/opt1/web/sites/ftp.rtems.com/
>       1114  tools/gcc-3.2.3/build.m68k-rtems/gcc/ -nostdinc
>
> -B/sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/m 
>
>       1114  68k-rtems/newlib/ -isystem
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/m68k-rtems/newlib/targ-i 
>
>       1114  nclude -isystem
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/src/newlib/libc/include 
>
>     -B/tools/local.m68k-rtems/m6
>       1114  8k-rtems/bin/ -B/tools/local.m68k-rtems/m68k-rtems/lib/
>     -isystem /tools/local.m68k-rtems/m68k-rtems/include -O2 -I../../src/
>       1114  gcc/../newlib/libc/sys/rtems/include -DIN_GCC
>     -DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes
>     -Wmissing-proto
>       1114  types -isystem ./include   -g -DHAVE_GTHR_DEFAULT
>     -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I.
>     -I../../src/g
>       1114  cc -I../../src/gcc/. -I../../src/gcc/config
>     -I../../src/gcc/../include  -DL_fixunsdfsi -c
>     ../../src/gcc/libgcc2.c -o libgcc/
>       1114  ./_fixunsdfsi.o
>
>       1115  In file included from
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/gcc/include/syslimits.h:7, 
>
>       1116                   from
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/gcc/include/limits.h:11, 
>
>       1117                   from ../../src/gcc/libgcc2.c:1166:
>       1118
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/gcc/include/limits.h:132:75: 
>
>     no include path in whi
>       1118  ch to find limits.h
>       1119  make[2]: *** [libgcc/./_fixunsdfsi.o] Error 1
>       1120  make[2]: Leaving directory
>
> `/sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/gcc' 
>
>       1121  make[1]: *** [stmp-multilib] Error 2
>       1122  make[1]: Leaving directory
>
> `/sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/gcc' 
>
>       1123  make: *** [all-gcc] Error 2
>
> ../../src/gcc/libgcc2.c looks like:
>
>       1155  #ifdef L_fixunsdfsi
>       1156  /* Reenable the normal types, in case limits.h needs 
> them.  */
>       1157  #undef char
>       1158  #undef short
>       1159  #undef int
>       1160  #undef long
>       1161  #undef unsigned
>       1162  #undef float
>       1163  #undef double
>       1164  #undef MIN
>       1165  #undef MAX
>       1166  #include <limits.h>            <<<==============  OK
>
> Note that ../src/gcc is where I unpacked the gcc-3.2.3 source tree and
> applied the patches.
> The above file includes  ./gcc/include/limits.h:
>      9  #ifndef _LIBC_LIMITS_H_
>     10  /* Use "..." so that we find syslimits.h only in this same
> directory.  */
>     11  #include "syslimits.h"    <<<===============OK
>     12  #endif
>     13  #ifndef _LIMITS_H___
>     14  #define _LIMITS_H___
>
> The above file includes ./gcc/include/syslimits.h:
>      1  /* syslimits.h stands for the system's own limits.h file.
>      2     If we can use it ok unmodified, then we install this text.
>      3     If fixincludes fixes it, then the fixed version is installed
>      4     instead of this text.  */
>      5
>      6  #define _GCC_NEXT_LIMITS_H              /* tell gcc's limits.h
> to recurse */
>      7  #include_next <limits.h>    <<<============= dies here searching
> for a secondary instance of limits.h
>      8  #undef _GCC_NEXT_LIMITS_H
>
> What is "the system's own limits.h file" ???  linux?  solaris? newlib?
> rtems?
> The "#include_next" is a feature of the newer gcc's
>
>
> Disecting my build log line 1114 above looks like this:
>
>
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/gcc/xgcc 
>
>     \
>
>
> -B/sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/gcc/ 
>
>     \
>             -nostdinc \
>
>
> -B/sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/m68k-rtems/newlib/ 
>
>     \
>             -isystem
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/m68k-rtems/newlib/targ-include 
>
>     \
>             -isystem
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/src/newlib/libc/include 
>
>     \
>             -B/tools/local.m68k-rtems/m68k-rtems/bin/ \
>             -B/tools/local.m68k-rtems/m68k-rtems/lib/ \
>             -isystem /tools/local.m68k-rtems/m68k-rtems/include \
>             -O2 \
>             -I../../src/gcc/../newlib/libc/sys/rtems/include \
>             -DIN_GCC -DCROSS_COMPILE   \
>             -W -Wall -Wwrite-strings -Wstrict-prototypes
>     -Wmissing-prototypes \
>             -isystem ./include   \
>             -g \
>             -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
>     -Dinhibit_libc \
>             -I. \
>             -I. \
>             -I../../src/gcc \
>             -I../../src/gcc/. \
>             -I../../src/gcc/config \
>             -I../../src/gcc/../include  \
>             -DL_fixunsdfsi \
>             -c \
>             ../../src/gcc/libgcc2.c \
>             -o libgcc/./_fixunsdfsi.o
>
>  From my  build directory
> (/sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/gcc) 
>
> if I run the command below
>
>     find .. ../../src /tools/local.m68k-rtems -follow -name limits.h 
> -print
>
> shows the following:
>
>     find: ../gcc/cp/stage1: No such file or directory
>     find: ../gcc/cp/stage2: No such file or directory
>     find: ../gcc/cp/stage3: No such file or directory
>     find: ../gcc/cp/stage4: No such file or directory
>     ../gcc/cp/include/limits.h
>     find: ../gcc/fixinc/stage1: No such file or directory
>     find: ../gcc/fixinc/stage2: No such file or directory
>     find: ../gcc/fixinc/stage3: No such file or directory
>     find: ../gcc/fixinc/stage4: No such file or directory
>     ../gcc/fixinc/include/limits.h
>     ../gcc/include/limits.h
>     ../../src/gcc/fixinc/tests/base/sys/limits.h
>     ../../src/libstdc++-v3/config/cpu/generic/bits/limits.h
>     ../../src/libstdc++-v3/include/c_compatibility/limits.h
>     ../../src/libstdc++-v3/include/c_shadow/limits.h
>     ../../src/newlib/newlib/libc/include/limits.h
>     ../../src/newlib/newlib/libc/sys/linux/include/limits.h
>     ../../src/newlib/newlib/libc/sys/rtems/include/limits.h
>     ../../src/newlib/newlib/libc/sys/rtems/machine/limits.h
>
> The above list shows --ALL-- of the instances of  files named "limits.h"
> available to this build;  in fact, everything
> that might possibly pertain to the RTEMS tool sources I downloaded.
>
>
> The file "./include/limits.h"  (aka ../gcc/include/limits.h) is the file
> that xgcc finds on line 1166 above.
> The file "syslimits.h"  tries to use the "#include_next" mechanism to
> find a secondary "limits.h",  however,
> the xgcc include path doesn't have any more files along the path.   As
> best I can determine the xgcc include path
> should effectively be (from top to bottom):
>     ../../src/gcc/../newlib/libc/sys/rtems/include
>     .
>     ../../src/gcc
>     ../../src/gcc/config
>     ../../src/gcc/../include
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/build.m68k-rtems/m68k-rtems/newlib/targ-include 
>
>
> /sd/c0t8d0/opt1/web/sites/ftp.rtems.com/tools/gcc-3.2.3/src/newlib/libc/include 
>
>     /tools/local.m68k-rtems/m68k-rtems/include
>     ./include
>
> Since 'configure' builds the makefiles here and I have no idea what it
> is trying to accomplish here, I really don't know
> what to fix.   As best I can tell the Solaris toolchain is broken.
>
> Some further data:
>
>     rtems> uname -a
>     SunOS u2 5.7 Generic_106541-08 sun4u sparc SUNW,UltraSPARC-IIi-Engine
>
>     rtems> perl --version
>     This is perl, v5.6.0 built for sun4-solaris
>
>     rtems> autoconf --version
>     autoconf (GNU Autoconf) 2.59
>
>     rtems> automake --version
>     automake (GNU automake) 1.8
>
>     rtems> gmake --version
>     GNU Make 3.80
>
>     rtems> gcc --version
>     2.95.2
>
>     rtems> type m68k-rtems-as
>     m68k-rtems-as is /tools/local.m68k-rtems/bin/m68k-rtems-as
>
>     rtems> m68k-rtems-as --version
>     GNU assembler 2.13.2.1
>
> I would appreciate some guidance here.
>
> Thanks much.
> Paul
> ------------------------------------------------------------------------------------------------------------- 
>
> Thomas Doerfler wrote:
>
> >Paul,
> >
> >the files you are looking for are actually located under
> >
> >ftp://ftp.rtems.com/pub/rtems/releases/4.6.0pre5/tools/rtems-4.6-gcc3.2.3newlib1.11.0-1/source/newlib-1.11.0-rtems-20030605.diff 
>
> >
> >and
> >
> >ftp://ftp.rtems.com/pub/rtems/releases/4.6.0pre5/tools/rtems-4.6-gcc3.2.3newlib1.11.0-1/source/gcc-3.2.3-rtems-20030826.diff 
>
> >
> >wkr,
> >    Thomas.
> >
> >
> >
> >>The web page
> >>http://www.rtems.com/onlinedocs/releases/rtemsdocs-4.6.0pre5/share/rtems/html/ 
>
> >>has an entry that referrs to ' Getting Started with RTEMS for C/C++
> >>Users
> >><http://www.rtems.com/onlinedocs/releases/rtemsdocs-4.6.0pre5/share/rtems/html/started/index.html>' 
>
> >>that is a PDF file
> >>'started-6.pdf'.
> >>
> >>On page 14 of the PDF file it says:
> >>
> >>    RTEMS Speci c Tool Patches and Scripts
> >>
> >>        FTP Site: ftp.rtems.com
> >>        Directory: /pub/rtems/releases/4.6.0pre5/c_tools/source
> >>        File: newlib-1.11.0-rtems-20030605.diff
> >>        File: gcc-3.2.3-rtems-20030507a.diff
> >>
> >>The directory /pub/rtems/releases/4.6.0pre5/c_tools does not exist.
> >>
> >>
> >>Where can these patch diffs be found now?
> >>
> >>thanks much.
> >>paul
> >>
> >>
> >
> >--------------------------------------------
> >IMD Ingenieurbuero fuer Microcomputertechnik
> >Thomas Doerfler           Herbststrasse 8
> >D-82178 Puchheim          Germany
> >email:    Thomas.Doerfler at imd-systems.de
> >PGP public key available at: http://www.imd-
> >systems.de/pgp_keys.htm
> >
> >
> >
>
>
>






More information about the users mailing list