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

Paul Cadaret rtems at usd.com
Tue Dec 30 16:33:46 UTC 2003


Joel ,
I listed a number of tools at the bottom of my post.  I thought it would 
be important. Here's an excerpt.

    rtems> type gcc
    gcc is /tools/local/bin/gcc
    rtems> gcc --version
    2.95.2
    rtems>

Thanks.
Paul


Joel Sherrill wrote:

> 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