svn commit: r212647 - head/sys/sys

Andriy Gapon avg at FreeBSD.org
Wed Sep 15 10:02:46 UTC 2010


Author: avg
Date: Wed Sep 15 10:02:46 2010
New Revision: 212647
URL: http://svn.freebsd.org/changeset/base/212647

Log:
  sys/pcpu.h: remove a workaround for a fixed ld bug
  
  The workaround was incorrectly documented as having something to do with
  set_pcpu section's progbits, but in fact it was for incorrect placement
  of __start_set_pcpu because of the bug in ld.
  The bug was fixed in r210245, see commit message for details.
  
  A side-effect of the workaround was that a zero-size set_pcpu section was
  produced for modules, source code of which included pcpu.h but didn't
  actually define any dynamic per-cpu variables.
  This commit should remove the side-effect.
  
  The same workaround is present sys/net/vnet.h, has an analogous side-effect
  and can be removed as well.
  
  An UPDATING entry that warns about a need for recent ld is following.
  
  MFC after:	1 month

Modified:
  head/sys/sys/pcpu.h

Modified: head/sys/sys/pcpu.h
==============================================================================
--- head/sys/sys/pcpu.h	Wed Sep 15 09:48:18 2010	(r212646)
+++ head/sys/sys/pcpu.h	Wed Sep 15 10:02:46 2010	(r212647)
@@ -44,24 +44,10 @@
 
 /*
  * Define a set for pcpu data.
- * 
- * We don't use SET_DECLARE because it defines the set as 'a' when we
- * want 'aw'.  gcc considers uninitialized data in a separate section
- * writable, and there is no generic zero initializer that works for
- * structs and scalars.
  */
 extern uintptr_t *__start_set_pcpu;
 extern uintptr_t *__stop_set_pcpu;
 
-__asm__(
-#ifdef __arm__
-	".section set_pcpu, \"aw\", %progbits\n"
-#else
-	".section set_pcpu, \"aw\", @progbits\n"
-#endif
-	"\t.p2align " __XSTRING(CACHE_LINE_SHIFT) "\n"
-	"\t.previous");
-
 /*
  * Array of dynamic pcpu base offsets.  Indexed by id.
  */


More information about the svn-src-head mailing list