Ahh, this stuff is so wonky it is so easy to miss the _real_ reason :)

On Aug 19, 2006, at 2:22 AM, Amos Waterland wrote:
To understand the context for this patch, observe that the following is
the case in stock Xen/PPC:

 $ nm xen-syms | egrep ' per_cpu__|__per_cpu' | sort
 000000000044c680 d per_cpu__domain_shuttingdown
 000000000044c688 D per_cpu__mc_state
 000000000044c700 d per_cpu__t_timer
 000000000045cc80 D per_cpu__tlbflush_time
 000000000045d2b0 A __per_cpu_data_end
 000000000045d2b0 A __per_cpu_start
 0000000000460000 A __per_cpu_end

So what is actually happening is that your .data.percpu sections are getting sucked up by the linker before the section description we actually want to be used.

This is the correct fix (possible MUA mangling):

diff -r 539a1e666982 xen/arch/powerpc/xen.lds.S
--- a/xen/arch/powerpc/xen.lds.S        Fri Aug 18 14:07:50 2006 -0400
+++ b/xen/arch/powerpc/xen.lds.S        Sun Aug 20 10:57:46 2006 -0400
@@ -107,7 +107,7 @@ SECTIONS
   PROVIDE (__fini_array_end = .);
   .data           :
-    *(.data .data.* .gnu.linkonce.d.*)
+    *(.data .gnu.linkonce.d.*)

this .data.* catch-all got your sections before the one we define even had a chance :)

I'll commit this fix when I fix everything else I broke :-D


Xen-ppc-devel mailing list

Reply via email to