linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [vfs:work.asm-exports 10/12] arch/ia64/lib/flush.S:29: undefined reference to `ia64_i_cache_stride_shift'
@ 2016-01-31  8:44 kbuild test robot
  2016-01-31 15:53 ` Al Viro
  0 siblings, 1 reply; 2+ messages in thread
From: kbuild test robot @ 2016-01-31  8:44 UTC (permalink / raw)
  To: Al Viro; +Cc: kbuild-all, linux-fsdevel

[-- Attachment #1: Type: text/plain, Size: 5827 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.asm-exports
head:   e1b27b33d149cf54144f015318d770e931b09b8c
commit: e11463e4da41c7541d4769886588e26c79cc4689 [10/12] ia64: move exports to definitions
config: ia64-sim_defconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout e11463e4da41c7541d4769886588e26c79cc4689
        # save the attached .config to linux build tree
        make.cross ARCH=ia64 

All errors (new ones prefixed by >>):

   arch/ia64/lib/lib.a(flush.o): In function `flush_icache_range':
>> arch/ia64/lib/flush.S:29: undefined reference to `ia64_i_cache_stride_shift'
   arch/ia64/lib/lib.a(flush.o): In function `clflush_cache_range':
>> arch/ia64/lib/flush.S:82: undefined reference to `ia64_cache_stride_shift'

vim +29 arch/ia64/lib/flush.S

^1da177e Linus Torvalds         2005-04-16  23  	 */
1f7ad57b Prasanna S Panchamukhi 2005-09-06  24  	.section .kprobes.text,"ax"
^1da177e Linus Torvalds         2005-04-16  25  GLOBAL_ENTRY(flush_icache_range)
08357f82 Zoltan Menyhart        2005-06-03  26  
^1da177e Linus Torvalds         2005-04-16  27  	.prologue
^1da177e Linus Torvalds         2005-04-16  28  	alloc	r2=ar.pfs,2,0,0,0
08357f82 Zoltan Menyhart        2005-06-03 @29  	movl	r3=ia64_i_cache_stride_shift
08357f82 Zoltan Menyhart        2005-06-03  30   	mov	r21=1
08357f82 Zoltan Menyhart        2005-06-03  31  	;;
08357f82 Zoltan Menyhart        2005-06-03  32  	ld8	r20=[r3]		// r20: stride shift
08357f82 Zoltan Menyhart        2005-06-03  33  	sub	r22=in1,r0,1		// last byte address
08357f82 Zoltan Menyhart        2005-06-03  34  	;;
08357f82 Zoltan Menyhart        2005-06-03  35  	shr.u	r23=in0,r20		// start / (stride size)
08357f82 Zoltan Menyhart        2005-06-03  36  	shr.u	r22=r22,r20		// (last byte address) / (stride size)
08357f82 Zoltan Menyhart        2005-06-03  37  	shl	r21=r21,r20		// r21: stride size of the i-cache(s)
^1da177e Linus Torvalds         2005-04-16  38  	;;
08357f82 Zoltan Menyhart        2005-06-03  39  	sub	r8=r22,r23		// number of strides - 1
08357f82 Zoltan Menyhart        2005-06-03  40  	shl	r24=r23,r20		// r24: addresses for "fc.i" =
08357f82 Zoltan Menyhart        2005-06-03  41  					//	"start" rounded down to stride boundary
^1da177e Linus Torvalds         2005-04-16  42  	.save	ar.lc,r3
^1da177e Linus Torvalds         2005-04-16  43  	mov	r3=ar.lc		// save ar.lc
^1da177e Linus Torvalds         2005-04-16  44  	;;
^1da177e Linus Torvalds         2005-04-16  45  
^1da177e Linus Torvalds         2005-04-16  46  	.body
^1da177e Linus Torvalds         2005-04-16  47  	mov	ar.lc=r8
^1da177e Linus Torvalds         2005-04-16  48  	;;
08357f82 Zoltan Menyhart        2005-06-03  49  	/*
08357f82 Zoltan Menyhart        2005-06-03  50  	 * 32 byte aligned loop, even number of (actually 2) bundles
08357f82 Zoltan Menyhart        2005-06-03  51  	 */
08357f82 Zoltan Menyhart        2005-06-03  52  .Loop:	fc.i	r24			// issuable on M0 only
08357f82 Zoltan Menyhart        2005-06-03  53  	add	r24=r21,r24		// we flush "stride size" bytes per iteration
08357f82 Zoltan Menyhart        2005-06-03  54  	nop.i	0
^1da177e Linus Torvalds         2005-04-16  55  	br.cloop.sptk.few .Loop
^1da177e Linus Torvalds         2005-04-16  56  	;;
^1da177e Linus Torvalds         2005-04-16  57  	sync.i
^1da177e Linus Torvalds         2005-04-16  58  	;;
^1da177e Linus Torvalds         2005-04-16  59  	srlz.i
^1da177e Linus Torvalds         2005-04-16  60  	;;
^1da177e Linus Torvalds         2005-04-16  61  	mov	ar.lc=r3		// restore ar.lc
^1da177e Linus Torvalds         2005-04-16  62  	br.ret.sptk.many rp
^1da177e Linus Torvalds         2005-04-16  63  END(flush_icache_range)
e11463e4 Al Viro                2016-01-17  64  EXPORT_SYMBOL_GPL(flush_icache_range)
62fdd767 Fenghua Yu             2008-10-17  65  
62fdd767 Fenghua Yu             2008-10-17  66  	/*
62fdd767 Fenghua Yu             2008-10-17  67  	 * clflush_cache_range(start,size)
62fdd767 Fenghua Yu             2008-10-17  68  	 *
62fdd767 Fenghua Yu             2008-10-17  69  	 *	Flush cache lines from start to start+size-1.
62fdd767 Fenghua Yu             2008-10-17  70  	 *
62fdd767 Fenghua Yu             2008-10-17  71  	 *	Must deal with range from start to start+size-1 but nothing else
62fdd767 Fenghua Yu             2008-10-17  72  	 *	(need to be careful not to touch addresses that may be
62fdd767 Fenghua Yu             2008-10-17  73  	 *	unmapped).
62fdd767 Fenghua Yu             2008-10-17  74  	 *
62fdd767 Fenghua Yu             2008-10-17  75  	 *	Note: "in0" and "in1" are preserved for debugging purposes.
62fdd767 Fenghua Yu             2008-10-17  76  	 */
62fdd767 Fenghua Yu             2008-10-17  77  	.section .kprobes.text,"ax"
62fdd767 Fenghua Yu             2008-10-17  78  GLOBAL_ENTRY(clflush_cache_range)
62fdd767 Fenghua Yu             2008-10-17  79  
62fdd767 Fenghua Yu             2008-10-17  80  	.prologue
62fdd767 Fenghua Yu             2008-10-17  81  	alloc	r2=ar.pfs,2,0,0,0
62fdd767 Fenghua Yu             2008-10-17 @82  	movl	r3=ia64_cache_stride_shift
62fdd767 Fenghua Yu             2008-10-17  83  	mov	r21=1
62fdd767 Fenghua Yu             2008-10-17  84  	add     r22=in1,in0
62fdd767 Fenghua Yu             2008-10-17  85  	;;

:::::: The code at line 29 was first introduced by commit
:::::: 08357f82d4decc48bbfd39ae30d5fe0754f7f576 [IA64] improve flush_icache_range()

:::::: TO: Zoltan Menyhart <Zoltan.Menyhart@bull.net>
:::::: CC: Tony Luck <tony.luck@intel.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 8366 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [vfs:work.asm-exports 10/12] arch/ia64/lib/flush.S:29: undefined reference to `ia64_i_cache_stride_shift'
  2016-01-31  8:44 [vfs:work.asm-exports 10/12] arch/ia64/lib/flush.S:29: undefined reference to `ia64_i_cache_stride_shift' kbuild test robot
@ 2016-01-31 15:53 ` Al Viro
  0 siblings, 0 replies; 2+ messages in thread
From: Al Viro @ 2016-01-31 15:53 UTC (permalink / raw)
  To: kbuild test robot; +Cc: kbuild-all, linux-fsdevel

On Sun, Jan 31, 2016 at 04:44:04PM +0800, kbuild test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.asm-exports
> head:   e1b27b33d149cf54144f015318d770e931b09b8c
> commit: e11463e4da41c7541d4769886588e26c79cc4689 [10/12] ia64: move exports to definitions
> config: ia64-sim_defconfig (attached as .config)
> reproduce:
>         wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         git checkout e11463e4da41c7541d4769886588e26c79cc4689
>         # save the attached .config to linux build tree
>         make.cross ARCH=ia64 
> 
> All errors (new ones prefixed by >>):
> 
>    arch/ia64/lib/lib.a(flush.o): In function `flush_icache_range':
> >> arch/ia64/lib/flush.S:29: undefined reference to `ia64_i_cache_stride_shift'
>    arch/ia64/lib/lib.a(flush.o): In function `clflush_cache_range':
> >> arch/ia64/lib/flush.S:82: undefined reference to `ia64_cache_stride_shift'

That turned out to be an interesting one: arch/ia64/hp/sim/boot/bootloader is
unique in one respect - it's the only thing other than vmlinux that gets
any built-in.o linked into it.  Now all arch/ia64/lib/ lib-y objects with
exports in them get pulled from their library by that sucker, and some of
them require symbols *not* in bootloader.

AFAICS, solved by moving several objects in arch/ia64/lib/ from obj-* to
lib-* and dropping built-in.o from ld arguments when building bootloader.

Hopefully fixed variant pushed...

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-01-31 15:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-31  8:44 [vfs:work.asm-exports 10/12] arch/ia64/lib/flush.S:29: undefined reference to `ia64_i_cache_stride_shift' kbuild test robot
2016-01-31 15:53 ` Al Viro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).