RTEMS 4.11.0 build fails on Windows
Linda Huxley
lhuxley at shaw.ca
Wed Apr 12 22:53:52 UTC 2017
Hi Chris,
The fix recommended by Gedare worked, and my RTEMS tools build completed
without incident.
Section "5.2.1. RTEMS Tools and Kernel" of the RTEMS User Manual 4.11.99
ends with the following statement:
"You can now build a 3rd party library or an application as defailted in
TBD."
But there are no instructions to build the RTEMS kernel within that
section. Is that what is intended?
I went back to section "3. Quick Start" for instructions on how to build
the kernel. The first command for building the kernel is:
$ export PATH=$HOME/development/rtems/4.12/bin:$PATH
My directory tree is different, so the corresponding command would be:
$ export PATH=/c/opt/rtems/4.11.0/bin:$PATH
But the preceding tools build did not create that directory. Is that right?
I found the following directory instead:
/c/opt/rtems/4.11.0/rtems/build/tmp/sb-Linda/C/msys64/opt/rtems/4.11.0/bin
So I created the "/c/opt/rtems/4.11.0/bin" directory and I copied the
contents of the other bin directory into it. Then I ran the following
commands:
$ export PATH=/c/opt/rtems/4.11.0/bin:$PATH
$ cd /c/opt/rtems
$ mkdir kernel
$ cd kernel
$ git clone git://git.rtems.org/rtems.git rtems
$ cd rtems
$ ./bootstrap -c && ./bootstrap -p && \
/c/opt/rtems/4.11.0/source-builder/sb-bootstrap
$ cd ..
$ mkdir erc32
$ cd erc32
$ /c/opt/rtems/kernel/rtems/configure --prefix=/c/opt/rtems/4.11.0 \
--target=sparc-rtems4.11.0 --enable-rtemsbsp=erc32 --enable-posix
$ make -j 8
However, the final command failed. The following errors occurred:
In file included from C:/opt/rtems/kernel/rtems/tools/build/cklength.c:27:0:
C:/opt/rtems/kernel/rtems/tools/build/cklength.c: In function 'error':
C:/opt/rtems/kernel/rtems/tools/build/cklength.c:251:16: warning:
'_errno' redeclared without dllimport attribute: previous dllimport
ignored [-Wattributes]
extern int errno;
^
In file included from C:/opt/rtems/kernel/rtems/tools/build/eolstrip.c:22:0:
C:/opt/rtems/kernel/rtems/tools/build/eolstrip.c: In function 'error':
C:/opt/rtems/kernel/rtems/tools/build/eolstrip.c:245:16: warning:
'_errno' redeclared without dllimport attribute: previous dllimport
ignored [-Wattributes]
extern int errno;
^
In file included from C:/opt/rtems/kernel/rtems/tools/build/unhex.c:36:0:
C:/opt/rtems/kernel/rtems/tools/build/unhex.c: In function 'error':
C:/opt/rtems/kernel/rtems/tools/build/unhex.c:687:16: warning: '_errno'
redeclared without dllimport attribute: previous dllimport ignored
[-Wattributes]
extern int errno;
^
Those errors look suspiciously like the problem that I ran into with
cfns.h. Is there perhaps a patch or a fix?
Those errors don't terminate the build, but the build fails later with
the following error:
checking for sparc-rtems4.11.0-gcc... no
configure: error: no acceptable cc found in $PATH
Thanks,
Linda
On 2017-04-11 18:35, Chris Johns wrote:
> On 12/04/2017 09:24, Linda Huxley wrote:
>>> That is fine. Please ask any questions, I am more than happy to help.
>>
>> Thanks Chris,
>>R
>> Well, I could use some help getting Worth's patch to work. I have tried
>> making the obvious changes to his patch and I'm still getting a
>> "can't find a file to patch" error. For example, after inserting
>> "/../gcc-4.9.3" into the difference commands in the patch file, I'm
>> seeing the following message from the first difference in the patch:
>>
>> + cd newlib-2.2.0.20150423
>> + chmod -R a+rX,g-w,o-w .
>> + cat /C/opt/rtems/4.11.0/rtems/patches/gcc-4.9.3-20170404-1.patch
>> + patch -p1
>> can't find file to patch at input line 4
>> Perhaps you used the wrong -p or --strip option?
>> The text leading up to this was:
>> --------------------------
>> |diff -Naur gcc-4.9.3-orig/../gcc-4.9.3/gcc/cp/cfns.gperf
>> gcc-4.9.3-fixed/../gcc-4.9.3/gcc/cp/cfns.gperf
>> |--- gcc-4.9.3-orig/../gcc-4.9.3/gcc/cp/cfns.gperf 2014-01-02
>> 17:23:26.000000000 -0500
>> |+++ gcc-4.9.3-fixed/../gcc-4.9.3/gcc/cp/cfns.gperf 2017-04-04
>> 14:35:14.729966600 -0400
>> --------------------------
>> File to patch:
>> Skip this patch? [y]
>> Skipping patch.
>> 2 out of 2 hunks ignored
>>
>> I'd like to know if I'm interpreting the log correctly.
>>
>
> Is this a log fragment from the RSB?
>
>> I am building from this directory:
>>
>> /c/opt/rtems/4.11.0/rtems/
>>
>> Can I assume that the script is in the following directory after the
>> first command that was logged above?:
>>
>> /c/opt/rtems/4.11.0/rtems/build/srg4n2xwm1/newlib-2.2.0.20150423
>>
>
> The patches are in `patches` below `rtems` in the RSB. The script knows
> this and should handle it.
>
>> I can see the target file for the first difference here:
>>
>> /c/opt/rtems/4.11.0/rtems/build/srg4n2xwm1/gcc-4.9.3/gcc/cp/cfns.gperf
>>
>> Do you have any idea about what I might be doing wrong?
>
> Not yet. I ma creating a box to test on. My Windows VM is busy doing
> other things and I have not wanted to update MSYS2 so I have been
> building a Windows box to test builds on. Once it is running I will take
> a look.
>
> Chris
>
More information about the users
mailing list