Re: [tip:x86/asm 3/3] lib/bug.c:135: undefined reference to `__start___bug_table'

From: Fengguang Wu
Date: Thu Mar 30 2017 - 20:27:36 EST


On Thu, Mar 30, 2017 at 05:53:27PM +0200, Peter Zijlstra wrote:
On Thu, Mar 30, 2017 at 05:49:27PM +0200, Peter Zijlstra wrote:
On Thu, Mar 30, 2017 at 09:02:31PM +0800, kbuild test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/asm
> head: 19d436268dde95389c616bb3819da73f0a8b28a8
> commit: 19d436268dde95389c616bb3819da73f0a8b28a8 [3/3] debug: Add _ONCE() logic to report_bug()
> config: arm-efm32_defconfig (attached as .config)
> compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
> wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout 19d436268dde95389c616bb3819da73f0a8b28a8
> # save the attached .config to linux build tree
> make.cross ARCH=arm
>
> All errors (new ones prefixed by >>):
>
> lib/lib.a(bug.o): In function `find_bug':
> >> lib/bug.c:135: undefined reference to `__start___bug_table'
> >> lib/bug.c:135: undefined reference to `__stop___bug_table'

Blergh.. this cures it for me.

Ideally all those would use RW_DATA_SECTION, but alas.


diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index c74ae9c..c8a3b61 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -146,6 +146,7 @@ SECTIONS
_edata = .;
} :data

+ BUG_TABLE

. = ALIGN(PAGE_SIZE);
__vvar_page = .;

Also, I have absolutely 0 clues as to why x86 builds without this :/

Yes there are no x86 build failures with this error message.
It only occurs in arm and c6x.

Regards,
Fengguang