RSB 4.11.2-rc4 rtems-arm build fails on Windows

Chris Johns chrisj at rtems.org
Sat Apr 22 22:47:36 UTC 2017


On 23/4/17 7:42 am, Linda Huxley wrote:
> Hi Chris,
> 
> I dug around in the the ARM build log file, and first I'm seeing this:
> 
> make[6]: Entering directory
> '/C/opt/rtems/r4.11.2/rtems/build/ark4r1/arm-rtems4.11-kernel-4.11.2-rc4-1-4.11.2-rc4/build/arm-rtems4.11/c/altcycv_devkit/lib/libbsp/arm/altera-cyclone-v'
> 
> 
> then a little later:
> 
> arm-rtems4.11-gcc.exe: error:
> ../../../../../../../../rtems-4.11.2-rc4/c/src/lib/libbsp/arm/altera-cyclone-v/hwlib/src/hwmgr/alt_16550_uart.c:
> No such file or directory
> 
> When I combine the directory with the path to "alt_16550_uart.c" I get a
> string with a length of 264 bytes.  I did some testing, and it seems
> that at some point Windows does just blindly concatenate the two strings
> together.  So the resulting string is about 8 bytes too long.

Thanks for the detailed report and investigation.

> I'm not sure what the best fix might be, but I'll see if removing
> "/c/opt/rtems" from the build path will help.

There is no clean way to resolve this issue. The LM32 has a problem with
long file names when building the tool set. The ticket
https://devel.rtems.org/ticket/2992#comment:1 has some details.

To sum up the Windows win32 API has a file length limit which can be
worked around in some cases by unicode encoding the file name and adding
a specific prefix. However not all calls work so managing this issue is
complex. The Python developers have looked into this in detail in an
attempt to see if Python can smooth over the issues [1] and have decided
not to make any changes. Last week I spent a while working with Python
and the win32 API to see if I can work around the problem in the RSB
however I would not find a way to navigate the issues.

The only way I can see we can manage this is to shorten the paths used.

On a positive note recent Windows 10 versions, which have not arrived on
my machines, have removed the API limit [2]. You need a specific version
or later and you need to make some low level changes in the registry to
enable it.

My long term view is to look at shortening paths where we can and to
look forward to this new change in Windows.

Chris

[1] https://bugs.python.org/issue18199

[2]
https://blogs.msdn.microsoft.com/jeremykuhne/2016/06/21/more-on-new-net-path-handling/



More information about the users mailing list