Author: dim
Date: Thu Nov 11 19:18:52 2010
New Revision: 215138
URL: http://svn.freebsd.org/changeset/base/215138

Log:
  Use the same treatment as in linker_set.h for the __start and __stop
  symbols of the set_vnet and set_pcpu sections, so those symbols will
  always be emitted in kernel modules, if they use vnet.h or pcpu.h.
  
  Also, for pcpu.h, make the __(start|stop)_set_pcpu declarations, and
  associated macros invisible to userland, to prevent it picking up these
  symbols.
  
  Reviewed by:  kib

Modified:
  head/sys/net/vnet.h
  head/sys/sys/pcpu.h

Modified: head/sys/net/vnet.h
==============================================================================
--- head/sys/net/vnet.h Thu Nov 11 19:17:59 2010        (r215137)
+++ head/sys/net/vnet.h Thu Nov 11 19:18:52 2010        (r215138)
@@ -95,7 +95,9 @@ struct vnet {
  * Location of the kernel's 'set_vnet' linker set.
  */
 extern uintptr_t       *__start_set_vnet;
+__GLOBL(__start_set_vnet);
 extern uintptr_t       *__stop_set_vnet;
+__GLOBL(__stop_set_vnet);
 
 #define        VNET_START      (uintptr_t)&__start_set_vnet
 #define        VNET_STOP       (uintptr_t)&__stop_set_vnet

Modified: head/sys/sys/pcpu.h
==============================================================================
--- head/sys/sys/pcpu.h Thu Nov 11 19:17:59 2010        (r215137)
+++ head/sys/sys/pcpu.h Thu Nov 11 19:18:52 2010        (r215138)
@@ -42,11 +42,15 @@
 #include <sys/resource.h>
 #include <machine/pcpu.h>
 
+#ifdef _KERNEL
+
 /*
  * Define a set for pcpu data.
  */
 extern uintptr_t *__start_set_pcpu;
+__GLOBL(__start_set_pcpu);
 extern uintptr_t *__stop_set_pcpu;
+__GLOBL(__stop_set_pcpu);
 
 /*
  * Array of dynamic pcpu base offsets.  Indexed by id.
@@ -127,6 +131,8 @@ extern uintptr_t dpcpu_off[];
        }                                                               \
 } while(0)
 
+#endif /* _KERNEL */
+
 /* 
  * XXXUPS remove as soon as we have per cpu variable
  * linker sets and can define rm_queue in _rm_lock.h
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to