kbuild: Fix compilation error

Message ID tencent_3D7B0D368482B2602EC7559A5E1546171009@qq.com
State New
Headers
Series kbuild: Fix compilation error |

Commit Message

Rong Tao Dec. 17, 2022, 7:03 a.m. UTC
  From: Rong Tao <rongtao@cestc.cn>

In the absence of a CONFIG_FUNCTION_ALIGNMENT defined, -falign-functions=
will be given a null value, which results in a compilation error, as
follows:

    $ make -C samples/bpf/
    ...
    CC      /home/sdb/Git/linux/samples/bpf/syscall_nrs.s
    gcc: error: missing argument to ‘-falign-functions=’
    make[2]: *** [scripts/Makefile.build:118: /home/sdb/Git/linux/samples
        /bpf/syscall_nrs.s] Error 1
    make[1]: *** [Makefile:1996: /home/sdb/Git/linux/samples/bpf] Error 2
    make[1]: Leaving directory '/home/sdb/Git/linux'
    make: *** [Makefile:269: all] Error 2

Signed-off-by: Rong Tao <rongtao@cestc.cn>
---
 Makefile | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Masahiro Yamada Dec. 17, 2022, 7:59 a.m. UTC | #1
On Sat, Dec 17, 2022 at 4:07 PM Rong Tao <rtoax@foxmail.com> wrote:
>
> From: Rong Tao <rongtao@cestc.cn>
>
> In the absence of a CONFIG_FUNCTION_ALIGNMENT defined,

Does it happen in the mainline kernel?


CONFIG_FUNCTION_ALIGNMENT is always defined
as far as I understood arch/Kconfig.












> -falign-functions=
> will be given a null value, which results in a compilation error, as
> follows:
>
>     $ make -C samples/bpf/
>     ...
>     CC      /home/sdb/Git/linux/samples/bpf/syscall_nrs.s
>     gcc: error: missing argument to ‘-falign-functions=’
>     make[2]: *** [scripts/Makefile.build:118: /home/sdb/Git/linux/samples
>         /bpf/syscall_nrs.s] Error 1
>     make[1]: *** [Makefile:1996: /home/sdb/Git/linux/samples/bpf] Error 2
>     make[1]: Leaving directory '/home/sdb/Git/linux'
>     make: *** [Makefile:269: all] Error 2
>
> Signed-off-by: Rong Tao <rongtao@cestc.cn>
> ---
>  Makefile | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/Makefile b/Makefile
> index 6aa709df6bde..57cce4c8f8a2 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1006,9 +1006,11 @@ KBUILD_CFLAGS    += $(CC_FLAGS_CFI)
>  export CC_FLAGS_CFI
>  endif
>
> +ifdef CONFIG_FUNCTION_ALIGNMENT
>  ifneq ($(CONFIG_FUNCTION_ALIGNMENT),0)
>  KBUILD_CFLAGS += -falign-functions=$(CONFIG_FUNCTION_ALIGNMENT)
>  endif
> +endif
>
>  # arch Makefile may override CC so keep this after arch Makefile is included
>  NOSTDINC_FLAGS += -nostdinc
> --
> 2.38.1
>
  
Rong Tao Dec. 17, 2022, 8:11 a.m. UTC | #2
Yes, It's happen in the mainline kernel.

I pulled the latest code and habitually compiled samples/bpf, 

$ git remote get-url origin 
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
$ make -C samples/bpf

and the compilation error occurred. I applied this patch and can
fix this compilation error.
  
Masahiro Yamada Dec. 17, 2022, 8:44 a.m. UTC | #3
On Sat, Dec 17, 2022 at 5:11 PM Rong Tao <rtoax@foxmail.com> wrote:
>
> Yes, It's happen in the mainline kernel.
>
> I pulled the latest code and habitually compiled samples/bpf,
>
> $ git remote get-url origin
> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> $ make -C samples/bpf
>
> and the compilation error occurred. I applied this patch and can
> fix this compilation error.




I want you to describe the steps to reproduce the issue from the pristine
source tree instead of printing the URL of your origin.



I prepared a template for you.
Please fill the following 3 square brackets.



$ git log --oneline  -1
 [ Fill the commit hash you are working on ]
$ git clean -dfx

 [ Fill steps between "git clean -dfx" and "make -C samples/bpf" ]

$ make -C samples/bpf
 [ Fill the error message you get ]
  
Rong Tao Dec. 17, 2022, 9:53 a.m. UTC | #4
Thanks, Masahiro Yamada, I compile again from scrach. the compilation
error not happen anymore. I think i miss 'make menuconfig' before.

Thanks again!

$ git log --oneline  -1
77856d911a8c
$ git clean -dfx
$ make menuconfig <<== Which i miss
$ make -j8
$ make -C samples/bpf
  

Patch

diff --git a/Makefile b/Makefile
index 6aa709df6bde..57cce4c8f8a2 100644
--- a/Makefile
+++ b/Makefile
@@ -1006,9 +1006,11 @@  KBUILD_CFLAGS	+= $(CC_FLAGS_CFI)
 export CC_FLAGS_CFI
 endif
 
+ifdef CONFIG_FUNCTION_ALIGNMENT
 ifneq ($(CONFIG_FUNCTION_ALIGNMENT),0)
 KBUILD_CFLAGS += -falign-functions=$(CONFIG_FUNCTION_ALIGNMENT)
 endif
+endif
 
 # arch Makefile may override CC so keep this after arch Makefile is included
 NOSTDINC_FLAGS += -nostdinc