[PATCH] bsps/arm: fix nested extern decl. warnings brought by CMSIS files update

Christian MAUDERER christian.mauderer at embedded-brains.de
Tue Jul 25 15:32:20 UTC 2023


On 2023-07-25 16:20, Karel Gardas wrote:
> On 7/25/23 15:32, Sebastian Huber wrote:
>>
>>
>> On 21.07.23 17:37, Karel Gardas wrote:
>>> ---
>>>   bsps/arm/include/cmsis_gcc.h | 4 +++-
>>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/bsps/arm/include/cmsis_gcc.h b/bsps/arm/include/cmsis_gcc.h
>>> index 4f0762d6dc..9e867348d2 100644
>>> --- a/bsps/arm/include/cmsis_gcc.h
>>> +++ b/bsps/arm/include/cmsis_gcc.h
>>> @@ -30,7 +30,9 @@
>>>   #pragma GCC diagnostic ignored "-Wsign-conversion"
>>>   #pragma GCC diagnostic ignored "-Wconversion"
>>>   #pragma GCC diagnostic ignored "-Wunused-parameter"
>>> -
>>> +#ifdef __rtems__
>>> +#pragma GCC diagnostic ignored "-Wnested-externs"
>>> +#endif /* __rtems__ */
>>>   /* Fallback for __has_builtin */
>>>   #ifndef __has_builtin
>>>     #define __has_builtin(x) (0)
>>
>> I would disable this warning only in __cmsis_start() with a push/pop 
>> pragma.
> 
> Will look into it. The way it was done was to reuse as much as possible 
> of the current file infrastructure.
> 
>> I think you have to add also a
>>
>>   * Modifications Copyright (C) Karel Gardas
>>
>> if you change the file, see also:
> 
> It's a shame to need to copyright single liners. IMHO license does not 
> require that precisely. What about to just add:
> 
> /* The file was modified for the purposes of RTEMS project */
> 
> right at the beginning (1st line) of file?
> 

Apache clearly states that modified files have to be marked:

4.b.: You must cause any modified files to carry prominent notices 
stating that You changed the files

Not sure whether the big 'You' means that it is a person or a project. 
RTEMS project distributes the files so "adapted by RTEMS contributors" 
might work?

By the way: I just noted that we now most likely also need a 
LICENSE.Apache-2.0 file in the root directory of RTEMS.

>> https://softwareengineering.stackexchange.com/questions/220068/file-with-apache-2-0-and-my-modifications
>>
>> In general, some advice for dealing with Apache 2.0 files in the RTEMS 
>> Software Engineering manual would be nice.
> 
> That would be great to have, but who would do that? > Or perhaps we may
> distill right behavioral patterns from our competitors: Zephyr/NuttX?
> 
> E.g. 
> https://github.com/apache/nuttx/commits/master/net/tcp/tcp_getsockopt.c 
> -- file modified by several persons and none is mentioned (do all of 
> them have signed contributor agreement with ASF?)
> 
> and
> 
> https://github.com/zephyrproject-rtos/zephyr/commits/main/kernel/paging/statistics.c -- file modified by jfisher-no (from Nordic Semiconductor) and yet, file clearly copyrighted by Intel and no message about modification by anyone else.
> 

Nuttx and Zephyr are both Apache-Licensed. Both files that you have 
linked seem to be developed for the systems. At least I didn't find an 
"import from xyz" commit or similar hint. I think that makes the 
situation different compared to our import of Apache licensed third 
party code into a non-Apache licensed project.

> Another idea my be to go with what Joel suggested in the original 
> CMSISv5 inclusion thread: put any modification into #ifdef __rtems__ / 
> #endif and make that clearly visible that file was changed this way. 
> Nothing more needed...

Marking changes with #ifdef __rtems__ is always a good idea because it 
makes porting the changes during the next update simpler.

I would expect that at least a general "modified for RTEMS" or "modified 
by RTEMS contributors" statement is still necessary.

If you want to get a definitive answer what is the right solution and 
end all the discussions, you might consider asking that question on the 
FSFE License Question list and post the result here and / or add it to 
the manual (assuming that they agree that the answer is published):

   https://fsfe.org/activities/legal.en.html

Best regards

Christian

> 
> Thanks!
> Karel
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel

-- 
--------------------------------------------
embedded brains GmbH & Co. KG
Herr Christian MAUDERER
Dornierstr. 4
82178 Puchheim
Germany
email:  christian.mauderer at embedded-brains.de
phone:  +49-89-18 94 741 - 18
mobile: +49-176-152 206 08

Registergericht: Amtsgericht München
Registernummer: HRA 117265
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/


More information about the devel mailing list