parallel make failure?

Chris Johns chrisj at rtems.org
Wed Nov 29 02:13:09 UTC 2017


On 28/11/2017 17:27, Sebastian Huber wrote:
> On 28/11/17 02:12, Chris Johns wrote:
>> On 27/11/2017 18:07, Sebastian Huber wrote:
>>> On 25/11/17 23:02, Chris Johns wrote:
>>>> On 23/11/17 9:33 pm, Sebastian Huber wrote:
>>>>> bsps/include
>>>>> bsps/$arch/include
>>>>> bsps/$arch/$bsp/include
>>>>> cpukit/include
>>>>> cpukit/libnetworking/include
>>>>> cpukit/score/cpu/$arch/include
>>> This generates a lot of header file moves that could be avoided with we use
>> We are moving a lot of files. This specific change is around 140 moves and so
>> not a big difference in the scale of things.
> 
> These header files contain the implementation details of the CPU ports. I looked
> at the history of these files quite regularly.

This is something that effects all the files we move so I am not sure this is a
good reason to leave some files in place. Git log has --follow option so you can
walk the files history backwards.

We should be looking to get the files into places we want and I like the
'include' being last on all paths.

> 
>>
>>> cpukit/score/cpu/$arch
>>>> as an include directory.
>> We need to handle libdl's headers as well as these arch specific score headers.
>> I suggest:
>>
>> cpukit/include
>> cpukit/@RTEMS_CPU@/include
>> cpukit/libnetworking/include
>> bsps/include
>> bsps/@RTEMS_CPU@/include
>> bsps/@RTEMS_CPU@/@RTEMS_BSP@/include
>>
>> I have used the automake defines values in the build system rather than $arch
>> and $bsp. The `cpukit/@RTEMS_CPU@` may be misleading.
>>
>> The other solution is to move the libdl headers into the score.
> 
> I would move the CPU-specific headers of libdl to cpukit/score/cpu.
> 

I am ok with this happening, they can be placed where ever the other CPU headers
end up.

>>
>> Also we cannot use the actual BSP's name we have to use the base name and not an
>> alias. I am not sure if @RTEMS_BSP@ is the aliased name or not.
> 
> With $bsp I mean the @RTEMS_BSP@, the BSP base directory, not the actual BSP name.
> 

Great. This makes sense.

>>
>>>> This is looking sensible but I am not sure how to handle the install phase.
>>>>
>>>> Do we have per ARCH and/or BSP makefile .in files that list the headers for
>>>> that
>>>> ARCH or BSP in that part of the tree and we have the Makefile.am subst to
>>>> include the specific file, for example `include @RTEMS_CPU@/@RTEMS_BSP at .am? We
>>>> cannot use .am files because the subst is during configure and not during
>>>> bootstrap. If we did this would we have these file generated by the contents of
>>>> the directory, that is all headers are installed?
>>>>
>>>> I just hope we do not fall into an Automake hole here.
>>> I would one bsps/Makefile.am which includes
>>>
>>> bsps/$arch/$arch.am
>> I am not sure what you mean here with `$arch`. Do you mean we have a number of
>> explicitly named files or some form of macro replacement?
> 
> arch is one of { arm, bfin, epiphany, i386, lm32, m32c, m68k, mips, moxie,
> nios2, no_cpu, or1k, powerpc, riscv, sh, sparc, sparc64, v850 }. For example:
> 
> bsps/lm32/lm32.am
> 

OK.

>>
>>> to keep the file reasonably small. Then I would introduce
>>>
>>> AM_CONDITIONAL(BSPS_$arch, ...)
>>> AM_CONDITIONAL(BSPS_$arch_$bspdir)
>> Where are the BSP headers listed?
> 
> In bsps/lm32/lm32.am:
> 
> if BSPS_LM32_MILKYMIST
> include_HEADERS += bsps/lm32/milkymist/include/bsp.h
> include_HEADERS += bsps/lm32/milkymist/include/tm27.h
> ...
> endif
> 
> In Makefile.am or bsps/Makefile.am:
> 
> include $(srcdir)/lm32/lm32.am
> 

OK.

> I don't know if this AM_CONDITIONAL() stuff works well, but can we make it worse
> than it is?

This will work.

> 
> A general question, why do we need more than one configure.ac to build RTEMS,
> the BSPs and the testsuites?
> 

It was split to support a separate CpuKit and multilibs. A change would be hard
given it is far to fragile to change.

Chris



More information about the devel mailing list