Re: mm/slub.o:undefined reference to `_GLOBAL_OFFSET_TABLE_'

From: Jesper Dangaard Brouer
Date: Thu Sep 22 2016 - 04:30:14 EST

On Thu, 22 Sep 2016 13:50:21 +0800
kbuild test robot <fengguang.wu@xxxxxxxxx> wrote:

> Hi Jesper,
> FYI, the error/warning still remains.
> tree: master
> head: 7d1e042314619115153a0f6f06e4552c09a50e13
> commit: d0ecd894e3d5f768a84403b34019c4a7daa05882 slub: optimize bulk slowpath free by detached freelist
> date: 10 months ago
> config: microblaze-allnoconfig (attached as .config)
> compiler: microblaze-linux-gcc (GCC) 6.2.0
> reproduce:
> wget -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout d0ecd894e3d5f768a84403b34019c4a7daa05882
> # save the attached .config to linux build tree
> make.cross ARCH=microblaze
> All errors (new ones prefixed by >>):
> mm/built-in.o: In function `__slab_free.isra.14':
> >> mm/slub.o:(.text+0x28d1c): undefined reference to `_GLOBAL_OFFSET_TABLE_'
> scripts/ line 52: 18051 Segmentation fault ${LD} ${LDFLAGS} ${LDFLAGS_vmlinux} -o ${2} -T ${lds} ${KBUILD_VMLINUX_INIT} --start-group ${KBUILD_VMLINUX_MAIN} --end-group ${1}

Hi Fengguang,

I don't really understand if this is a real bug that I need to fix?

It looks like a linker problem, resulting in a "Segmentation fault" for your script...

The mentioned commit: d0ecd894e3d5f768a84 removes a call point to
__slab_free() and instead call slab_free(). It does not make sense to
my, why this results in a linker error on this ARCH=microblaze.

Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
Author of