Skip to contentSkip to conversation

New: kernel can't support SUBDIR

Buildroot [email protected] 1 participant 5 messages Nov 30, 2022 – Dec 10, 2022

lore
Share & tools
lore
#0 lore raw

https://bugs.busybox.net/show_bug.cgi?id=15161

            Bug ID: 15161
           Summary: kernel can't support SUBDIR
           Product: buildroot
           Version: 2022.08.2
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P5
         Component: Other
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]

Target Milestone: ---

My kernel path is top/kernel/linux-x.y.z
I must keep to relative path because of some special reason

the local.mk like this
LINUX_OVERRIDE_SRCDIR = ../kernel
LINUX_SUBDIR = linux-x.y.z

After run make, I found the build directory follow my idea, the top/kernel/linux-x.y.z be copied as output/build/linux-custom/linux-x.y.z/

but make oldconfig failed, because it use LINUX_DIR, I hope it use LINUX_SRCDIR in package/pkg-kconfig.mk, I saw this code:
$$($(2)_DIR)/$$($(2)_KCONFIG_STAMP_DOTCONFIG): $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES)

        $$(call prepare-per-package-directory,$$($(2)_KCONFIG_DEPENDENCIES))
        $$(call
kconfig-package-merge-config,$(2),$$(@D)/$$($(2)_KCONFIG_DOTCONFIG),\
                $$($(2)_KCONFIG_FRAGMENT_FILES))
        $$(Q)touch $$(@D)/$$($(2)_KCONFIG_STAMP_DOTCONFIG)

build log:

lujiang@cn028lnx02:~/work/mt_sdk/symphony/Lznux/linux/buildroot $ make V=1 /usr/bin/install -m 0644 -D ../kernel/linux-x.y.z/arch/arm64/configs/symphony6_fpga_dbg_defconfig /home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/build/linux-custom/.config support/kconfig/merge_config.sh -m -O /home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/build/linux-custom/ /home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/build/linux-custom/.config Using /home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/build/linux-custom/.config as base
#

# merged configuration written to
/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/build/linux-custom/.config
(needs make)
#
(yes "" |
PATH="/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/host/bin:/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/host/sbin:/home/lujiang/work/mt_sdk/symphony/Lznux/linux/build/script/mt-pkg-config-dir:/home/lujiang/bin:/home/lujiang/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/lujiang/crosstool-ng/crosstool-ng-1.24.0/bin:/home/lujiang/bin:/usr/local/crosstool-ng/gcc-9.3-glibc-2.28-mipsel-linux-gnu-rm2.0/bin:/usr/local/linaro/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin:/usr/local/linaro/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin"
PKG_CONFIG="/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/host/bin/pkg-config"
PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
PKG_CONFIG_LIBDIR="/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/host/lib/pkgconfig:/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/host/share/pkgconfig"
BR_BINARIES_DIR=/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/images
KCFLAGS=-Wno-attribute-alias /usr/bin/make -j33 -C
/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/build/linux-custom
HOSTCC="/usr/bin/gcc" HOSTCC="/usr/bin/gcc -O2
-I/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/host/include
-L/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/host/lib
-Wl,-rpath,/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/host/lib"
ARCH=arm64
INSTALL_MOD_PATH=/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/target
CROSS_COMPILE="/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/host/bin/aarch64-none-linux-gnu-"
WERROR=0
DEPMOD=/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/host/sbin/depmod
INSTALL_MOD_STRIP=1 HOSTCC="/usr/bin/gcc" oldconfig)
make[1]: Entering directory
'/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/build/linux-custom'
make[1]: *** No rule to make target 'oldconfig'.  Stop.
make[1]: Leaving directory
'/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/build/linux-custom'
linux/linux.mk:617: recipe for target
'/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/build/linux-custom/.stamp_dotconfig'
failed
make: ***
[/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/build/linux-custom/.stamp_dotconfig]
Error 2

you can see, the kernel config file be copied as output/build/linux-custom/.config, but I want it be copied as output/build/linux-custom/linux-x.y.z/.config

and make oldconfig in output/build/linux-custom/.config, but I want to i run in output/build/linux-custom/linux-x.y.z

I print the var LINUX_SRCDIR and LINUX_DIR

$ make show-vars VARS=LINUX_SRCDIR
the value is
"/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/build/linux-custom/linux-x.y.z"
$ make show-vars VARS=LINUX_DIR
the value is
"/home/lujiang/work/mt_sdk/symphony/Lznux/linux/buildroot/output/build/linux-custom"
Signature · 6 lines
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#1 lore raw

[Buildroot] [Bug 15161] kernel can't support SUBDIR

https://bugs.busybox.net/show_bug.cgi?id=15161

[email protected] changed:

What |Removed |Added
----------------------------------------------------------------------------

           Priority|P5                          |P1
           Severity|normal                      |major
Signature · 6 lines
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#2 lore raw

[Buildroot] [Bug 15161] kernel can't support SUBDIR

In reply to [email protected]

https://bugs.busybox.net/show_bug.cgi?id=15161

--- Comment #1 from Thomas Petazzoni <[email protected]> --- I don't understand why you're not doing:

LINUX_OVERRIDE_SRCDIR = ../kernel/linux-x.y.z

and stop using _SUBDIR ?

In your case, I don't understand why you would be using _SUBDIR.

Signature · 6 lines
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#3 lore raw

[Buildroot] [Bug 15161] kernel can't support SUBDIR

In reply to [email protected]

https://bugs.busybox.net/show_bug.cgi?id=15161

--- Comment #2 from [email protected] --- some kernel space code is not in kernel/linux-x.y.z my directory tree like this:

top/kernel/msp/drv
top/kernel/linux-x.y.z
top/kernel/linux-x.y.z/drivers

there is a soft link in kernel/linux-x.y.z/drivers kernel/linux-x.y.z/drivers/msp point to top/kernel/msp/drv the content of soft link is: ../../msp/drv

I hope set LINUX_OVERRIDE_SRCDIR at kernel level, then rsync can copy all kernel directory, then the relative path can be fixed

Signature · 6 lines
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#4 lore raw

[Buildroot] [Bug 15161] kernel can't support SUBDIR

In reply to [email protected]

https://bugs.busybox.net/show_bug.cgi?id=15161

Yann E. MORIN <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------

                 CC|                            |[email protected]
         Resolution|---                         |INVALID
             Status|NEW                         |RESOLVED

--- Comment #3 from Yann E. MORIN <[email protected]> --- Luffy, All,

When you provide overrides of standard pacjages, you have to provide them with the same layout as the upstream version of those programs.

We can't support arbitrary overrides.

You should fix your kernel tree and your out-of-tree driver, either:
- move the driver in-tree rather than rely on a symlink, or
- ensure the driver is a proper out-of-tree driver and can compile standalone, and create a buildroot package for it (see kernel-module in the manual and existing packages for examples).

Regards,
Yann E. MORIN.

Signature · 6 lines
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot