[PATCH-for-8.0] qemu/osdep.h: Do not declare function prototypes using extern keyword

Philippe Mathieu-Daudé posted 1 patch 1 year ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230320131426.16348-1-philmd@linaro.org
include/qemu/osdep.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH-for-8.0] qemu/osdep.h: Do not declare function prototypes using extern keyword
Posted by Philippe Mathieu-Daudé 1 year ago
By default, C function prototypes declared in headers are visible,
so there is no need to declare them as 'extern' functions. Remove
this redundancy. This also fixes when building under MSYS2:

  C:/msys64/mingw64/include/glib-2.0/glib/gmacros.h:1075:21: error: standard attributes in middle of decl-specifiers
  1075 | # define G_NORETURN [[noreturn]]
        |                     ^
  C:/msys64/code/qemu/src/include/qemu/osdep.h:240:8: note: in expansion of macro 'G_NORETURN'
  240 | extern G_NORETURN
        |        ^~~~~~~~~~

Reported-by: Simon Wörner <contact@simon-woerner.de>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1541
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 include/qemu/osdep.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index f68b5d8708..79c26c748a 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -237,7 +237,7 @@ extern "C" {
  * supports QEMU_ERROR, this will be reported at compile time; otherwise
  * this will be reported at link time due to the missing symbol.
  */
-extern G_NORETURN
+G_NORETURN
 void QEMU_ERROR("code path is reachable")
     qemu_build_not_reached_always(void);
 #if defined(__OPTIMIZE__) && !defined(__NO_INLINE__)
-- 
2.38.1


Re: [PATCH-for-8.0] qemu/osdep.h: Do not declare function prototypes using extern keyword
Posted by Daniel P. Berrangé 1 year ago
On Mon, Mar 20, 2023 at 02:14:26PM +0100, Philippe Mathieu-Daudé wrote:
> By default, C function prototypes declared in headers are visible,
> so there is no need to declare them as 'extern' functions. Remove
> this redundancy. This also fixes when building under MSYS2:
> 
>   C:/msys64/mingw64/include/glib-2.0/glib/gmacros.h:1075:21: error: standard attributes in middle of decl-specifiers
>   1075 | # define G_NORETURN [[noreturn]]
>         |                     ^
>   C:/msys64/code/qemu/src/include/qemu/osdep.h:240:8: note: in expansion of macro 'G_NORETURN'
>   240 | extern G_NORETURN
>         |        ^~~~~~~~~~
> 
> Reported-by: Simon Wörner <contact@simon-woerner.de>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1541

There's already a fix for that issue included in a PULL request from
Thomas:

https://lists.gnu.org/archive/html/qemu-devel/2023-03/msg05225.html

> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>  include/qemu/osdep.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
> index f68b5d8708..79c26c748a 100644
> --- a/include/qemu/osdep.h
> +++ b/include/qemu/osdep.h
> @@ -237,7 +237,7 @@ extern "C" {
>   * supports QEMU_ERROR, this will be reported at compile time; otherwise
>   * this will be reported at link time due to the missing symbol.
>   */
> -extern G_NORETURN
> +G_NORETURN
>  void QEMU_ERROR("code path is reachable")
>      qemu_build_not_reached_always(void);
>  #if defined(__OPTIMIZE__) && !defined(__NO_INLINE__)
> -- 
> 2.38.1
> 

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Re: [PATCH-for-8.0] qemu/osdep.h: Do not declare function prototypes using extern keyword
Posted by Philippe Mathieu-Daudé 1 year ago
On 20/3/23 14:27, Daniel P. Berrangé wrote:
> On Mon, Mar 20, 2023 at 02:14:26PM +0100, Philippe Mathieu-Daudé wrote:
>> By default, C function prototypes declared in headers are visible,
>> so there is no need to declare them as 'extern' functions. Remove
>> this redundancy. This also fixes when building under MSYS2:
>>
>>    C:/msys64/mingw64/include/glib-2.0/glib/gmacros.h:1075:21: error: standard attributes in middle of decl-specifiers
>>    1075 | # define G_NORETURN [[noreturn]]
>>          |                     ^
>>    C:/msys64/code/qemu/src/include/qemu/osdep.h:240:8: note: in expansion of macro 'G_NORETURN'
>>    240 | extern G_NORETURN
>>          |        ^~~~~~~~~~
>>
>> Reported-by: Simon Wörner <contact@simon-woerner.de>
>> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1541
> 
> There's already a fix for that issue included in a PULL request from
> Thomas:
> 
> https://lists.gnu.org/archive/html/qemu-devel/2023-03/msg05225.html

Not the same patch. I'll rebase and post for 8.1 then I guess :)

>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>> ---
>>   include/qemu/osdep.h | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
>> index f68b5d8708..79c26c748a 100644
>> --- a/include/qemu/osdep.h
>> +++ b/include/qemu/osdep.h
>> @@ -237,7 +237,7 @@ extern "C" {
>>    * supports QEMU_ERROR, this will be reported at compile time; otherwise
>>    * this will be reported at link time due to the missing symbol.
>>    */
>> -extern G_NORETURN
>> +G_NORETURN
>>   void QEMU_ERROR("code path is reachable")
>>       qemu_build_not_reached_always(void);
>>   #if defined(__OPTIMIZE__) && !defined(__NO_INLINE__)
>> -- 
>> 2.38.1
>>
> 
> With regards,
> Daniel


Re: [PATCH-for-8.0] qemu/osdep.h: Do not declare function prototypes using extern keyword
Posted by Thomas Huth 1 year ago
On 20/03/2023 14.47, Philippe Mathieu-Daudé wrote:
> On 20/3/23 14:27, Daniel P. Berrangé wrote:
>> On Mon, Mar 20, 2023 at 02:14:26PM +0100, Philippe Mathieu-Daudé wrote:
>>> By default, C function prototypes declared in headers are visible,
>>> so there is no need to declare them as 'extern' functions. Remove
>>> this redundancy. This also fixes when building under MSYS2:
>>>
>>>    C:/msys64/mingw64/include/glib-2.0/glib/gmacros.h:1075:21: error: 
>>> standard attributes in middle of decl-specifiers
>>>    1075 | # define G_NORETURN [[noreturn]]
>>>          |                     ^
>>>    C:/msys64/code/qemu/src/include/qemu/osdep.h:240:8: note: in expansion 
>>> of macro 'G_NORETURN'
>>>    240 | extern G_NORETURN
>>>          |        ^~~~~~~~~~
>>>
>>> Reported-by: Simon Wörner <contact@simon-woerner.de>
>>> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1541
>>
>> There's already a fix for that issue included in a PULL request from
>> Thomas:
>>
>> https://lists.gnu.org/archive/html/qemu-devel/2023-03/msg05225.html
> 
> Not the same patch. I'll rebase and post for 8.1 then I guess :)
> 
>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>>> ---
>>>   include/qemu/osdep.h | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
>>> index f68b5d8708..79c26c748a 100644
>>> --- a/include/qemu/osdep.h
>>> +++ b/include/qemu/osdep.h
>>> @@ -237,7 +237,7 @@ extern "C" {
>>>    * supports QEMU_ERROR, this will be reported at compile time; otherwise
>>>    * this will be reported at link time due to the missing symbol.
>>>    */
>>> -extern G_NORETURN
>>> +G_NORETURN

Removing the "extern" sounds like a better idea than swapping it... since my 
PR was not in the staging branch yet, I went ahead and replaced the patch.

  Thomas


Re: [PATCH-for-8.0] qemu/osdep.h: Do not declare function prototypes using extern keyword
Posted by Philippe Mathieu-Daudé 1 year ago
On 20/3/23 15:04, Thomas Huth wrote:
> On 20/03/2023 14.47, Philippe Mathieu-Daudé wrote:
>> On 20/3/23 14:27, Daniel P. Berrangé wrote:
>>> On Mon, Mar 20, 2023 at 02:14:26PM +0100, Philippe Mathieu-Daudé wrote:
>>>> By default, C function prototypes declared in headers are visible,
>>>> so there is no need to declare them as 'extern' functions. Remove
>>>> this redundancy. This also fixes when building under MSYS2:
>>>>
>>>>    C:/msys64/mingw64/include/glib-2.0/glib/gmacros.h:1075:21: error: 
>>>> standard attributes in middle of decl-specifiers
>>>>    1075 | # define G_NORETURN [[noreturn]]
>>>>          |                     ^
>>>>    C:/msys64/code/qemu/src/include/qemu/osdep.h:240:8: note: in 
>>>> expansion of macro 'G_NORETURN'
>>>>    240 | extern G_NORETURN
>>>>          |        ^~~~~~~~~~
>>>>
>>>> Reported-by: Simon Wörner <contact@simon-woerner.de>
>>>> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1541
>>>
>>> There's already a fix for that issue included in a PULL request from
>>> Thomas:
>>>
>>> https://lists.gnu.org/archive/html/qemu-devel/2023-03/msg05225.html
>>
>> Not the same patch. I'll rebase and post for 8.1 then I guess :)
>>
>>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>>>> ---
>>>>   include/qemu/osdep.h | 2 +-
>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
>>>> index f68b5d8708..79c26c748a 100644
>>>> --- a/include/qemu/osdep.h
>>>> +++ b/include/qemu/osdep.h
>>>> @@ -237,7 +237,7 @@ extern "C" {
>>>>    * supports QEMU_ERROR, this will be reported at compile time; 
>>>> otherwise
>>>>    * this will be reported at link time due to the missing symbol.
>>>>    */
>>>> -extern G_NORETURN
>>>> +G_NORETURN
> 
> Removing the "extern" sounds like a better idea than swapping it... 
> since my PR was not in the staging branch yet, I went ahead and replaced 
> the patch.

Thank you!