* [PATCH v9 15/17] kernel: add support for .init_array.* constructors
[not found] ` <1421859105-25253-1-git-send-email-a.ryabinin@samsung.com>
@ 2015-01-21 16:51 ` Andrey Ryabinin
2015-01-21 16:51 ` Andrey Ryabinin
0 siblings, 1 reply; 9+ messages in thread
From: Andrey Ryabinin @ 2015-01-21 16:51 UTC (permalink / raw)
To: linux-kernel
Cc: Andrey Ryabinin, Dmitry Vyukov, Konstantin Serebryany,
Dmitry Chernenkov, Andrey Konovalov, Yuri Gribov,
Konstantin Khlebnikov, Sasha Levin, Christoph Lameter,
Joonsoo Kim, Andrew Morton, Dave Hansen, Andi Kleen, x86,
linux-mm, Arnd Bergmann, open list:GENERIC INCLUDE/A...
KASan uses constructors for initializing redzones for global
variables. Actually KASan doesn't need priorities for constructors,
so they were removed from GCC 5.0, but GCC 4.9.2 still generates
constructors with priorities.
Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com>
---
include/asm-generic/vmlinux.lds.h | 1 +
scripts/module-common.lds | 3 +++
2 files changed, 4 insertions(+)
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index bee5d68..ac78910 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -478,6 +478,7 @@
#define KERNEL_CTORS() . = ALIGN(8); \
VMLINUX_SYMBOL(__ctors_start) = .; \
*(.ctors) \
+ *(SORT(.init_array.*)) \
*(.init_array) \
VMLINUX_SYMBOL(__ctors_end) = .;
#else
diff --git a/scripts/module-common.lds b/scripts/module-common.lds
index 0865b3e..01c5849 100644
--- a/scripts/module-common.lds
+++ b/scripts/module-common.lds
@@ -16,4 +16,7 @@ SECTIONS {
__kcrctab_unused : { *(SORT(___kcrctab_unused+*)) }
__kcrctab_unused_gpl : { *(SORT(___kcrctab_unused_gpl+*)) }
__kcrctab_gpl_future : { *(SORT(___kcrctab_gpl_future+*)) }
+
+ . = ALIGN(8);
+ .init_array : { *(SORT(.init_array.*)) *(.init_array) }
}
--
2.2.1
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v9 15/17] kernel: add support for .init_array.* constructors
2015-01-21 16:51 ` [PATCH v9 15/17] kernel: add support for .init_array.* constructors Andrey Ryabinin
@ 2015-01-21 16:51 ` Andrey Ryabinin
0 siblings, 0 replies; 9+ messages in thread
From: Andrey Ryabinin @ 2015-01-21 16:51 UTC (permalink / raw)
To: linux-kernel
Cc: Andrey Ryabinin, Dmitry Vyukov, Konstantin Serebryany,
Dmitry Chernenkov, Andrey Konovalov, Yuri Gribov,
Konstantin Khlebnikov, Sasha Levin, Christoph Lameter,
Joonsoo Kim, Andrew Morton, Dave Hansen, Andi Kleen, x86,
linux-mm, Arnd Bergmann, open list:GENERIC INCLUDE/A...
KASan uses constructors for initializing redzones for global
variables. Actually KASan doesn't need priorities for constructors,
so they were removed from GCC 5.0, but GCC 4.9.2 still generates
constructors with priorities.
Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com>
---
include/asm-generic/vmlinux.lds.h | 1 +
scripts/module-common.lds | 3 +++
2 files changed, 4 insertions(+)
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index bee5d68..ac78910 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -478,6 +478,7 @@
#define KERNEL_CTORS() . = ALIGN(8); \
VMLINUX_SYMBOL(__ctors_start) = .; \
*(.ctors) \
+ *(SORT(.init_array.*)) \
*(.init_array) \
VMLINUX_SYMBOL(__ctors_end) = .;
#else
diff --git a/scripts/module-common.lds b/scripts/module-common.lds
index 0865b3e..01c5849 100644
--- a/scripts/module-common.lds
+++ b/scripts/module-common.lds
@@ -16,4 +16,7 @@ SECTIONS {
__kcrctab_unused : { *(SORT(___kcrctab_unused+*)) }
__kcrctab_unused_gpl : { *(SORT(___kcrctab_unused_gpl+*)) }
__kcrctab_gpl_future : { *(SORT(___kcrctab_gpl_future+*)) }
+
+ . = ALIGN(8);
+ .init_array : { *(SORT(.init_array.*)) *(.init_array) }
}
--
2.2.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v10 15/17] kernel: add support for .init_array.* constructors
[not found] ` <1422544321-24232-1-git-send-email-a.ryabinin@samsung.com>
@ 2015-01-29 15:11 ` Andrey Ryabinin
2015-01-29 15:11 ` Andrey Ryabinin
2015-01-29 23:13 ` Andrew Morton
0 siblings, 2 replies; 9+ messages in thread
From: Andrey Ryabinin @ 2015-01-29 15:11 UTC (permalink / raw)
To: linux-kernel
Cc: Andrey Ryabinin, Dmitry Vyukov, Konstantin Serebryany,
Dmitry Chernenkov, Andrey Konovalov, Yuri Gribov,
Konstantin Khlebnikov, Sasha Levin, Christoph Lameter,
Joonsoo Kim, Andrew Morton, Dave Hansen, Andi Kleen, x86,
linux-mm, Arnd Bergmann, open list:GENERIC INCLUDE/A...
KASan uses constructors for initializing redzones for global
variables. Actually KASan doesn't need priorities for constructors,
so they were removed from GCC 5.0, but GCC 4.9.2 still generates
constructors with priorities.
Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com>
---
include/asm-generic/vmlinux.lds.h | 1 +
scripts/module-common.lds | 3 +++
2 files changed, 4 insertions(+)
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index bee5d68..ac78910 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -478,6 +478,7 @@
#define KERNEL_CTORS() . = ALIGN(8); \
VMLINUX_SYMBOL(__ctors_start) = .; \
*(.ctors) \
+ *(SORT(.init_array.*)) \
*(.init_array) \
VMLINUX_SYMBOL(__ctors_end) = .;
#else
diff --git a/scripts/module-common.lds b/scripts/module-common.lds
index 0865b3e..01c5849 100644
--- a/scripts/module-common.lds
+++ b/scripts/module-common.lds
@@ -16,4 +16,7 @@ SECTIONS {
__kcrctab_unused : { *(SORT(___kcrctab_unused+*)) }
__kcrctab_unused_gpl : { *(SORT(___kcrctab_unused_gpl+*)) }
__kcrctab_gpl_future : { *(SORT(___kcrctab_gpl_future+*)) }
+
+ . = ALIGN(8);
+ .init_array : { *(SORT(.init_array.*)) *(.init_array) }
}
--
2.2.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v10 15/17] kernel: add support for .init_array.* constructors
2015-01-29 15:11 ` [PATCH v10 " Andrey Ryabinin
@ 2015-01-29 15:11 ` Andrey Ryabinin
2015-01-29 23:13 ` Andrew Morton
1 sibling, 0 replies; 9+ messages in thread
From: Andrey Ryabinin @ 2015-01-29 15:11 UTC (permalink / raw)
To: linux-kernel
Cc: Andrey Ryabinin, Dmitry Vyukov, Konstantin Serebryany,
Dmitry Chernenkov, Andrey Konovalov, Yuri Gribov,
Konstantin Khlebnikov, Sasha Levin, Christoph Lameter,
Joonsoo Kim, Andrew Morton, Dave Hansen, Andi Kleen, x86,
linux-mm, Arnd Bergmann, open list:GENERIC INCLUDE/A...
KASan uses constructors for initializing redzones for global
variables. Actually KASan doesn't need priorities for constructors,
so they were removed from GCC 5.0, but GCC 4.9.2 still generates
constructors with priorities.
Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com>
---
include/asm-generic/vmlinux.lds.h | 1 +
scripts/module-common.lds | 3 +++
2 files changed, 4 insertions(+)
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index bee5d68..ac78910 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -478,6 +478,7 @@
#define KERNEL_CTORS() . = ALIGN(8); \
VMLINUX_SYMBOL(__ctors_start) = .; \
*(.ctors) \
+ *(SORT(.init_array.*)) \
*(.init_array) \
VMLINUX_SYMBOL(__ctors_end) = .;
#else
diff --git a/scripts/module-common.lds b/scripts/module-common.lds
index 0865b3e..01c5849 100644
--- a/scripts/module-common.lds
+++ b/scripts/module-common.lds
@@ -16,4 +16,7 @@ SECTIONS {
__kcrctab_unused : { *(SORT(___kcrctab_unused+*)) }
__kcrctab_unused_gpl : { *(SORT(___kcrctab_unused_gpl+*)) }
__kcrctab_gpl_future : { *(SORT(___kcrctab_gpl_future+*)) }
+
+ . = ALIGN(8);
+ .init_array : { *(SORT(.init_array.*)) *(.init_array) }
}
--
2.2.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v10 15/17] kernel: add support for .init_array.* constructors
2015-01-29 15:11 ` [PATCH v10 " Andrey Ryabinin
2015-01-29 15:11 ` Andrey Ryabinin
@ 2015-01-29 23:13 ` Andrew Morton
2015-01-29 23:13 ` Andrew Morton
2015-01-30 17:21 ` Andrey Ryabinin
1 sibling, 2 replies; 9+ messages in thread
From: Andrew Morton @ 2015-01-29 23:13 UTC (permalink / raw)
To: Andrey Ryabinin
Cc: linux-kernel, Dmitry Vyukov, Konstantin Serebryany,
Dmitry Chernenkov, Andrey Konovalov, Yuri Gribov,
Konstantin Khlebnikov, Sasha Levin, Christoph Lameter,
Joonsoo Kim, Dave Hansen, Andi Kleen, x86, linux-mm,
Arnd Bergmann, open list:GENERIC INCLUDE/A...
On Thu, 29 Jan 2015 18:11:59 +0300 Andrey Ryabinin <a.ryabinin@samsung.com> wrote:
> KASan uses constructors for initializing redzones for global
> variables. Actually KASan doesn't need priorities for constructors,
> so they were removed from GCC 5.0, but GCC 4.9.2 still generates
> constructors with priorities.
I don't understand this changelog either. What's wrong with priorities
and what is the patch doing about it? More details, please.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v10 15/17] kernel: add support for .init_array.* constructors
2015-01-29 23:13 ` Andrew Morton
@ 2015-01-29 23:13 ` Andrew Morton
2015-01-30 17:21 ` Andrey Ryabinin
1 sibling, 0 replies; 9+ messages in thread
From: Andrew Morton @ 2015-01-29 23:13 UTC (permalink / raw)
To: Andrey Ryabinin
Cc: linux-kernel, Dmitry Vyukov, Konstantin Serebryany,
Dmitry Chernenkov, Andrey Konovalov, Yuri Gribov,
Konstantin Khlebnikov, Sasha Levin, Christoph Lameter,
Joonsoo Kim, Dave Hansen, Andi Kleen, x86, linux-mm,
Arnd Bergmann, open list:GENERIC INCLUDE/A...
On Thu, 29 Jan 2015 18:11:59 +0300 Andrey Ryabinin <a.ryabinin@samsung.com> wrote:
> KASan uses constructors for initializing redzones for global
> variables. Actually KASan doesn't need priorities for constructors,
> so they were removed from GCC 5.0, but GCC 4.9.2 still generates
> constructors with priorities.
I don't understand this changelog either. What's wrong with priorities
and what is the patch doing about it? More details, please.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v10 15/17] kernel: add support for .init_array.* constructors
2015-01-29 23:13 ` Andrew Morton
2015-01-29 23:13 ` Andrew Morton
@ 2015-01-30 17:21 ` Andrey Ryabinin
1 sibling, 0 replies; 9+ messages in thread
From: Andrey Ryabinin @ 2015-01-30 17:21 UTC (permalink / raw)
To: Andrew Morton
Cc: linux-kernel, Dmitry Vyukov, Konstantin Serebryany,
Dmitry Chernenkov, Andrey Konovalov, Yuri Gribov,
Konstantin Khlebnikov, Sasha Levin, Christoph Lameter,
Joonsoo Kim, Dave Hansen, Andi Kleen, x86, linux-mm,
Arnd Bergmann, open list:GENERIC INCLUDE/A...
On 01/30/2015 02:13 AM, Andrew Morton wrote:
> On Thu, 29 Jan 2015 18:11:59 +0300 Andrey Ryabinin <a.ryabinin@samsung.com> wrote:
>
>> KASan uses constructors for initializing redzones for global
>> variables. Actually KASan doesn't need priorities for constructors,
>> so they were removed from GCC 5.0, but GCC 4.9.2 still generates
>> constructors with priorities.
>
> I don't understand this changelog either. What's wrong with priorities
> and what is the patch doing about it? More details, please.
>
Currently kernel ignore constructors with priorities (e.g. .init_array.00099).
Kernel understand only constructors with default priority ( .init_array ).
This patch adds support for constructors with priorities.
For kernel image we put pointers to constructors between __ctors_start/__ctors_end
and do_ctors() will call them.
For modules - .init_array.* sections merged into .init_array section.
Module code properly handles constructors in .init_array section.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v11 17/19] kernel: add support for .init_array.* constructors
[not found] ` <1422985392-28652-1-git-send-email-a.ryabinin@samsung.com>
@ 2015-02-03 17:43 ` Andrey Ryabinin
2015-02-03 17:43 ` Andrey Ryabinin
0 siblings, 1 reply; 9+ messages in thread
From: Andrey Ryabinin @ 2015-02-03 17:43 UTC (permalink / raw)
To: linux-kernel
Cc: Andrey Ryabinin, Dmitry Vyukov, Konstantin Serebryany,
Dmitry Chernenkov, Andrey Konovalov, Yuri Gribov,
Konstantin Khlebnikov, Sasha Levin, Christoph Lameter,
Joonsoo Kim, Andrew Morton, Dave Hansen, Andi Kleen, x86,
linux-mm, Arnd Bergmann, open list:GENERIC INCLUDE/A...
KASan uses constructors for initializing redzones for global
variables. Globals instrumentation in GCC 4.9.2 produces
constructors with priority (.init_array.00099)
Currently kernel ignores such constructors. Only constructors
with default priority supported (.init_array)
This patch adds support for constructors with priorities.
For kernel image we put pointers to constructors between
__ctors_start/__ctors_end and do_ctors() will call them
on start up.
For modules we merge .init_array.* sections into resulting .init_array.
Module code properly handles constructors in .init_array section.
Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com>
---
include/asm-generic/vmlinux.lds.h | 1 +
scripts/module-common.lds | 3 +++
2 files changed, 4 insertions(+)
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index bee5d68..ac78910 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -478,6 +478,7 @@
#define KERNEL_CTORS() . = ALIGN(8); \
VMLINUX_SYMBOL(__ctors_start) = .; \
*(.ctors) \
+ *(SORT(.init_array.*)) \
*(.init_array) \
VMLINUX_SYMBOL(__ctors_end) = .;
#else
diff --git a/scripts/module-common.lds b/scripts/module-common.lds
index 0865b3e..01c5849 100644
--- a/scripts/module-common.lds
+++ b/scripts/module-common.lds
@@ -16,4 +16,7 @@ SECTIONS {
__kcrctab_unused : { *(SORT(___kcrctab_unused+*)) }
__kcrctab_unused_gpl : { *(SORT(___kcrctab_unused_gpl+*)) }
__kcrctab_gpl_future : { *(SORT(___kcrctab_gpl_future+*)) }
+
+ . = ALIGN(8);
+ .init_array : { *(SORT(.init_array.*)) *(.init_array) }
}
--
2.2.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v11 17/19] kernel: add support for .init_array.* constructors
2015-02-03 17:43 ` [PATCH v11 17/19] " Andrey Ryabinin
@ 2015-02-03 17:43 ` Andrey Ryabinin
0 siblings, 0 replies; 9+ messages in thread
From: Andrey Ryabinin @ 2015-02-03 17:43 UTC (permalink / raw)
To: linux-kernel
Cc: Andrey Ryabinin, Dmitry Vyukov, Konstantin Serebryany,
Dmitry Chernenkov, Andrey Konovalov, Yuri Gribov,
Konstantin Khlebnikov, Sasha Levin, Christoph Lameter,
Joonsoo Kim, Andrew Morton, Dave Hansen, Andi Kleen, x86,
linux-mm, Arnd Bergmann, open list:GENERIC INCLUDE/A...
KASan uses constructors for initializing redzones for global
variables. Globals instrumentation in GCC 4.9.2 produces
constructors with priority (.init_array.00099)
Currently kernel ignores such constructors. Only constructors
with default priority supported (.init_array)
This patch adds support for constructors with priorities.
For kernel image we put pointers to constructors between
__ctors_start/__ctors_end and do_ctors() will call them
on start up.
For modules we merge .init_array.* sections into resulting .init_array.
Module code properly handles constructors in .init_array section.
Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com>
---
include/asm-generic/vmlinux.lds.h | 1 +
scripts/module-common.lds | 3 +++
2 files changed, 4 insertions(+)
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index bee5d68..ac78910 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -478,6 +478,7 @@
#define KERNEL_CTORS() . = ALIGN(8); \
VMLINUX_SYMBOL(__ctors_start) = .; \
*(.ctors) \
+ *(SORT(.init_array.*)) \
*(.init_array) \
VMLINUX_SYMBOL(__ctors_end) = .;
#else
diff --git a/scripts/module-common.lds b/scripts/module-common.lds
index 0865b3e..01c5849 100644
--- a/scripts/module-common.lds
+++ b/scripts/module-common.lds
@@ -16,4 +16,7 @@ SECTIONS {
__kcrctab_unused : { *(SORT(___kcrctab_unused+*)) }
__kcrctab_unused_gpl : { *(SORT(___kcrctab_unused_gpl+*)) }
__kcrctab_gpl_future : { *(SORT(___kcrctab_gpl_future+*)) }
+
+ . = ALIGN(8);
+ .init_array : { *(SORT(.init_array.*)) *(.init_array) }
}
--
2.2.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-02-03 17:43 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1404905415-9046-1-git-send-email-a.ryabinin@samsung.com>
[not found] ` <1421859105-25253-1-git-send-email-a.ryabinin@samsung.com>
2015-01-21 16:51 ` [PATCH v9 15/17] kernel: add support for .init_array.* constructors Andrey Ryabinin
2015-01-21 16:51 ` Andrey Ryabinin
[not found] ` <1422544321-24232-1-git-send-email-a.ryabinin@samsung.com>
2015-01-29 15:11 ` [PATCH v10 " Andrey Ryabinin
2015-01-29 15:11 ` Andrey Ryabinin
2015-01-29 23:13 ` Andrew Morton
2015-01-29 23:13 ` Andrew Morton
2015-01-30 17:21 ` Andrey Ryabinin
[not found] ` <1422985392-28652-1-git-send-email-a.ryabinin@samsung.com>
2015-02-03 17:43 ` [PATCH v11 17/19] " Andrey Ryabinin
2015-02-03 17:43 ` Andrey Ryabinin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).