summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Barbieri <luca@luca-barbieri.com>2010-04-02 00:41:51 +0200
committerLuca Barbieri <luca@luca-barbieri.com>2010-04-02 00:48:27 +0200
commit3040462c10c19ba8f4a2ab64feee41a18c86a578 (patch)
tree5f6683e91ff0c0ed2743e6672edb231dbf90347e
parent6c5f444f596984778a786b49058d3cf2a4fd2c2c (diff)
gallium/util: use #pragma section instead of #pragma data_seg
They apparently both declare the section, but #pragma data_seg also puts all subsequent definitions in the section, which is undesirable. This should be the correct solution, and is actually used by the reference I cited (but I forgot to do it in my code). Untested, let me know if it doesn't work.
-rw-r--r--src/gallium/auxiliary/util/u_init.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/util/u_init.h b/src/gallium/auxiliary/util/u_init.h
index 40dafadf973..7bc356a7916 100644
--- a/src/gallium/auxiliary/util/u_init.h
+++ b/src/gallium/auxiliary/util/u_init.h
@@ -40,7 +40,7 @@
/* add a pointer to the section where MSVC stores global constructor pointers */
/* see http://blogs.msdn.com/vcblog/archive/2006/10/20/crt-initialization.aspx and
http://stackoverflow.com/questions/1113409/attribute-constructor-equivalent-in-vc */
-#pragma data_seg(".CRT$XCU")
+#pragma section(".CRT$XCU",read)
#define UTIL_INIT(f) static void __cdecl f##__init(void) {f();}; __declspec(allocate(".CRT$XCU")) void (__cdecl* f##__xcu)(void) = f##__init;
#elif defined(__GNUC__)
#define UTIL_INIT(f) static void f##__init(void) __attribute__((constructor)); static void f##__init(void) {f();}