2003-01-09 09:41:41

by Miles Bader

[permalink] [raw]
Subject: [PATCH] Prevent .gnu.linkonce.this_module section from being merged with other sections

As I mentioned in an earlier email, this is necessary on the v850
because the default -r linker-script merges .gnu.linkonce.t* into the
.text output section. I don't think it will hurt any other platforms.

diff -ruN -X../cludes linux-2.5.55-moo.orig/Makefile linux-2.5.55-moo/Makefile
--- linux-2.5.55-moo.orig/Makefile 2003-01-09 14:03:45.000000000 +0900
+++ linux-2.5.55-moo/Makefile 2003-01-09 14:07:36.000000000 +0900
@@ -163,7 +164,7 @@
MODFLAGS = -DMODULE
CFLAGS_MODULE = $(MODFLAGS)
AFLAGS_MODULE = $(MODFLAGS)
-LDFLAGS_MODULE = -r
+LDFLAGS_MODULE = -r --unique=.gnu.linkonce.this_module
CFLAGS_KERNEL =
AFLAGS_KERNEL =


2003-01-10 09:01:31

by Rusty Russell

[permalink] [raw]
Subject: Re: [PATCH] Prevent .gnu.linkonce.this_module section from being merged with other sections

In message <[email protected]> you write:
> --- linux-2.5.55-moo.orig/Makefile 2003-01-09 14:03:45.000000000 +0900
> +++ linux-2.5.55-moo/Makefile 2003-01-09 14:07:36.000000000 +0900
> @@ -163,7 +164,7 @@
> MODFLAGS = -DMODULE
> CFLAGS_MODULE = $(MODFLAGS)
> AFLAGS_MODULE = $(MODFLAGS)
> -LDFLAGS_MODULE = -r
> +LDFLAGS_MODULE = -r --unique=.gnu.linkonce.this_module

No! Does this not work?

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.55/arch/v850/Makefile working-2.5.55-strlen/arch/v850/Makefile
--- linux-2.5.55/arch/v850/Makefile 2003-01-02 12:46:15.000000000 +1100
+++ working-2.5.55-strlen/arch/v850/Makefile 2003-01-10 19:32:09.000000000 +1100
@@ -24,7 +24,7 @@ CFLAGS += -D__linux__ -DUTS_SYSNAME=\"uC

LDFLAGS_BLOB := -b binary --oformat elf32-little
OBJCOPY_FLAGS_BLOB := -I binary -O elf32-little -B v850e
-
+LDFLAGS_MODULE += --unique=.gnu.linkonce.this_module

HEAD := $(arch_dir)/kernel/head.o $(arch_dir)/kernel/init_task.o
core-y += $(arch_dir)/kernel/

Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.

2003-01-10 09:31:05

by Miles Bader

[permalink] [raw]
Subject: Re: [PATCH] Prevent .gnu.linkonce.this_module section from being merged with other sections

Rusty Russell <[email protected]> writes:
> > +++ linux-2.5.55-moo/Makefile 2003-01-09 14:07:36.000000000 +0900
> > -LDFLAGS_MODULE = -r
> > +LDFLAGS_MODULE = -r --unique=.gnu.linkonce.this_module
>
> No! Does this not work?
>
> +++ working-2.5.55-strlen/arch/v850/Makefile 2003-01-10 19:32:09.000000000 +1100
> +LDFLAGS_MODULE += --unique=.gnu.linkonce.this_module

That'll probably work too.

[Though since the module loader depends on .gnu.linkonce.this_module
being a unique section, I think the global option should be OK as well]

-Miles
--
Is it true that nothing can be known? If so how do we know this? -Woody Allen