support multiple .discard.* sections to avoid section type conflicts
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Fri, 23 Jul 2010 05:58:01 +0000 (22:58 -0700)
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Wed, 28 Jul 2010 05:45:19 +0000 (22:45 -0700)
gcc 4.4.4 will complain if you use a .discard section for both text and
data ("causes a section type conflict").  Add support for ".discard.*"
sections, and use .discard.text for a dummy function in the x86
RESERVE_BRK() macro.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>

arch/x86/include/asm/setup.h
include/asm-generic/vmlinux.lds.h

index 86b1506..ef292c7 100644 (file)
@@ -82,7 +82,7 @@ void *extend_brk(size_t size, size_t align);
  * executable.)
  */
 #define RESERVE_BRK(name,sz)                                           \
-       static void __section(.discard) __used                          \
+       static void __section(.discard.text) __used                     \
        __brk_reservation_fn_##name##__(void) {                         \
                asm volatile (                                          \
                        ".pushsection .brk_reservation,\"aw\",@nobits;" \
index 48c5299..ae6b88e 100644 (file)
        EXIT_DATA                                                       \
        EXIT_CALL                                                       \
        *(.discard)                                                     \
+       *(.discard.*)                                                   \
        }
 
 /**