Skip to contentSkip to conversation

New: build buildroot with glibc and linux kernel 5.4 will cause error: "FATAL: kernel too old"

Buildroot [email protected] 1 participant 8 messages Jul 18, 2022 – Oct 25, 2022

lore
Share & tools
lore
#0 lore raw

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

Bug ID: 14916
Summary: build buildroot with glibc and linux kernel 5.4 will
cause error: "FATAL: kernel too old"
Product: buildroot
Version: 2022.02.3
Hardware: All
OS: Linux
Status: NEW
Severity: major
Priority: P5
Component: Other
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: ---

Refer to this article for details: https://www.jianshu.com/p/55952ae88965

1. qemu start error

[ 3.405278] Run /sbin/init as init process
FATAL: kernel too old
[ 3.484534] Kernel panic - not syncing: Attempted to kill init!
exitcode=0x00007f00
[ 3.484974] CPU: 0 PID: 1 Comm: init Not tainted 5.4.195 #1

2. environment

host          arch    linux kernel       buildroot  glibc
ubuntu 20.04  x86_64  5.4.0-195/5.4.195  2022.02.3  2.34

3. error analysis
- buildroot set BR2_TOOLCHAIN_HEADERS_AT_LEAST to 5.4
- but glibc's --enable-kernel=X.Y.Z
- buildroot missing Z

4. temporary solution
modify buildroot's .config BR2_TOOLCHAIN_HEADERS_AT_LEAST to 5.4.0

5. recompile and start ok

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 14916] build buildroot with glibc and linux kernel 5.4, start with qemu will cause error: "FATAL: kernel too old"

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

Fugui Liu <[email protected]> changed:

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

            Summary|build buildroot with glibc  |build buildroot with glibc
                   |and linux kernel 5.4 will   |and linux kernel 5.4, start
                   |cause error: "FATAL: kernel |with qemu will cause error:
                   |too old"                    |"FATAL: kernel too old"
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 14916] build buildroot with glibc and linux kernel 5.4, start with qemu will cause error: "FATAL: kernel too old"

In reply to [email protected]

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

Fugui Liu <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |2022.02

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 14916] build buildroot with glibc and linux kernel 5.4, start with qemu will cause error: "FATAL: kernel too old"

In reply to [email protected]

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

--- Comment #1 from Thomas Petazzoni <[email protected]> --- Thanks for the bug report. I am surprised we never realized this before.

Isn't the solution as simple as:

package/glibc/glibc.mk +0 -1
index f3a08fbf24..6c54d044a5 100644
@@ -99,7 +99,7 @@ GLIBC_MAKE = $(BR2_MAKE)
 GLIBC_CONF_ENV += ac_cv_prog_MAKE="$(BR2_MAKE)"
 
 ifeq ($(BR2_PACKAGE_GLIBC_KERNEL_COMPAT),)
-GLIBC_CONF_OPTS += --enable-kernel=$(call

qstrip,$(BR2_TOOLCHAIN_HEADERS_AT_LEAST))
+GLIBC_CONF_OPTS += --enable-kernel=$(call
qstrip,$(BR2_TOOLCHAIN_HEADERS_AT_LEAST)).0
endif

# Even though we use the autotools-package infrastructure, we have to

Indeed, $(BR2_TOOLCHAIN_HEADERS_AT_LEAST) never includes the minor version as far as I can see. Yann, any opinion?

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 14916] build buildroot with glibc and linux kernel 5.4, start with qemu will cause error: "FATAL: kernel too old"

In reply to [email protected]

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

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

What |Removed |Added
----------------------------------------------------------------------------
CC| |[email protected]

--- Comment #2 from Yann E. MORIN <[email protected]> --- (In reply to Thomas Petazzoni from comment #1)

Review

Quoted 2 lines
(quoted diff) +1 -1
-GLIBC_CONF_OPTS += --enable-kernel=$(call strip,$(BR2_TOOLCHAIN_HEADERS_AT_LEAST))
+GLIBC_CONF_OPTS += --enable-kernel=$(call qstrip,$(BR2_TOOLCHAIN_HEADERS_AT_LEAST)).0

It should not be necessary, because the glibc machinery explicitly already adds a buncha dot-zeroes:

https://github.com/bminor/glibc/blob/master/sysdeps/unix/sysv/linux/configure.ac#L39
(mips has a special case, but uses the same construct).

    user_version=$((`echo "$minimum_kernel.0.0.0" | [....]

with minimum_kernel defined there, from --enable-kernel=NNN :

https://github.com/bminor/glibc/blob/master/configure.ac#L273

Note that this is not recent; it's been there since 48d0c5d847a, in 2000...

So yeah, weird...

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
#5 lore raw

[Buildroot] [Bug 14916] build buildroot with glibc and linux kernel 5.4, start with qemu will cause error: "FATAL: kernel too old"

In reply to [email protected]

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

--- Comment #3 from Fugui Liu <[email protected]> --- (In reply to Thomas Petazzoni from comment #1)

The solution I want is to be able to set the minior version when we make xxconfig.

(In reply to Yann E. MORIN from comment #2)

I tested multi combinations.
1. buildroot-2022.02.3 with glibc 2.34 linux kernel 5.4/5.15
2. buildroot-2020.08 with glibc 2.31 linux kernle 5.4/5.7 All throw error: FATAL: kernel too old

If I modify buildroot's .config BR2_TOOLCHAIN_HEADERS_AT_LEAST to 5.4.0, everything is ok.

You can try to build and start.

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
#6 lore raw

[Buildroot] [Bug 14916] build buildroot with glibc and linux kernel 5.4, start with qemu will cause error: "FATAL: kernel too old"

In reply to [email protected]

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

--- Comment #4 from Yann E. MORIN <[email protected]> --- Fugui Liu, All,

Can you provide a defconfig that exhibits the issue, please?

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
#7 lore raw

[Buildroot] [Bug 14916] build buildroot with glibc and linux kernel 5.4, start with qemu will cause error: "FATAL: kernel too old"

In reply to [email protected]

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

Thomas Petazzoni <[email protected]> changed:

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

         Resolution|---                         |NEEDINFO
             Status|NEW                         |RESOLVED

--- Comment #5 from Thomas Petazzoni <[email protected]> --- No feedback from the contributor, insufficient information to reproduce, so closing the bug.

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