qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH V3] vl.c && linux-user/main.c : removed **envp f


From: Laurent Vivier
Subject: Re: [Qemu-devel] [PATCH V3] vl.c && linux-user/main.c : removed **envp from main() arguments
Date: Tue, 19 Dec 2017 14:16:12 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0

Le 19/12/2017 à 14:05, Yoni Bettan a écrit :
> 
> 
> On 12/19/2017 12:21 PM, Laurent Vivier wrote:
>> Le 19/12/2017 à 11:11, Yoni Bettan a écrit :
>>> it was added on 2008 902b3d5c39 when introduced cache-utils.[ch]
>>>
>>> since then cache-utils.[ch] were removed but **envp was left
>>> behind.
>>>
>>> By the way "to be portable it is best to write main to take two
>>> arguments, and use the value of environ" according to
>>> https://www.gnu.org/software/libc/manual/html_node/Program-\
>>>        Arguments.html#Program-Arguments
>>>
>>> Signed-off-by: Yoni Bettan <address@hidden>
>>> ---
>>>
>>> V2 -> V3:
>>>           since ui/cocoa.c rename main() is using qemu_main()
>>> ,because it uses it
>>>      inside its main() function, the function qemu_main() can't be
>>> removed
>>>   
>>> V1 -> V2:
>>>
>>>      removed the ui/cocoa.c renaming of main() function since i
>>> thought that we
>>>      no longer need qemu_main()
>>>
>>>
>>>   include/qemu-common.h | 2 +-
>>>   linux-user/main.c     | 2 +-
>>>   ui/cocoa.m            | 5 ++---
>>>   vl.c                  | 7 +++----
>>>   4 files changed, 7 insertions(+), 9 deletions(-)
>>>
>> ...
>>> diff --git a/vl.c b/vl.c
>>> index fc8bd9372f..ea17cc34f6 100644
>>> --- a/vl.c
>>> +++ b/vl.c
>>> @@ -35,10 +35,10 @@
>>>   #ifdef CONFIG_SDL
>>>   #if defined(__APPLE__) || defined(main)
>>>   #include <SDL.h>
>>> -int qemu_main(int argc, char **argv, char **envp);
>>> +int qemu_main(int argc, char **argv);
>>>   int main(int argc, char **argv)
>>>   {
>>> -    return qemu_main(argc, argv, NULL);
>>> +    return qemu_main(argc, argv);
>>>   }
>>>   #undef main
>>>   #define main qemu_main
>>
>> I'm really sorry, but I really think we can remove this part.
> 
> Can you please show what exact lines you think can be removed?
> If you meant that the entire part can be removed then how can
> we rename main to qemu_main (in the CONFIG_COCA part) if qemu_main is
> not defined?

Yes, the entire part can be removed.

The following lines will declare the qemu_main for COCOA:
>>
>>       48 #ifdef CONFIG_COCOA
>>       49 #undef main
>>       50 #define main qemu_main
>>       51 #endif /* CONFIG_COCOA */

The C preprocessor will replace:

int main(int argc, char **argv, char **envp)
{
...

by

int qemu_main(int argc, char **argv, char **envp)
{
...

To check, you can try:

-----8<---------------- main.c
#define main qemu_main

int main(void)
{
    return 0;
}
-----8<---------------- main.c

then: cc -E main.c

# 1 "main.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 32 "<command-line>" 2
# 1 "main.c"


int qemu_main(void)
{
    return 0;
}


Thanks,
Laurent



reply via email to

[Prev in Thread] Current Thread [Next in Thread]