Hi Samu,

On 06/09/2021 14:32, GP Samu wrote:
All,

I've hit an issue this past weekend trying to compile a custom kernel based on 
the OpenSUSE stable branch with CONFIG_VFIO_FSL_MC enabled (for NXP QorIQ) on 
aarch64. This is in order to support passthrough of DPAA2 containers to VMs on 
a system with a LS1088 processor.

My build host:

OpenSUSE LEAP 15.3 (aarch64)

rock:~ # uname -a
Linux rock 5.3.18-59.19-default #1 SMP Tue Aug 3 14:11:23 UTC 2021 (055c4fd) 
aarch64 aarch64 aarch64 GNU/Linux

rock:~/kernel # gcc --version
gcc (SUSE Linux) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Checkout stable branch:

rock:~ #  git clone https://github.com/SUSE/kernel -b stable
Cloning into 'kernel'...
remote: Enumerating objects: 11355151, done.
remote: Counting objects: 100% (84628/84628), done.
remote: Compressing objects: 100% (26754/26754), done.
remote: Total 11355151 (delta 60838), reused 73774 (delta 57756), pack-reused 
11270523
Receiving objects: 100% (11355151/11355151), 2.37 GiB | 10.37 MiB/s, done.
Resolving deltas: 100% (9666658/9666658), done.
Checking objects: 100% (33554432/33554432), done.
Updating files: 100% (72873/72873), done.

Configuration step.  Here I've enabled CONFIG_VFIO_FSL_MC=m here after loading
/boot/config-5.3.18-59.19-default

rock:~/kernel # make menuconfig

If you want to build the kernel locally, you will need to use the configuration. It can be found in the kernel-source.git configs/arm64/default

kernel.git is just the expanded branch of kernel-source.git. In the latter you find each patch applied onto the base kernel version for Leap.

You can use kernel-source git also to push your kernel to OBS and build a kernel RPM with the changed config.

Let me know if that's of interest for you. If you are intersted in this, you can also request to add that config option for upcoming Leap 15.4

Regards,
Matthias

   HOSTCC  scripts/basic/fixdep
   UPD     scripts/kconfig/mconf-cfg
   HOSTCC  scripts/kconfig/mconf.o
   HOSTCC  scripts/kconfig/lxdialog/checklist.o
   HOSTCC  scripts/kconfig/lxdialog/inputbox.o
   HOSTCC  scripts/kconfig/lxdialog/menubox.o
   HOSTCC  scripts/kconfig/lxdialog/textbox.o
   HOSTCC  scripts/kconfig/lxdialog/util.o
   HOSTCC  scripts/kconfig/lxdialog/yesno.o
   HOSTCC  scripts/kconfig/confdata.o
   HOSTCC  scripts/kconfig/expr.o
   LEX     scripts/kconfig/lexer.lex.c
   YACC    scripts/kconfig/parser.tab.[ch]
   HOSTCC  scripts/kconfig/lexer.lex.o
   HOSTCC  scripts/kconfig/menu.o
   HOSTCC  scripts/kconfig/parser.tab.o
   HOSTCC  scripts/kconfig/preprocess.o
   HOSTCC  scripts/kconfig/symbol.o
   HOSTCC  scripts/kconfig/util.o
   HOSTLD  scripts/kconfig/mconf
#
# using defaults found in /boot/config-5.3.18-59.19-default
#
configuration written to .config

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

Start build

rock:~/kernel # make -j4
   WRAP    arch/arm64/include/generated/uapi/asm/errno.h
   WRAP    arch/arm64/include/generated/uapi/asm/kvm_para.h
   WRAP    arch/arm64/include/generated/uapi/asm/ioctls.h
   WRAP    arch/arm64/include/generated/uapi/asm/ioctl.h
   WRAP    arch/arm64/include/generated/uapi/asm/ipcbuf.h
   WRAP    arch/arm64/include/generated/uapi/asm/msgbuf.h
   WRAP    arch/arm64/include/generated/uapi/asm/poll.h
   WRAP    arch/arm64/include/generated/uapi/asm/resource.h
   WRAP    arch/arm64/include/generated/uapi/asm/sembuf.h
   WRAP    arch/arm64/include/generated/uapi/asm/shmbuf.h
   WRAP    arch/arm64/include/generated/uapi/asm/siginfo.h
   WRAP    arch/arm64/include/generated/uapi/asm/socket.h
   WRAP    arch/arm64/include/generated/uapi/asm/sockios.h
   WRAP    arch/arm64/include/generated/uapi/asm/stat.h
   WRAP    arch/arm64/include/generated/uapi/asm/swab.h
   WRAP    arch/arm64/include/generated/uapi/asm/termbits.h
   WRAP    arch/arm64/include/generated/uapi/asm/termios.h
   WRAP    arch/arm64/include/generated/uapi/asm/types.h
