Re: [PATCH] x86/acpi: make "asmlinkage" part first thing in the function definition

From: hpa
Date: Wed Mar 04 2020 - 05:10:58 EST


On March 4, 2020 2:04:38 AM PST, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>On Wed, Mar 04, 2020 at 12:54:09AM -0800, hpa@xxxxxxxxx wrote:
>> On March 3, 2020 12:41:44 PM PST, Alexey Dobriyan
><adobriyan@xxxxxxxxx> wrote:
>> >g++ insists that function declaration must start with extern "C"
>> >(which asmlinkage expands to).
>> >
>> >gcc doesn't care.
>> >
>> >Signed-off-by: _Z6Alexeyv <adobriyan@xxxxxxxxx>
>> >---
>> >
>> > arch/x86/kernel/acpi/sleep.c | 2 +-
>> > arch/x86/kernel/acpi/sleep.h | 2 +-
>> > 2 files changed, 2 insertions(+), 2 deletions(-)
>> >
>> >--- a/arch/x86/kernel/acpi/sleep.c
>> >+++ b/arch/x86/kernel/acpi/sleep.c
>> >@@ -43,7 +43,7 @@ unsigned long acpi_get_wakeup_address(void)
>> > *
>> > * Wrapper around acpi_enter_sleep_state() to be called by
>assmebly.
>> > */
>> >-acpi_status asmlinkage __visible x86_acpi_enter_sleep_state(u8
>state)
>> >+asmlinkage acpi_status __visible x86_acpi_enter_sleep_state(u8
>state)
>> > {
>> > return acpi_enter_sleep_state(state);
>> > }
>> >--- a/arch/x86/kernel/acpi/sleep.h
>> >+++ b/arch/x86/kernel/acpi/sleep.h
>> >@@ -19,4 +19,4 @@ extern void do_suspend_lowlevel(void);
>> >
>> > extern int x86_acpi_suspend_lowlevel(void);
>> >
>> >-acpi_status asmlinkage x86_acpi_enter_sleep_state(u8 state);
>> >+asmlinkage acpi_status x86_acpi_enter_sleep_state(u8 state);
>>
>> Are you building the kernel with C++?!
>
>He is :-) IIRC he's got a whole bunch of patches that removes all the
>C++ keywords from the kernel.

I'm genuinely curious: I have heard it says that gcc is something like 10x slower in C++ mode even for what is otherwise basically C code (i.e. no templates etc.)

Does that match observations?
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.