....
....
   DTC     arch/arm64/boot/dts/qcom/sm8250-mtp.dtb
   DTC     arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx203.dtb
   DTC     arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dtb
   DTC     arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dtb
   DTC     arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx206.dtb
   DTC     arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dtb
   DTC     arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dtb
   DTC     arch/arm64/boot/dts/qcom/sm8350-hdk.dtb
   DTC     arch/arm64/boot/dts/qcom/sm8350-mtp.dtb
============= BUILD STOPS HERE - no error is displayed, return to prompt 
=============

Run make -j4 again - and we see an error building scripts/modpost

rock:~/kernel # make -j4
   HOSTLD  scripts/mod/modpost
/usr/lib64/gcc/aarch64-suse-linux/7/../../../../aarch64-suse-linux/bin/ld: 
scripts/mod/modpost.o: in function `main':
modpost.c:(.text.startup+0x61c): undefined reference to `get_next_line'
/usr/lib64/gcc/aarch64-suse-linux/7/../../../../aarch64-suse-linux/bin/ld: 
modpost.c:(.text.startup+0x710): undefined reference to `get_next_line'
collect2: error: ld returned 1 exit status
make[1]: *** [scripts/Makefile.host:104: scripts/mod/modpost] Error 1
make: *** [Makefile:1225: prepare0] Error 2
make: *** Waiting for unfinished jobs....

rock:~/kernel # ls -la scripts/mod/
total 460
drwxr-xr-x 1 root root   814 Sep  6 11:55 .
drwxr-xr-x 1 root root  4172 Sep  6 11:54 ..
-rw-r--r-- 1 root root  4739 Sep  6 11:54 .devicetable-offsets.s.cmd
-rw-r--r-- 1 root root   104 Sep  6 11:54 .elfconfig.h.cmd
-rw-r--r-- 1 root root  2510 Sep  6 11:54 .empty.o.cmd
-rw-r--r-- 1 root root   556 Sep  6 11:54 .file2alias.o.cmd
-rw-r--r-- 1 root root    99 Sep  6 11:51 .gitignore
-rw-r--r-- 1 root root   104 Sep  6 11:54 .ksym-provides.cmd
-rw-r--r-- 1 root root   440 Sep  6 11:54 .ksym-provides.o.cmd
-rw-r--r-- 1 root root   416 Sep  6 11:54 .mk_elfconfig.cmd
-rw-r--r-- 1 root root   896 Sep  6 11:54 .modpost.o.cmd
-rw-r--r-- 1 root root   464 Sep  6 11:54 .sumversion.o.cmd
-rw-r--r-- 1 root root   949 Sep  6 11:51 Makefile
-rw-r--r-- 1 root root  7438 Sep  6 11:51 devicetable-offsets.c
-rw-r--r-- 1 root root 16224 Sep  6 11:54 devicetable-offsets.h
-rw-r--r-- 1 root root 48497 Sep  6 11:54 devicetable-offsets.s
-rw-r--r-- 1 root root   136 Sep  6 11:54 elfconfig.h
-rw-r--r-- 1 root root    54 Sep  6 11:51 empty.c
-rw-r--r-- 1 root root  2248 Sep  6 11:54 empty.o
-rw-r--r-- 1 root root 45703 Sep  6 11:51 file2alias.c
-rw-r--r-- 1 root root 56120 Sep  6 11:54 file2alias.o
-rwxr-xr-x 1 root root 75992 Sep  6 11:54 ksym-provides
-rw-r--r-- 1 root root  2534 Sep  6 11:51 ksym-provides.c
-rw-r--r-- 1 root root  5024 Sep  6 11:54 ksym-provides.o
-rwxr-xr-x 1 root root 75152 Sep  6 11:54 mk_elfconfig
-rw-r--r-- 1 root root  1269 Sep  6 11:51 mk_elfconfig.c
-rw-r--r-- 1 root root 71306 Sep  6 11:51 modpost.c
-rw-r--r-- 1 root root  5934 Sep  6 11:51 modpost.h
-rw-r--r-- 1 root root 63432 Sep  6 11:54 modpost.o
-rw-r--r-- 1 root root  9921 Sep  6 11:51 sumversion.c
-rw-r--r-- 1 root root  7480 Sep  6 11:54 sumversion.o

Any suggestions or feedback would be appreciated.

Reply via email to