All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] ARC unwinder switch to .eh_frame
@ 2016-09-19 21:49 ` Vineet Gupta
  0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-19 21:49 UTC (permalink / raw)
  To: danielmentz; +Cc: linux-kernel, linux-snps-arc, Alexey.Brodkin, Vineet Gupta

Hi Daniel,

Give these a shot and let me know if they work fine for you.
I'm working on some more improvements to unwinder which will follow
a bit later.

Thx,
-Vineet

Vineet Gupta (3):
  ARC: module: support R_ARC_32_PCREL relocation
  ARC: dw2 unwind: factor CIE specifics for .eh_frame/.debug_frame
  ARC: dw2 unwind: switch to .eh_frame based unwinding

 arch/arc/Makefile             |  2 ++
 arch/arc/include/asm/elf.h    |  3 +--
 arch/arc/kernel/entry.S       | 12 ------------
 arch/arc/kernel/module.c      | 19 ++++++++-----------
 arch/arc/kernel/unwind.c      | 24 +++++++++++++++++-------
 arch/arc/kernel/vmlinux.lds.S | 15 +++++----------
 6 files changed, 33 insertions(+), 42 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 0/3] ARC unwinder switch to .eh_frame
@ 2016-09-19 21:49 ` Vineet Gupta
  0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-19 21:49 UTC (permalink / raw)
  To: linux-snps-arc

Hi Daniel,

Give these a shot and let me know if they work fine for you.
I'm working on some more improvements to unwinder which will follow
a bit later.

Thx,
-Vineet

Vineet Gupta (3):
  ARC: module: support R_ARC_32_PCREL relocation
  ARC: dw2 unwind: factor CIE specifics for .eh_frame/.debug_frame
  ARC: dw2 unwind: switch to .eh_frame based unwinding

 arch/arc/Makefile             |  2 ++
 arch/arc/include/asm/elf.h    |  3 +--
 arch/arc/kernel/entry.S       | 12 ------------
 arch/arc/kernel/module.c      | 19 ++++++++-----------
 arch/arc/kernel/unwind.c      | 24 +++++++++++++++++-------
 arch/arc/kernel/vmlinux.lds.S | 15 +++++----------
 6 files changed, 33 insertions(+), 42 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 1/3] ARC: module: support R_ARC_32_PCREL relocation
  2016-09-19 21:49 ` Vineet Gupta
@ 2016-09-19 21:49   ` Vineet Gupta
  -1 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-19 21:49 UTC (permalink / raw)
  To: danielmentz; +Cc: linux-kernel, linux-snps-arc, Alexey.Brodkin, Vineet Gupta

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 arch/arc/include/asm/elf.h | 3 +--
 arch/arc/kernel/module.c   | 6 ++++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/arch/arc/include/asm/elf.h b/arch/arc/include/asm/elf.h
index 51a99e25fe33..7096f97a1434 100644
--- a/arch/arc/include/asm/elf.h
+++ b/arch/arc/include/asm/elf.h
@@ -23,8 +23,7 @@
 /* ARC Relocations (kernel Modules only) */
 #define  R_ARC_32		0x4
 #define  R_ARC_32_ME		0x1B
-#define  R_ARC_S25H_PCREL	0x10
-#define  R_ARC_S25W_PCREL	0x11
+#define  R_ARC_32_PCREL		0x31
 
 /*to set parameters in the core dumps */
 #define ELF_ARCH		EM_ARCOMPACT
diff --git a/arch/arc/kernel/module.c b/arch/arc/kernel/module.c
index 376e04622962..576a238434a1 100644
--- a/arch/arc/kernel/module.c
+++ b/arch/arc/kernel/module.c
@@ -106,10 +106,12 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
 		 */
 		relo_type = ELF32_R_TYPE(rel_entry[i].r_info);
 
-		if (likely(R_ARC_32_ME == relo_type))
+		if (likely(R_ARC_32_ME == relo_type))	/* ME ( S + A ) */
 			arc_write_me((unsigned short *)location, relocation);
-		else if (R_ARC_32 == relo_type)
+		else if (R_ARC_32 == relo_type)		/* ( S + A ) */
 			*((Elf32_Addr *) location) = relocation;
+		else if (R_ARC_32_PCREL == relo_type)	/* ( S + A ) - PDATA ) */
+			*((Elf32_Addr *) location) = relocation - location;
 		else
 			goto relo_err;
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 1/3] ARC: module: support R_ARC_32_PCREL relocation
@ 2016-09-19 21:49   ` Vineet Gupta
  0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-19 21:49 UTC (permalink / raw)
  To: linux-snps-arc

Signed-off-by: Vineet Gupta <vgupta at synopsys.com>
---
 arch/arc/include/asm/elf.h | 3 +--
 arch/arc/kernel/module.c   | 6 ++++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/arch/arc/include/asm/elf.h b/arch/arc/include/asm/elf.h
index 51a99e25fe33..7096f97a1434 100644
--- a/arch/arc/include/asm/elf.h
+++ b/arch/arc/include/asm/elf.h
@@ -23,8 +23,7 @@
 /* ARC Relocations (kernel Modules only) */
 #define  R_ARC_32		0x4
 #define  R_ARC_32_ME		0x1B
-#define  R_ARC_S25H_PCREL	0x10
-#define  R_ARC_S25W_PCREL	0x11
+#define  R_ARC_32_PCREL		0x31
 
 /*to set parameters in the core dumps */
 #define ELF_ARCH		EM_ARCOMPACT
diff --git a/arch/arc/kernel/module.c b/arch/arc/kernel/module.c
index 376e04622962..576a238434a1 100644
--- a/arch/arc/kernel/module.c
+++ b/arch/arc/kernel/module.c
@@ -106,10 +106,12 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
 		 */
 		relo_type = ELF32_R_TYPE(rel_entry[i].r_info);
 
-		if (likely(R_ARC_32_ME == relo_type))
+		if (likely(R_ARC_32_ME == relo_type))	/* ME ( S + A ) */
 			arc_write_me((unsigned short *)location, relocation);
-		else if (R_ARC_32 == relo_type)
+		else if (R_ARC_32 == relo_type)		/* ( S + A ) */
 			*((Elf32_Addr *) location) = relocation;
+		else if (R_ARC_32_PCREL == relo_type)	/* ( S + A ) - PDATA ) */
+			*((Elf32_Addr *) location) = relocation - location;
 		else
 			goto relo_err;
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 2/3] ARC: dw2 unwind: factor CIE specifics for .eh_frame/.debug_frame
  2016-09-19 21:49 ` Vineet Gupta
@ 2016-09-19 21:49   ` Vineet Gupta
  -1 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-19 21:49 UTC (permalink / raw)
  To: danielmentz; +Cc: linux-kernel, linux-snps-arc, Alexey.Brodkin, Vineet Gupta

This paves way for switching to .eh_frame based unwindiing

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 arch/arc/kernel/unwind.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
index 0587bf121d11..4e5dbe7617a1 100644
--- a/arch/arc/kernel/unwind.c
+++ b/arch/arc/kernel/unwind.c
@@ -111,6 +111,8 @@ UNW_REGISTER_INFO};
 #define DW_EH_PE_indirect 0x80
 #define DW_EH_PE_omit     0xff
 
+#define CIE_ID	0xffffffffUL
+
 typedef unsigned long uleb128_t;
 typedef signed long sleb128_t;
 
@@ -232,6 +234,7 @@ void __init arc_unwind_init(void)
 
 static const u32 bad_cie, not_fde;
 static const u32 *cie_for_fde(const u32 *fde, const struct unwind_table *);
+static const u32 *__cie_for_fde(const u32 *fde);
 static signed fde_pointer_type(const u32 *cie);
 
 struct eh_frame_hdr_table_entry {
@@ -338,10 +341,9 @@ static void init_unwind_hdr(struct unwind_table *table,
 	for (fde = table->address, tableSize = table->size, n = 0;
 	     tableSize;
 	     tableSize -= sizeof(*fde) + *fde, fde += 1 + *fde / sizeof(*fde)) {
-		/* const u32 *cie = fde + 1 - fde[1] / sizeof(*fde); */
-		const u32 *cie = (const u32 *)(fde[1]);
+		const u32 *cie = __cie_for_fde(fde);
 
-		if (fde[1] == 0xffffffff)
+		if (fde[1] == CIE_ID)
 			continue;	/* this is a CIE */
 		ptr = (const u8 *)(fde + 2);
 		header->table[n].start = read_pointer(&ptr,
@@ -504,6 +506,16 @@ static sleb128_t get_sleb128(const u8 **pcur, const u8 *end)
 	return value;
 }
 
+static const u32 *__cie_for_fde(const u32 *fde)
+{
+	const u32 *cie;
+
+	/* cie = fde + 1 - fde[1] / sizeof(*fde); */
+	cie = (u32 *) fde[1];
+
+	return cie;
+}
+
 static const u32 *cie_for_fde(const u32 *fde, const struct unwind_table *table)
 {
 	const u32 *cie;
@@ -511,19 +523,18 @@ static const u32 *cie_for_fde(const u32 *fde, const struct unwind_table *table)
 	if (!*fde || (*fde & (sizeof(*fde) - 1)))
 		return &bad_cie;
 
-	if (fde[1] == 0xffffffff)
+	if (fde[1] == CIE_ID)
 		return &not_fde;	/* this is a CIE */
 
 	if ((fde[1] & (sizeof(*fde) - 1)))
 /* || fde[1] > (unsigned long)(fde + 1) - (unsigned long)table->address) */
 		return NULL;	/* this is not a valid FDE */
 
-	/* cie = fde + 1 - fde[1] / sizeof(*fde); */
-	cie = (u32 *) fde[1];
+	cie = __cie_for_fde(fde);
 
 	if (*cie <= sizeof(*cie) + 4 || *cie >= fde[1] - sizeof(*fde)
 	    || (*cie & (sizeof(*cie) - 1))
-	    || (cie[1] != 0xffffffff))
+	    || (cie[1] != CIE_ID))
 		return NULL;	/* this is not a (valid) CIE */
 	return cie;
 }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 2/3] ARC: dw2 unwind: factor CIE specifics for .eh_frame/.debug_frame
@ 2016-09-19 21:49   ` Vineet Gupta
  0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-19 21:49 UTC (permalink / raw)
  To: linux-snps-arc

This paves way for switching to .eh_frame based unwindiing

Signed-off-by: Vineet Gupta <vgupta at synopsys.com>
---
 arch/arc/kernel/unwind.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
index 0587bf121d11..4e5dbe7617a1 100644
--- a/arch/arc/kernel/unwind.c
+++ b/arch/arc/kernel/unwind.c
@@ -111,6 +111,8 @@ UNW_REGISTER_INFO};
 #define DW_EH_PE_indirect 0x80
 #define DW_EH_PE_omit     0xff
 
+#define CIE_ID	0xffffffffUL
+
 typedef unsigned long uleb128_t;
 typedef signed long sleb128_t;
 
@@ -232,6 +234,7 @@ void __init arc_unwind_init(void)
 
 static const u32 bad_cie, not_fde;
 static const u32 *cie_for_fde(const u32 *fde, const struct unwind_table *);
+static const u32 *__cie_for_fde(const u32 *fde);
 static signed fde_pointer_type(const u32 *cie);
 
 struct eh_frame_hdr_table_entry {
@@ -338,10 +341,9 @@ static void init_unwind_hdr(struct unwind_table *table,
 	for (fde = table->address, tableSize = table->size, n = 0;
 	     tableSize;
 	     tableSize -= sizeof(*fde) + *fde, fde += 1 + *fde / sizeof(*fde)) {
-		/* const u32 *cie = fde + 1 - fde[1] / sizeof(*fde); */
-		const u32 *cie = (const u32 *)(fde[1]);
+		const u32 *cie = __cie_for_fde(fde);
 
-		if (fde[1] == 0xffffffff)
+		if (fde[1] == CIE_ID)
 			continue;	/* this is a CIE */
 		ptr = (const u8 *)(fde + 2);
 		header->table[n].start = read_pointer(&ptr,
@@ -504,6 +506,16 @@ static sleb128_t get_sleb128(const u8 **pcur, const u8 *end)
 	return value;
 }
 
+static const u32 *__cie_for_fde(const u32 *fde)
+{
+	const u32 *cie;
+
+	/* cie = fde + 1 - fde[1] / sizeof(*fde); */
+	cie = (u32 *) fde[1];
+
+	return cie;
+}
+
 static const u32 *cie_for_fde(const u32 *fde, const struct unwind_table *table)
 {
 	const u32 *cie;
@@ -511,19 +523,18 @@ static const u32 *cie_for_fde(const u32 *fde, const struct unwind_table *table)
 	if (!*fde || (*fde & (sizeof(*fde) - 1)))
 		return &bad_cie;
 
-	if (fde[1] == 0xffffffff)
+	if (fde[1] == CIE_ID)
 		return &not_fde;	/* this is a CIE */
 
 	if ((fde[1] & (sizeof(*fde) - 1)))
 /* || fde[1] > (unsigned long)(fde + 1) - (unsigned long)table->address) */
 		return NULL;	/* this is not a valid FDE */
 
-	/* cie = fde + 1 - fde[1] / sizeof(*fde); */
-	cie = (u32 *) fde[1];
+	cie = __cie_for_fde(fde);
 
 	if (*cie <= sizeof(*cie) + 4 || *cie >= fde[1] - sizeof(*fde)
 	    || (*cie & (sizeof(*cie) - 1))
-	    || (cie[1] != 0xffffffff))
+	    || (cie[1] != CIE_ID))
 		return NULL;	/* this is not a (valid) CIE */
 	return cie;
 }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 3/3] ARC: dw2 unwind: switch to .eh_frame based unwinding
  2016-09-19 21:49 ` Vineet Gupta
@ 2016-09-19 21:49   ` Vineet Gupta
  -1 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-19 21:49 UTC (permalink / raw)
  To: danielmentz; +Cc: linux-kernel, linux-snps-arc, Alexey.Brodkin, Vineet Gupta

So finally after almost 8 years of dealing with .debug_frame, we are
finally switching to .eh_frame. The reason being stripped kernel
binaries had non-functional unwinder as .debug_frame was gone.
Also, in general .eh_frame seems more common way of doing unwinding.

This also folds a revert of f52e126cc747 ("ARC: unwind: ensure that
.debug_frame is generated (vs. .eh_frame)") to ensure that we start
getting .eh_frame

Reported-by: Daniel Mentz <danielmentz@google.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 arch/arc/Makefile             |  2 ++
 arch/arc/kernel/entry.S       | 12 ------------
 arch/arc/kernel/module.c      | 13 ++++---------
 arch/arc/kernel/unwind.c      |  5 ++---
 arch/arc/kernel/vmlinux.lds.S | 15 +++++----------
 5 files changed, 13 insertions(+), 34 deletions(-)

diff --git a/arch/arc/Makefile b/arch/arc/Makefile
index 601ed173080b..fc6ff8f09f23 100644
--- a/arch/arc/Makefile
+++ b/arch/arc/Makefile
@@ -66,6 +66,8 @@ endif
 
 endif
 
+cflags-$(CONFIG_ARC_DW2_UNWIND)		+= -fasynchronous-unwind-tables
+
 # By default gcc 4.8 generates dwarf4 which kernel unwinder can't grok
 ifeq ($(atleast_gcc48),y)
 cflags-$(CONFIG_ARC_DW2_UNWIND)		+= -gdwarf-2
diff --git a/arch/arc/kernel/entry.S b/arch/arc/kernel/entry.S
index 2efb0625331d..741712d4d6ff 100644
--- a/arch/arc/kernel/entry.S
+++ b/arch/arc/kernel/entry.S
@@ -61,18 +61,6 @@ ENTRY(ret_from_fork)
 	b    ret_from_exception
 END(ret_from_fork)
 
-#ifdef CONFIG_ARC_DW2_UNWIND
-; Workaround for bug 94179 (STAR ):
-; Despite -fasynchronous-unwind-tables, linker is not making dwarf2 unwinder
-; section (.debug_frame) as loadable. So we force it here.
-; This also fixes STAR 9000487933 where the prev-workaround (objcopy --setflag)
-; would not work after a clean build due to kernel build system dependencies.
-.section .debug_frame, "wa",@progbits
-
-; Reset to .text as this file is included in entry-<isa>.S
-.section .text, "ax",@progbits
-#endif
-
 ;################### Non TLB Exception Handling #############################
 
 ; ---------------------------------------------
diff --git a/arch/arc/kernel/module.c b/arch/arc/kernel/module.c
index 576a238434a1..9a2849756022 100644
--- a/arch/arc/kernel/module.c
+++ b/arch/arc/kernel/module.c
@@ -22,13 +22,9 @@ static inline void arc_write_me(unsigned short *addr, unsigned long value)
 	*(addr + 1) = (value & 0xffff);
 }
 
-/* ARC specific section quirks - before relocation loop in generic loader
- *
- * For dwarf unwinding out of modules, this needs to
- * 1. Ensure the .debug_frame is allocatable (ARC Linker bug: despite
- *    -fasynchronous-unwind-tables it doesn't).
- * 2. Since we are iterating thru sec hdr tbl anyways, make a note of
- *    the exact section index, for later use.
+/*
+ * This gets called before relocation loop in generic loader
+ * Make a note of the section index of unwinding section
  */
 int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
 			      char *secstr, struct module *mod)
@@ -40,8 +36,7 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
 	mod->arch.unw_info = NULL;
 
 	for (i = 1; i < hdr->e_shnum; i++) {
-		if (strcmp(secstr+sechdrs[i].sh_name, ".debug_frame") == 0) {
-			sechdrs[i].sh_flags |= SHF_ALLOC;
+		if (strcmp(secstr+sechdrs[i].sh_name, ".eh_frame") == 0) {
 			mod->arch.unw_sec_idx = i;
 			break;
 		}
diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
index 4e5dbe7617a1..61fd1ce63c56 100644
--- a/arch/arc/kernel/unwind.c
+++ b/arch/arc/kernel/unwind.c
@@ -111,7 +111,7 @@ UNW_REGISTER_INFO};
 #define DW_EH_PE_indirect 0x80
 #define DW_EH_PE_omit     0xff
 
-#define CIE_ID	0xffffffffUL
+#define CIE_ID	0
 
 typedef unsigned long uleb128_t;
 typedef signed long sleb128_t;
@@ -510,8 +510,7 @@ static const u32 *__cie_for_fde(const u32 *fde)
 {
 	const u32 *cie;
 
-	/* cie = fde + 1 - fde[1] / sizeof(*fde); */
-	cie = (u32 *) fde[1];
+	cie = fde + 1 - fde[1] / sizeof(*fde);
 
 	return cie;
 }
diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S
index 894e696bddaa..bb6d8c5ff2e9 100644
--- a/arch/arc/kernel/vmlinux.lds.S
+++ b/arch/arc/kernel/vmlinux.lds.S
@@ -84,7 +84,7 @@ SECTIONS
 
 	/*
 	 * .exit.text is discard at runtime, not link time, to deal with
-	 * references from .debug_frame
+	 * references from unwinding sections
 	 * It will be init freed, being inside [__init_start : __init_end]
 	 */
 	.exit.text : { EXIT_TEXT }
@@ -120,18 +120,13 @@ SECTIONS
 
 #ifdef CONFIG_ARC_DW2_UNWIND
 	. = ALIGN(PAGE_SIZE);
-	.debug_frame  : {
+	.eh_frame  : {
 		__start_unwind = .;
-		*(.debug_frame)
+		*(.eh_frame)
 		__end_unwind = .;
 	}
-	/*
-	 * gcc 4.8 generates this for -fasynchonous-unwind-tables,
-	 * while we still use the .debug_frame based unwinder
-	 */
-	/DISCARD/ : {	*(.eh_frame) }
 #else
-	/DISCARD/ : {	*(.debug_frame) }
+	/DISCARD/ : {	*(.eh_frame) }
 #endif
 
 	NOTES
@@ -148,7 +143,7 @@ SECTIONS
 	}
 
 #ifndef CONFIG_DEBUG_INFO
-	/* open-coded because we need .debug_frame seperately for unwinding */
+	/DISCARD/ : { *(.debug_frame) }
 	/DISCARD/ : { *(.debug_aranges) }
 	/DISCARD/ : { *(.debug_pubnames) }
 	/DISCARD/ : { *(.debug_info) }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 3/3] ARC: dw2 unwind: switch to .eh_frame based unwinding
@ 2016-09-19 21:49   ` Vineet Gupta
  0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-19 21:49 UTC (permalink / raw)
  To: linux-snps-arc

So finally after almost 8 years of dealing with .debug_frame, we are
finally switching to .eh_frame. The reason being stripped kernel
binaries had non-functional unwinder as .debug_frame was gone.
Also, in general .eh_frame seems more common way of doing unwinding.

This also folds a revert of f52e126cc747 ("ARC: unwind: ensure that
.debug_frame is generated (vs. .eh_frame)") to ensure that we start
getting .eh_frame

Reported-by: Daniel Mentz <danielmentz at google.com>
Signed-off-by: Vineet Gupta <vgupta at synopsys.com>
---
 arch/arc/Makefile             |  2 ++
 arch/arc/kernel/entry.S       | 12 ------------
 arch/arc/kernel/module.c      | 13 ++++---------
 arch/arc/kernel/unwind.c      |  5 ++---
 arch/arc/kernel/vmlinux.lds.S | 15 +++++----------
 5 files changed, 13 insertions(+), 34 deletions(-)

diff --git a/arch/arc/Makefile b/arch/arc/Makefile
index 601ed173080b..fc6ff8f09f23 100644
--- a/arch/arc/Makefile
+++ b/arch/arc/Makefile
@@ -66,6 +66,8 @@ endif
 
 endif
 
+cflags-$(CONFIG_ARC_DW2_UNWIND)		+= -fasynchronous-unwind-tables
+
 # By default gcc 4.8 generates dwarf4 which kernel unwinder can't grok
 ifeq ($(atleast_gcc48),y)
 cflags-$(CONFIG_ARC_DW2_UNWIND)		+= -gdwarf-2
diff --git a/arch/arc/kernel/entry.S b/arch/arc/kernel/entry.S
index 2efb0625331d..741712d4d6ff 100644
--- a/arch/arc/kernel/entry.S
+++ b/arch/arc/kernel/entry.S
@@ -61,18 +61,6 @@ ENTRY(ret_from_fork)
 	b    ret_from_exception
 END(ret_from_fork)
 
-#ifdef CONFIG_ARC_DW2_UNWIND
-; Workaround for bug 94179 (STAR ):
-; Despite -fasynchronous-unwind-tables, linker is not making dwarf2 unwinder
-; section (.debug_frame) as loadable. So we force it here.
-; This also fixes STAR 9000487933 where the prev-workaround (objcopy --setflag)
-; would not work after a clean build due to kernel build system dependencies.
-.section .debug_frame, "wa", at progbits
-
-; Reset to .text as this file is included in entry-<isa>.S
-.section .text, "ax", at progbits
-#endif
-
 ;################### Non TLB Exception Handling #############################
 
 ; ---------------------------------------------
diff --git a/arch/arc/kernel/module.c b/arch/arc/kernel/module.c
index 576a238434a1..9a2849756022 100644
--- a/arch/arc/kernel/module.c
+++ b/arch/arc/kernel/module.c
@@ -22,13 +22,9 @@ static inline void arc_write_me(unsigned short *addr, unsigned long value)
 	*(addr + 1) = (value & 0xffff);
 }
 
-/* ARC specific section quirks - before relocation loop in generic loader
- *
- * For dwarf unwinding out of modules, this needs to
- * 1. Ensure the .debug_frame is allocatable (ARC Linker bug: despite
- *    -fasynchronous-unwind-tables it doesn't).
- * 2. Since we are iterating thru sec hdr tbl anyways, make a note of
- *    the exact section index, for later use.
+/*
+ * This gets called before relocation loop in generic loader
+ * Make a note of the section index of unwinding section
  */
 int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
 			      char *secstr, struct module *mod)
@@ -40,8 +36,7 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
 	mod->arch.unw_info = NULL;
 
 	for (i = 1; i < hdr->e_shnum; i++) {
-		if (strcmp(secstr+sechdrs[i].sh_name, ".debug_frame") == 0) {
-			sechdrs[i].sh_flags |= SHF_ALLOC;
+		if (strcmp(secstr+sechdrs[i].sh_name, ".eh_frame") == 0) {
 			mod->arch.unw_sec_idx = i;
 			break;
 		}
diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
index 4e5dbe7617a1..61fd1ce63c56 100644
--- a/arch/arc/kernel/unwind.c
+++ b/arch/arc/kernel/unwind.c
@@ -111,7 +111,7 @@ UNW_REGISTER_INFO};
 #define DW_EH_PE_indirect 0x80
 #define DW_EH_PE_omit     0xff
 
-#define CIE_ID	0xffffffffUL
+#define CIE_ID	0
 
 typedef unsigned long uleb128_t;
 typedef signed long sleb128_t;
@@ -510,8 +510,7 @@ static const u32 *__cie_for_fde(const u32 *fde)
 {
 	const u32 *cie;
 
-	/* cie = fde + 1 - fde[1] / sizeof(*fde); */
-	cie = (u32 *) fde[1];
+	cie = fde + 1 - fde[1] / sizeof(*fde);
 
 	return cie;
 }
diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S
index 894e696bddaa..bb6d8c5ff2e9 100644
--- a/arch/arc/kernel/vmlinux.lds.S
+++ b/arch/arc/kernel/vmlinux.lds.S
@@ -84,7 +84,7 @@ SECTIONS
 
 	/*
 	 * .exit.text is discard at runtime, not link time, to deal with
-	 * references from .debug_frame
+	 * references from unwinding sections
 	 * It will be init freed, being inside [__init_start : __init_end]
 	 */
 	.exit.text : { EXIT_TEXT }
@@ -120,18 +120,13 @@ SECTIONS
 
 #ifdef CONFIG_ARC_DW2_UNWIND
 	. = ALIGN(PAGE_SIZE);
-	.debug_frame  : {
+	.eh_frame  : {
 		__start_unwind = .;
-		*(.debug_frame)
+		*(.eh_frame)
 		__end_unwind = .;
 	}
-	/*
-	 * gcc 4.8 generates this for -fasynchonous-unwind-tables,
-	 * while we still use the .debug_frame based unwinder
-	 */
-	/DISCARD/ : {	*(.eh_frame) }
 #else
-	/DISCARD/ : {	*(.debug_frame) }
+	/DISCARD/ : {	*(.eh_frame) }
 #endif
 
 	NOTES
@@ -148,7 +143,7 @@ SECTIONS
 	}
 
 #ifndef CONFIG_DEBUG_INFO
-	/* open-coded because we need .debug_frame seperately for unwinding */
+	/DISCARD/ : { *(.debug_frame) }
 	/DISCARD/ : { *(.debug_aranges) }
 	/DISCARD/ : { *(.debug_pubnames) }
 	/DISCARD/ : { *(.debug_info) }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [PATCH 0/3] ARC unwinder switch to .eh_frame
  2016-09-19 21:49 ` Vineet Gupta
@ 2016-09-20  1:21   ` Daniel Mentz
  -1 siblings, 0 replies; 26+ messages in thread
From: Daniel Mentz @ 2016-09-20  1:21 UTC (permalink / raw)
  To: Vineet Gupta; +Cc: linux-kernel, linux-snps-arc, Alexey Brodkin

Hi Vineet,

Thank you for your patches. I applied them, and verified that
unwinding works with code that is compiled into the kernel image as
well as kernel modules.
I confirmed that the .eh_frame section is present and that the
.debug_frame section is absent. I also verified that the file size of
the .ko files are small enough for our embedded platform and that
unnecessary sections like .debug_info, .debug_line, .debug_str etc.
are also absent.
Is there anything else you want me to test?
Thanks
Daniel


On Mon, Sep 19, 2016 at 2:49 PM, Vineet Gupta
<Vineet.Gupta1@synopsys.com> wrote:
> Hi Daniel,
>
> Give these a shot and let me know if they work fine for you.
> I'm working on some more improvements to unwinder which will follow
> a bit later.
>
> Thx,
> -Vineet
>
> Vineet Gupta (3):
>   ARC: module: support R_ARC_32_PCREL relocation
>   ARC: dw2 unwind: factor CIE specifics for .eh_frame/.debug_frame
>   ARC: dw2 unwind: switch to .eh_frame based unwinding
>
>  arch/arc/Makefile             |  2 ++
>  arch/arc/include/asm/elf.h    |  3 +--
>  arch/arc/kernel/entry.S       | 12 ------------
>  arch/arc/kernel/module.c      | 19 ++++++++-----------
>  arch/arc/kernel/unwind.c      | 24 +++++++++++++++++-------
>  arch/arc/kernel/vmlinux.lds.S | 15 +++++----------
>  6 files changed, 33 insertions(+), 42 deletions(-)
>
> --
> 2.7.4
>

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 0/3] ARC unwinder switch to .eh_frame
@ 2016-09-20  1:21   ` Daniel Mentz
  0 siblings, 0 replies; 26+ messages in thread
From: Daniel Mentz @ 2016-09-20  1:21 UTC (permalink / raw)
  To: linux-snps-arc

Hi Vineet,

Thank you for your patches. I applied them, and verified that
unwinding works with code that is compiled into the kernel image as
well as kernel modules.
I confirmed that the .eh_frame section is present and that the
.debug_frame section is absent. I also verified that the file size of
the .ko files are small enough for our embedded platform and that
unnecessary sections like .debug_info, .debug_line, .debug_str etc.
are also absent.
Is there anything else you want me to test?
Thanks
Daniel


On Mon, Sep 19, 2016 at 2:49 PM, Vineet Gupta
<Vineet.Gupta1@synopsys.com> wrote:
> Hi Daniel,
>
> Give these a shot and let me know if they work fine for you.
> I'm working on some more improvements to unwinder which will follow
> a bit later.
>
> Thx,
> -Vineet
>
> Vineet Gupta (3):
>   ARC: module: support R_ARC_32_PCREL relocation
>   ARC: dw2 unwind: factor CIE specifics for .eh_frame/.debug_frame
>   ARC: dw2 unwind: switch to .eh_frame based unwinding
>
>  arch/arc/Makefile             |  2 ++
>  arch/arc/include/asm/elf.h    |  3 +--
>  arch/arc/kernel/entry.S       | 12 ------------
>  arch/arc/kernel/module.c      | 19 ++++++++-----------
>  arch/arc/kernel/unwind.c      | 24 +++++++++++++++++-------
>  arch/arc/kernel/vmlinux.lds.S | 15 +++++----------
>  6 files changed, 33 insertions(+), 42 deletions(-)
>
> --
> 2.7.4
>

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 0/3] ARC unwinder switch to .eh_frame
  2016-09-20  1:21   ` Daniel Mentz
@ 2016-09-20  6:13     ` Vineet Gupta
  -1 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-20  6:13 UTC (permalink / raw)
  To: Daniel Mentz; +Cc: linux-kernel, linux-snps-arc, Alexey Brodkin

On 09/19/2016 06:21 PM, Daniel Mentz wrote:
> Hi Vineet,
> 
> Thank you for your patches. I applied them, and verified that
> unwinding works with code that is compiled into the kernel image as
> well as kernel modules.
> I confirmed that the .eh_frame section is present and that the
> .debug_frame section is absent. I also verified that the file size of
> the .ko files are small enough for our embedded platform and that
> unnecessary sections like .debug_info, .debug_line, .debug_str etc.
> are also absent.
> Is there anything else you want me to test?
> Thanks
> Daniel

Nope - that is it. Just wanted to make sure it is "field" tested :-)

Thx,
-Vineet


> On Mon, Sep 19, 2016 at 2:49 PM, Vineet Gupta
> <Vineet.Gupta1@synopsys.com> wrote:
>> Hi Daniel,
>>
>> Give these a shot and let me know if they work fine for you.
>> I'm working on some more improvements to unwinder which will follow
>> a bit later.
>>
>> Thx,
>> -Vineet
>>
>> Vineet Gupta (3):
>>   ARC: module: support R_ARC_32_PCREL relocation
>>   ARC: dw2 unwind: factor CIE specifics for .eh_frame/.debug_frame
>>   ARC: dw2 unwind: switch to .eh_frame based unwinding
>>
>>  arch/arc/Makefile             |  2 ++
>>  arch/arc/include/asm/elf.h    |  3 +--
>>  arch/arc/kernel/entry.S       | 12 ------------
>>  arch/arc/kernel/module.c      | 19 ++++++++-----------
>>  arch/arc/kernel/unwind.c      | 24 +++++++++++++++++-------
>>  arch/arc/kernel/vmlinux.lds.S | 15 +++++----------
>>  6 files changed, 33 insertions(+), 42 deletions(-)
>>
>> --
>> 2.7.4
>>
> 

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 0/3] ARC unwinder switch to .eh_frame
@ 2016-09-20  6:13     ` Vineet Gupta
  0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-20  6:13 UTC (permalink / raw)
  To: linux-snps-arc

On 09/19/2016 06:21 PM, Daniel Mentz wrote:
> Hi Vineet,
> 
> Thank you for your patches. I applied them, and verified that
> unwinding works with code that is compiled into the kernel image as
> well as kernel modules.
> I confirmed that the .eh_frame section is present and that the
> .debug_frame section is absent. I also verified that the file size of
> the .ko files are small enough for our embedded platform and that
> unnecessary sections like .debug_info, .debug_line, .debug_str etc.
> are also absent.
> Is there anything else you want me to test?
> Thanks
> Daniel

Nope - that is it. Just wanted to make sure it is "field" tested :-)

Thx,
-Vineet


> On Mon, Sep 19, 2016 at 2:49 PM, Vineet Gupta
> <Vineet.Gupta1@synopsys.com> wrote:
>> Hi Daniel,
>>
>> Give these a shot and let me know if they work fine for you.
>> I'm working on some more improvements to unwinder which will follow
>> a bit later.
>>
>> Thx,
>> -Vineet
>>
>> Vineet Gupta (3):
>>   ARC: module: support R_ARC_32_PCREL relocation
>>   ARC: dw2 unwind: factor CIE specifics for .eh_frame/.debug_frame
>>   ARC: dw2 unwind: switch to .eh_frame based unwinding
>>
>>  arch/arc/Makefile             |  2 ++
>>  arch/arc/include/asm/elf.h    |  3 +--
>>  arch/arc/kernel/entry.S       | 12 ------------
>>  arch/arc/kernel/module.c      | 19 ++++++++-----------
>>  arch/arc/kernel/unwind.c      | 24 +++++++++++++++++-------
>>  arch/arc/kernel/vmlinux.lds.S | 15 +++++----------
>>  6 files changed, 33 insertions(+), 42 deletions(-)
>>
>> --
>> 2.7.4
>>
> 

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 0/3] ARC unwinder switch to .eh_frame
  2016-09-20  6:13     ` Vineet Gupta
@ 2016-09-22 20:39       ` Vineet Gupta
  -1 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-22 20:39 UTC (permalink / raw)
  To: Daniel Mentz; +Cc: linux-kernel, linux-snps-arc, Alexey Brodkin

Hi Daniel,

On 09/19/2016 11:13 PM, Vineet Gupta wrote:
> On 09/19/2016 06:21 PM, Daniel Mentz wrote:
>> > Hi Vineet,
>> > 
>> > Thank you for your patches. I applied them, and verified that
>> > unwinding works with code that is compiled into the kernel image as
>> > well as kernel modules.
>> > I confirmed that the .eh_frame section is present and that the
>> > .debug_frame section is absent. I also verified that the file size of
>> > the .ko files are small enough for our embedded platform and that
>> > unnecessary sections like .debug_info, .debug_line, .debug_str etc.
>> > are also absent.
>> > Is there anything else you want me to test?
>> > Thanks
>> > Daniel
> Nope - that is it. Just wanted to make sure it is "field" tested :-)
> 
> Thx,
> -Vineet

FYI - I've pushed some more changes to unwinding department so that we get
call-traces for memset/memcpy et al.

git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git  #for-next

-Vineet

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 0/3] ARC unwinder switch to .eh_frame
@ 2016-09-22 20:39       ` Vineet Gupta
  0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-22 20:39 UTC (permalink / raw)
  To: linux-snps-arc

Hi Daniel,

On 09/19/2016 11:13 PM, Vineet Gupta wrote:
> On 09/19/2016 06:21 PM, Daniel Mentz wrote:
>> > Hi Vineet,
>> > 
>> > Thank you for your patches. I applied them, and verified that
>> > unwinding works with code that is compiled into the kernel image as
>> > well as kernel modules.
>> > I confirmed that the .eh_frame section is present and that the
>> > .debug_frame section is absent. I also verified that the file size of
>> > the .ko files are small enough for our embedded platform and that
>> > unnecessary sections like .debug_info, .debug_line, .debug_str etc.
>> > are also absent.
>> > Is there anything else you want me to test?
>> > Thanks
>> > Daniel
> Nope - that is it. Just wanted to make sure it is "field" tested :-)
> 
> Thx,
> -Vineet

FYI - I've pushed some more changes to unwinding department so that we get
call-traces for memset/memcpy et al.

git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git  #for-next

-Vineet

^ permalink raw reply	[flat|nested] 26+ messages in thread

* modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame)
  2016-09-20  1:21   ` Daniel Mentz
@ 2016-09-22 20:59     ` Vineet Gupta
  -1 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-22 20:59 UTC (permalink / raw)
  To: Daniel Mentz; +Cc: linux-kernel, linux-snps-arc, Alexey Brodkin

Hi Daniel,

On 09/19/2016 06:21 PM, Daniel Mentz wrote:
> I confirmed that the .eh_frame section is present and that the
> .debug_frame section is absent. I also verified that the file size of
> the .ko files are small enough for our embedded platform and that
> unnecessary sections like .debug_info, .debug_line, .debug_str etc.
> are also absent.

BTW it seems with my latest set of patches, modules still have .debug_*.
Can you double check if your tree still has the interim patch which added a linker
script for modules to strip out .debug_*

http://lists.infradead.org/pipermail/linux-snps-arc/2016-September/001483.html

I'm not planning to carry it and would prefer addressing the the root cause by
removing the -gdwarf-2 toggle. I've added that and pushed rebased series. Care to
take it for a respin please.

Thx,
-Vineet

^ permalink raw reply	[flat|nested] 26+ messages in thread

* modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame)
@ 2016-09-22 20:59     ` Vineet Gupta
  0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2016-09-22 20:59 UTC (permalink / raw)
  To: linux-snps-arc

Hi Daniel,

On 09/19/2016 06:21 PM, Daniel Mentz wrote:
> I confirmed that the .eh_frame section is present and that the
> .debug_frame section is absent. I also verified that the file size of
> the .ko files are small enough for our embedded platform and that
> unnecessary sections like .debug_info, .debug_line, .debug_str etc.
> are also absent.

BTW it seems with my latest set of patches, modules still have .debug_*.
Can you double check if your tree still has the interim patch which added a linker
script for modules to strip out .debug_*

http://lists.infradead.org/pipermail/linux-snps-arc/2016-September/001483.html

I'm not planning to carry it and would prefer addressing the the root cause by
removing the -gdwarf-2 toggle. I've added that and pushed rebased series. Care to
take it for a respin please.

Thx,
-Vineet

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame)
  2016-09-22 20:59     ` Vineet Gupta
@ 2016-09-22 22:37       ` Daniel Mentz
  -1 siblings, 0 replies; 26+ messages in thread
From: Daniel Mentz @ 2016-09-22 22:37 UTC (permalink / raw)
  To: Vineet Gupta; +Cc: linux-kernel, linux-snps-arc, Alexey Brodkin

On Thu, Sep 22, 2016 at 1:59 PM, Vineet Gupta
<Vineet.Gupta1@synopsys.com> wrote:
> Hi Daniel,
>
> On 09/19/2016 06:21 PM, Daniel Mentz wrote:
>> I confirmed that the .eh_frame section is present and that the
>> .debug_frame section is absent. I also verified that the file size of
>> the .ko files are small enough for our embedded platform and that
>> unnecessary sections like .debug_info, .debug_line, .debug_str etc.
>> are also absent.
>
> BTW it seems with my latest set of patches, modules still have .debug_*.
> Can you double check if your tree still has the interim patch which added a linker
> script for modules to strip out .debug_*
>
> http://lists.infradead.org/pipermail/linux-snps-arc/2016-September/001483.html

Hi Vineet,

Sorry, that was a misunderstanding. Buildroot routinely runs the strip
command on .ko files before installing them on the target. I was only
looking at the .ko files *after* running the strip command. No, the
interim patch was not in my tree.

I confirmed that your commit "ARC: dw2 unwind: don't force dwarf 2" is
indeed necessary to suppress the .debug_* sections when
CONFIG_DEBUG_INFO is off. But again, we're stripping .ko files anyways
before installing.

> I'm not planning to carry it and would prefer addressing the the root cause by
> removing the -gdwarf-2 toggle. I've added that and pushed rebased series. Care to
> take it for a respin please.

I downloaded your latest commit
e47305af57d7eedc10b4720e604d669b10c69e3b and verified that stack
traces are properly displayed for code inside kernel modules as well
as vmlinux. I also called memcpy() on some bad address and got a
proper stack trace that involved memcpy().

I conclude that unwinding works for us.

Thank You
 Daniel

^ permalink raw reply	[flat|nested] 26+ messages in thread

* modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame)
@ 2016-09-22 22:37       ` Daniel Mentz
  0 siblings, 0 replies; 26+ messages in thread
From: Daniel Mentz @ 2016-09-22 22:37 UTC (permalink / raw)
  To: linux-snps-arc

On Thu, Sep 22, 2016 at 1:59 PM, Vineet Gupta
<Vineet.Gupta1@synopsys.com> wrote:
> Hi Daniel,
>
> On 09/19/2016 06:21 PM, Daniel Mentz wrote:
>> I confirmed that the .eh_frame section is present and that the
>> .debug_frame section is absent. I also verified that the file size of
>> the .ko files are small enough for our embedded platform and that
>> unnecessary sections like .debug_info, .debug_line, .debug_str etc.
>> are also absent.
>
> BTW it seems with my latest set of patches, modules still have .debug_*.
> Can you double check if your tree still has the interim patch which added a linker
> script for modules to strip out .debug_*
>
> http://lists.infradead.org/pipermail/linux-snps-arc/2016-September/001483.html

Hi Vineet,

Sorry, that was a misunderstanding. Buildroot routinely runs the strip
command on .ko files before installing them on the target. I was only
looking at the .ko files *after* running the strip command. No, the
interim patch was not in my tree.

I confirmed that your commit "ARC: dw2 unwind: don't force dwarf 2" is
indeed necessary to suppress the .debug_* sections when
CONFIG_DEBUG_INFO is off. But again, we're stripping .ko files anyways
before installing.

> I'm not planning to carry it and would prefer addressing the the root cause by
> removing the -gdwarf-2 toggle. I've added that and pushed rebased series. Care to
> take it for a respin please.

I downloaded your latest commit
e47305af57d7eedc10b4720e604d669b10c69e3b and verified that stack
traces are properly displayed for code inside kernel modules as well
as vmlinux. I also called memcpy() on some bad address and got a
proper stack trace that involved memcpy().

I conclude that unwinding works for us.

Thank You
 Daniel

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame)
  2016-09-22 22:37       ` Daniel Mentz
@ 2016-09-23 10:38         ` Alexey Brodkin
  -1 siblings, 0 replies; 26+ messages in thread
From: Alexey Brodkin @ 2016-09-23 10:38 UTC (permalink / raw)
  To: danielmentz; +Cc: linux-kernel, Vineet Gupta, linux-snps-arc

Hi Daniel,

On Thu, 2016-09-22 at 15:37 -0700, Daniel Mentz wrote:
> On Thu, Sep 22, 2016 at 1:59 PM, Vineet Gupta
> <Vineet.Gupta1@synopsys.com> wrote:
> > 
> > Hi Daniel,
> > 
> > On 09/19/2016 06:21 PM, Daniel Mentz wrote:
> > > 
> > > I confirmed that the .eh_frame section is present and that the
> > > .debug_frame section is absent. I also verified that the file size of
> > > the .ko files are small enough for our embedded platform and that
> > > unnecessary sections like .debug_info, .debug_line, .debug_str etc.
> > > are also absent.
> > 
> > BTW it seems with my latest set of patches, modules still have .debug_*.
> > Can you double check if your tree still has the interim patch which added a linker
> > script for modules to strip out .debug_*
> > 
> > http://lists.infradead.org/pipermail/linux-snps-arc/2016-September/001483.html
> 
> Hi Vineet,
> 
> Sorry, that was a misunderstanding. Buildroot routinely runs the strip
> command on .ko files before installing them on the target. I was only
> looking at the .ko files *after* running the strip command. No, the
> interim patch was not in my tree.

Well are you sure buildroot really touches modules in Linux kernel build folder?
Buildroot just runs a simple "make" command in "output/build/linux-x.y".

And only on installation step Buildroot strips binaries in "output/target" folder.
Moreover starting from that commit
https://git.buildroot.net/buildroot/commit/?id=10c4d27aef4dca01572cfc8146cbfd194a1a85e4
even on Linux installation step Buildroot reuses kernel's module stripping infrastructure
but again that happens only on target.

Just in case that's what I see when building MSDOSFS as module.

In build folder:
----------------------------->8-------------------------------
arc-linux-readelf -S build/linux-4.7.3/fs/fat/msdos.ko
There are 38 section headers, starting at offset 0x2a630:

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .note.gnu.build-i NOTE            00000000 000034 000024 00   A  0   0  4
  [ 2] .text             PROGBITS        00000000 000058 0013a8 00  AX  0   0  4
  [ 3] .rela.text        RELA            00000000 01c774 000600 0c   I 35   2  4
  [ 4] .init.text        PROGBITS        00000000 001400 000010 00  AX  0   0  4
  [ 5] .rela.init.text   RELA            00000000 01cd74 000018 0c   I 35   4  4
  [ 6] .exit.text        PROGBITS        00000000 001410 000010 00  AX  0   0  4
  [ 7] .rela.exit.text   RELA            00000000 01cd8c 000018 0c   I 35   6  4
  [ 8] .rodata           PROGBITS        00000000 001440 000100 00   A  0   0 64
  [ 9] .rela.rodata      RELA            00000000 01cda4 000078 0c   I 35   8  4
  [10] .modinfo          PROGBITS        00000000 001540 000090 00   A  0   0  4
  [11] .rodata.str1.4    PROGBITS        00000000 0015d0 000030 01 AMS  0   0  4
  [12] .data             PROGBITS        00000000 001600 00002c 00  WA  0   0  4
  [13] .rela.data        RELA            00000000 01ce1c 000030 0c   I 35  12  4
  [14] .gnu.linkonce.thi PROGBITS        00000000 001640 000140 00  WA  0   0 64
  [15] .rela.gnu.linkonc RELA            00000000 01ce4c 00000c 0c   I 35  14  4
  [16] .tdata            PROGBITS        00000000 001780 000000 00 WAT  0   0  1
  [17] .tbss             NOBITS          00000000 001780 000000 00 WAT  0   0  1
  [18] .bss              NOBITS          00000000 001780 000000 00  WA  0   0  1
  [19] .comment          PROGBITS        00000000 001780 000078 01  MS  0   0  1
  [20] .note.GNU-stack   PROGBITS        00000000 0017f8 000000 00      0   0  1
  [21] .debug_aranges    PROGBITS        00000000 0017f8 000048 00      0   0  1
  [22] .rela.debug_arang RELA            00000000 01ce58 00003c 0c   I 35  21  4
  [23] .debug_info       PROGBITS        00000000 001840 00eaa9 00      0   0  1
  [24] .rela.debug_info  RELA            00000000 01ce94 00a53c 0c   I 35  23  4
  [25] .debug_abbrev     PROGBITS        00000000 0102e9 0008b3 00      0   0  1
  [26] .debug_line       PROGBITS        00000000 010b9c 001d4d 00      0   0  1
  [27] .rela.debug_line  RELA            00000000 0273d0 001818 0c   I 35  26  4
  [28] .debug_frame      PROGBITS        00000000 0128ec 0002d8 00      0   0  4
  [29] .rela.debug_frame RELA            00000000 028be8 000168 0c   I 35  28  4
  [30] .debug_str        PROGBITS        00000000 012bc4 008485 01  MS  0   0  1
  [31] .debug_loc        PROGBITS        00000000 01b049 000b49 00      0   0  1
  [32] .rela.debug_loc   RELA            00000000 028d50 001308 0c   I 35  31  4
  [33] .debug_ranges     PROGBITS        00000000 01bb92 0001f8 00      0   0  1
  [34] .rela.debug_range RELA            00000000 02a058 000480 0c   I 35  33  4
  [35] .symtab           SYMTAB          00000000 01bd8c 0005e0 10     36  53  4
  [36] .strtab           STRTAB          00000000 01c36c 000407 00      0   0  1
  [37] .shstrtab         STRTAB          00000000 02a4d8 000157 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  p (processor specific)
----------------------------->8-------------------------------

On target:
----------------------------->8-------------------------------
arc-linux-readelf -S target/lib/modules/4.7.3/kernel/fs/fat/msdos.ko 
There are 24 section headers, starting at offset 0x28e0:

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .note.gnu.build-i NOTE            00000000 000034 000024 00   A  0   0  4
  [ 2] .text             PROGBITS        00000000 000058 0013a8 00  AX  0   0  4
  [ 3] .rela.text        RELA            00000000 002128 000600 0c   I 21   2  4
  [ 4] .init.text        PROGBITS        00000000 001400 000010 00  AX  0   0  4
  [ 5] .rela.init.text   RELA            00000000 002728 000018 0c   I 21   4  4
  [ 6] .exit.text        PROGBITS        00000000 001410 000010 00  AX  0   0  4
  [ 7] .rela.exit.text   RELA            00000000 002740 000018 0c   I 21   6  4
  [ 8] .rodata           PROGBITS        00000000 001440 000100 00   A  0   0 64
  [ 9] .rela.rodata      RELA            00000000 002758 000078 0c   I 21   8  4
  [10] .modinfo          PROGBITS        00000000 001540 000090 00   A  0   0  4
  [11] .rodata.str1.4    PROGBITS        00000000 0015d0 000030 01 AMS  0   0  4
  [12] .data             PROGBITS        00000000 001600 00002c 00  WA  0   0  4
  [13] .rela.data        RELA            00000000 0027d0 000030 0c   I 21  12  4
  [14] .gnu.linkonce.thi PROGBITS        00000000 001640 000140 00  WA  0   0 64
  [15] .rela.gnu.linkonc RELA            00000000 002800 00000c 0c   I 21  14  4
  [16] .tdata            PROGBITS        00000000 001780 000000 00 WAT  0   0  1
  [17] .tbss             NOBITS          00000000 001780 000000 00 WAT  0   0  1
  [18] .bss              NOBITS          00000000 001780 000000 00  WA  0   0  1
  [19] .comment          PROGBITS        00000000 001780 000078 01  MS  0   0  1
  [20] .note.GNU-stack   PROGBITS        00000000 0017f8 000000 00      0   0  1
  [21] .symtab           SYMTAB          00000000 0017f8 000540 10     22  43  4
  [22] .strtab           STRTAB          00000000 001d38 0003ed 00      0   0  1
  [23] .shstrtab         STRTAB          00000000 00280c 0000d3 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  p (processor specific)
----------------------------->8-------------------------------

-Alexey

^ permalink raw reply	[flat|nested] 26+ messages in thread

* modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame)
@ 2016-09-23 10:38         ` Alexey Brodkin
  0 siblings, 0 replies; 26+ messages in thread
From: Alexey Brodkin @ 2016-09-23 10:38 UTC (permalink / raw)
  To: linux-snps-arc

Hi Daniel,

On Thu, 2016-09-22@15:37 -0700, Daniel Mentz wrote:
> On Thu, Sep 22, 2016 at 1:59 PM, Vineet Gupta
> <Vineet.Gupta1@synopsys.com> wrote:
> > 
> > Hi Daniel,
> > 
> > On 09/19/2016 06:21 PM, Daniel Mentz wrote:
> > > 
> > > I confirmed that the .eh_frame section is present and that the
> > > .debug_frame section is absent. I also verified that the file size of
> > > the .ko files are small enough for our embedded platform and that
> > > unnecessary sections like .debug_info, .debug_line, .debug_str etc.
> > > are also absent.
> > 
> > BTW it seems with my latest set of patches, modules still have .debug_*.
> > Can you double check if your tree still has the interim patch which added a linker
> > script for modules to strip out .debug_*
> > 
> > http://lists.infradead.org/pipermail/linux-snps-arc/2016-September/001483.html
> 
> Hi Vineet,
> 
> Sorry, that was a misunderstanding. Buildroot routinely runs the strip
> command on .ko files before installing them on the target. I was only
> looking at the .ko files *after* running the strip command. No, the
> interim patch was not in my tree.

Well are you sure buildroot really touches modules in Linux kernel build folder?
Buildroot just runs a simple "make" command in "output/build/linux-x.y".

And only on installation step Buildroot strips binaries in "output/target" folder.
Moreover starting from that commit
https://git.buildroot.net/buildroot/commit/?id=10c4d27aef4dca01572cfc8146cbfd194a1a85e4
even on Linux installation step Buildroot reuses kernel's module stripping infrastructure
but again that happens only on target.

Just in case that's what I see when building MSDOSFS as module.

In build folder:
----------------------------->8-------------------------------
arc-linux-readelf -S build/linux-4.7.3/fs/fat/msdos.ko
There are 38 section headers, starting at offset 0x2a630:

Section Headers:
? [Nr] Name??????????????Type????????????Addr?????Off????Size???ES Flg Lk Inf Al
? [ 0]???????????????????NULL????????????00000000 000000 000000 00??????0???0??0
? [ 1] .note.gnu.build-i NOTE????????????00000000 000034 000024 00???A??0???0??4
? [ 2] .text?????????????PROGBITS????????00000000 000058 0013a8 00??AX??0???0??4
? [ 3] .rela.text????????RELA????????????00000000 01c774 000600 0c???I 35???2??4
? [ 4] .init.text????????PROGBITS????????00000000 001400 000010 00??AX??0???0??4
? [ 5] .rela.init.text???RELA????????????00000000 01cd74 000018 0c???I 35???4??4
? [ 6] .exit.text????????PROGBITS????????00000000 001410 000010 00??AX??0???0??4
? [ 7] .rela.exit.text???RELA????????????00000000 01cd8c 000018 0c???I 35???6??4
? [ 8] .rodata???????????PROGBITS????????00000000 001440 000100 00???A??0???0 64
? [ 9] .rela.rodata??????RELA????????????00000000 01cda4 000078 0c???I 35???8??4
? [10] .modinfo??????????PROGBITS????????00000000 001540 000090 00???A??0???0??4
? [11] .rodata.str1.4????PROGBITS????????00000000 0015d0 000030 01 AMS??0???0??4
? [12] .data?????????????PROGBITS????????00000000 001600 00002c 00??WA??0???0??4
? [13] .rela.data????????RELA????????????00000000 01ce1c 000030 0c???I 35??12??4
? [14] .gnu.linkonce.thi PROGBITS????????00000000 001640 000140 00??WA??0???0 64
? [15] .rela.gnu.linkonc RELA????????????00000000 01ce4c 00000c 0c???I 35??14??4
? [16] .tdata????????????PROGBITS????????00000000 001780 000000 00 WAT??0???0??1
? [17] .tbss?????????????NOBITS??????????00000000 001780 000000 00 WAT??0???0??1
? [18] .bss??????????????NOBITS??????????00000000 001780 000000 00??WA??0???0??1
? [19] .comment??????????PROGBITS????????00000000 001780 000078 01??MS??0???0??1
? [20] .note.GNU-stack???PROGBITS????????00000000 0017f8 000000 00??????0???0??1
? [21] .debug_aranges????PROGBITS????????00000000 0017f8 000048 00??????0???0??1
? [22] .rela.debug_arang RELA????????????00000000 01ce58 00003c 0c???I 35??21??4
? [23] .debug_info???????PROGBITS????????00000000 001840 00eaa9 00??????0???0??1
? [24] .rela.debug_info??RELA????????????00000000 01ce94 00a53c 0c???I 35??23??4
? [25] .debug_abbrev?????PROGBITS????????00000000 0102e9 0008b3 00??????0???0??1
? [26] .debug_line???????PROGBITS????????00000000 010b9c 001d4d 00??????0???0??1
? [27] .rela.debug_line??RELA????????????00000000 0273d0 001818 0c???I 35??26??4
? [28] .debug_frame??????PROGBITS????????00000000 0128ec 0002d8 00??????0???0??4
? [29] .rela.debug_frame RELA????????????00000000 028be8 000168 0c???I 35??28??4
? [30] .debug_str????????PROGBITS????????00000000 012bc4 008485 01??MS??0???0??1
? [31] .debug_loc????????PROGBITS????????00000000 01b049 000b49 00??????0???0??1
? [32] .rela.debug_loc???RELA????????????00000000 028d50 001308 0c???I 35??31??4
? [33] .debug_ranges?????PROGBITS????????00000000 01bb92 0001f8 00??????0???0??1
? [34] .rela.debug_range RELA????????????00000000 02a058 000480 0c???I 35??33??4
? [35] .symtab???????????SYMTAB??????????00000000 01bd8c 0005e0 10?????36??53??4
? [36] .strtab???????????STRTAB??????????00000000 01c36c 000407 00??????0???0??1
? [37] .shstrtab?????????STRTAB??????????00000000 02a4d8 000157 00??????0???0??1
Key to Flags:
? W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
? L (link order), O (extra OS processing required), G (group), T (TLS),
? C (compressed), x (unknown), o (OS specific), E (exclude),
? p (processor specific)
----------------------------->8-------------------------------

On target:
----------------------------->8-------------------------------
arc-linux-readelf -S target/lib/modules/4.7.3/kernel/fs/fat/msdos.ko?
There are 24 section headers, starting at offset 0x28e0:

Section Headers:
? [Nr] Name??????????????Type????????????Addr?????Off????Size???ES Flg Lk Inf Al
? [ 0]???????????????????NULL????????????00000000 000000 000000 00??????0???0??0
? [ 1] .note.gnu.build-i NOTE????????????00000000 000034 000024 00???A??0???0??4
? [ 2] .text?????????????PROGBITS????????00000000 000058 0013a8 00??AX??0???0??4
? [ 3] .rela.text????????RELA????????????00000000 002128 000600 0c???I 21???2??4
? [ 4] .init.text????????PROGBITS????????00000000 001400 000010 00??AX??0???0??4
? [ 5] .rela.init.text???RELA????????????00000000 002728 000018 0c???I 21???4??4
? [ 6] .exit.text????????PROGBITS????????00000000 001410 000010 00??AX??0???0??4
? [ 7] .rela.exit.text???RELA????????????00000000 002740 000018 0c???I 21???6??4
? [ 8] .rodata???????????PROGBITS????????00000000 001440 000100 00???A??0???0 64
? [ 9] .rela.rodata??????RELA????????????00000000 002758 000078 0c???I 21???8??4
? [10] .modinfo??????????PROGBITS????????00000000 001540 000090 00???A??0???0??4
? [11] .rodata.str1.4????PROGBITS????????00000000 0015d0 000030 01 AMS??0???0??4
? [12] .data?????????????PROGBITS????????00000000 001600 00002c 00??WA??0???0??4
? [13] .rela.data????????RELA????????????00000000 0027d0 000030 0c???I 21??12??4
? [14] .gnu.linkonce.thi PROGBITS????????00000000 001640 000140 00??WA??0???0 64
? [15] .rela.gnu.linkonc RELA????????????00000000 002800 00000c 0c???I 21??14??4
? [16] .tdata????????????PROGBITS????????00000000 001780 000000 00 WAT??0???0??1
? [17] .tbss?????????????NOBITS??????????00000000 001780 000000 00 WAT??0???0??1
? [18] .bss??????????????NOBITS??????????00000000 001780 000000 00??WA??0???0??1
? [19] .comment??????????PROGBITS????????00000000 001780 000078 01??MS??0???0??1
? [20] .note.GNU-stack???PROGBITS????????00000000 0017f8 000000 00??????0???0??1
? [21] .symtab???????????SYMTAB??????????00000000 0017f8 000540 10?????22??43??4
? [22] .strtab???????????STRTAB??????????00000000 001d38 0003ed 00??????0???0??1
? [23] .shstrtab?????????STRTAB??????????00000000 00280c 0000d3 00??????0???0??1
Key to Flags:
? W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
? L (link order), O (extra OS processing required), G (group), T (TLS),
? C (compressed), x (unknown), o (OS specific), E (exclude),
? p (processor specific)
----------------------------->8-------------------------------

-Alexey

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame)
  2016-09-23 10:38         ` Alexey Brodkin
@ 2016-09-24  1:04           ` Daniel Mentz
  -1 siblings, 0 replies; 26+ messages in thread
From: Daniel Mentz @ 2016-09-24  1:04 UTC (permalink / raw)
  To: Alexey Brodkin; +Cc: linux-kernel, Vineet Gupta, linux-snps-arc

On Fri, Sep 23, 2016 at 3:38 AM, Alexey Brodkin
<Alexey.Brodkin@synopsys.com> wrote:
> On Thu, 2016-09-22 at 15:37 -0700, Daniel Mentz wrote:
>> Sorry, that was a misunderstanding. Buildroot routinely runs the strip
>> command on .ko files before installing them on the target. I was only
>> looking at the .ko files *after* running the strip command. No, the
>> interim patch was not in my tree.
>
> Well are you sure buildroot really touches modules in Linux kernel build folder?
> Buildroot just runs a simple "make" command in "output/build/linux-x.y".

Sorry, that was phrased badly. Buildroot does not touch the modules in
the Linux kernel build folder. Modules are stripped in the target
directory as you described.

> And only on installation step Buildroot strips binaries in "output/target" folder.
> Moreover starting from that commit
> https://git.buildroot.net/buildroot/commit/?id=10c4d27aef4dca01572cfc8146cbfd194a1a85e4
> even on Linux installation step Buildroot reuses kernel's module stripping infrastructure
> but again that happens only on target.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame)
@ 2016-09-24  1:04           ` Daniel Mentz
  0 siblings, 0 replies; 26+ messages in thread
From: Daniel Mentz @ 2016-09-24  1:04 UTC (permalink / raw)
  To: linux-snps-arc

On Fri, Sep 23, 2016 at 3:38 AM, Alexey Brodkin
<Alexey.Brodkin@synopsys.com> wrote:
> On Thu, 2016-09-22@15:37 -0700, Daniel Mentz wrote:
>> Sorry, that was a misunderstanding. Buildroot routinely runs the strip
>> command on .ko files before installing them on the target. I was only
>> looking at the .ko files *after* running the strip command. No, the
>> interim patch was not in my tree.
>
> Well are you sure buildroot really touches modules in Linux kernel build folder?
> Buildroot just runs a simple "make" command in "output/build/linux-x.y".

Sorry, that was phrased badly. Buildroot does not touch the modules in
the Linux kernel build folder. Modules are stripped in the target
directory as you described.

> And only on installation step Buildroot strips binaries in "output/target" folder.
> Moreover starting from that commit
> https://git.buildroot.net/buildroot/commit/?id=10c4d27aef4dca01572cfc8146cbfd194a1a85e4
> even on Linux installation step Buildroot reuses kernel's module stripping infrastructure
> but again that happens only on target.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame)
  2016-09-24  1:04           ` Daniel Mentz
@ 2016-09-26 12:38             ` Alexey Brodkin
  -1 siblings, 0 replies; 26+ messages in thread
From: Alexey Brodkin @ 2016-09-26 12:38 UTC (permalink / raw)
  To: danielmentz; +Cc: linux-kernel, Vineet.Gupta1, linux-snps-arc

Hi Daniel,

On Fri, 2016-09-23 at 18:04 -0700, Daniel Mentz wrote:
> On Fri, Sep 23, 2016 at 3:38 AM, Alexey Brodkin
> <Alexey.Brodkin@synopsys.com> wrote:
> > 
> > On Thu, 2016-09-22 at 15:37 -0700, Daniel Mentz wrote:
> > > 
> > > Sorry, that was a misunderstanding. Buildroot routinely runs the strip
> > > command on .ko files before installing them on the target. I was only
> > > looking at the .ko files *after* running the strip command. No, the
> > > interim patch was not in my tree.
> > 
> > Well are you sure buildroot really touches modules in Linux kernel build folder?
> > Buildroot just runs a simple "make" command in "output/build/linux-x.y".
> 
> Sorry, that was phrased badly. Buildroot does not touch the modules in
> the Linux kernel build folder. Modules are stripped in the target
> directory as you described.

So every is as expected now for you or there're still thing you don't like?

-Alexey

^ permalink raw reply	[flat|nested] 26+ messages in thread

* modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame)
@ 2016-09-26 12:38             ` Alexey Brodkin
  0 siblings, 0 replies; 26+ messages in thread
From: Alexey Brodkin @ 2016-09-26 12:38 UTC (permalink / raw)
  To: linux-snps-arc

Hi Daniel,

On Fri, 2016-09-23@18:04 -0700, Daniel Mentz wrote:
> On Fri, Sep 23, 2016 at 3:38 AM, Alexey Brodkin
> <Alexey.Brodkin@synopsys.com> wrote:
> > 
> > On Thu, 2016-09-22@15:37 -0700, Daniel Mentz wrote:
> > > 
> > > Sorry, that was a misunderstanding. Buildroot routinely runs the strip
> > > command on .ko files before installing them on the target. I was only
> > > looking at the .ko files *after* running the strip command. No, the
> > > interim patch was not in my tree.
> > 
> > Well are you sure buildroot really touches modules in Linux kernel build folder?
> > Buildroot just runs a simple "make" command in "output/build/linux-x.y".
> 
> Sorry, that was phrased badly. Buildroot does not touch the modules in
> the Linux kernel build folder. Modules are stripped in the target
> directory as you described.

So every is as expected now for you or there're still thing you don't like?

-Alexey

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame)
  2016-09-26 12:38             ` Alexey Brodkin
@ 2016-09-26 18:51               ` Daniel Mentz
  -1 siblings, 0 replies; 26+ messages in thread
From: Daniel Mentz @ 2016-09-26 18:51 UTC (permalink / raw)
  To: Alexey Brodkin; +Cc: Vineet.Gupta1, linux-snps-arc, linux-kernel

On Mon, Sep 26, 2016 at 5:38 AM, Alexey Brodkin
<Alexey.Brodkin@synopsys.com> wrote:
> On Fri, 2016-09-23 at 18:04 -0700, Daniel Mentz wrote:
>> On Fri, Sep 23, 2016 at 3:38 AM, Alexey Brodkin
>> <Alexey.Brodkin@synopsys.com> wrote:
>> >
>> > On Thu, 2016-09-22 at 15:37 -0700, Daniel Mentz wrote:
>> > >
>> > > Sorry, that was a misunderstanding. Buildroot routinely runs the strip
>> > > command on .ko files before installing them on the target. I was only
>> > > looking at the .ko files *after* running the strip command. No, the
>> > > interim patch was not in my tree.
>> >
>> > Well are you sure buildroot really touches modules in Linux kernel build folder?
>> > Buildroot just runs a simple "make" command in "output/build/linux-x.y".
>>
>> Sorry, that was phrased badly. Buildroot does not touch the modules in
>> the Linux kernel build folder. Modules are stripped in the target
>> directory as you described.
>
> So every is as expected now for you or there're still thing you don't like?

Yes, everything works as expected now. Thank you for Synposys' support
with this issue.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame)
@ 2016-09-26 18:51               ` Daniel Mentz
  0 siblings, 0 replies; 26+ messages in thread
From: Daniel Mentz @ 2016-09-26 18:51 UTC (permalink / raw)
  To: linux-snps-arc

On Mon, Sep 26, 2016 at 5:38 AM, Alexey Brodkin
<Alexey.Brodkin@synopsys.com> wrote:
> On Fri, 2016-09-23@18:04 -0700, Daniel Mentz wrote:
>> On Fri, Sep 23, 2016 at 3:38 AM, Alexey Brodkin
>> <Alexey.Brodkin@synopsys.com> wrote:
>> >
>> > On Thu, 2016-09-22@15:37 -0700, Daniel Mentz wrote:
>> > >
>> > > Sorry, that was a misunderstanding. Buildroot routinely runs the strip
>> > > command on .ko files before installing them on the target. I was only
>> > > looking at the .ko files *after* running the strip command. No, the
>> > > interim patch was not in my tree.
>> >
>> > Well are you sure buildroot really touches modules in Linux kernel build folder?
>> > Buildroot just runs a simple "make" command in "output/build/linux-x.y".
>>
>> Sorry, that was phrased badly. Buildroot does not touch the modules in
>> the Linux kernel build folder. Modules are stripped in the target
>> directory as you described.
>
> So every is as expected now for you or there're still thing you don't like?

Yes, everything works as expected now. Thank you for Synposys' support
with this issue.

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2016-09-26 18:51 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-19 21:49 [PATCH 0/3] ARC unwinder switch to .eh_frame Vineet Gupta
2016-09-19 21:49 ` Vineet Gupta
2016-09-19 21:49 ` [PATCH 1/3] ARC: module: support R_ARC_32_PCREL relocation Vineet Gupta
2016-09-19 21:49   ` Vineet Gupta
2016-09-19 21:49 ` [PATCH 2/3] ARC: dw2 unwind: factor CIE specifics for .eh_frame/.debug_frame Vineet Gupta
2016-09-19 21:49   ` Vineet Gupta
2016-09-19 21:49 ` [PATCH 3/3] ARC: dw2 unwind: switch to .eh_frame based unwinding Vineet Gupta
2016-09-19 21:49   ` Vineet Gupta
2016-09-20  1:21 ` [PATCH 0/3] ARC unwinder switch to .eh_frame Daniel Mentz
2016-09-20  1:21   ` Daniel Mentz
2016-09-20  6:13   ` Vineet Gupta
2016-09-20  6:13     ` Vineet Gupta
2016-09-22 20:39     ` Vineet Gupta
2016-09-22 20:39       ` Vineet Gupta
2016-09-22 20:59   ` modules still have .debug_* (was Re: [PATCH 0/3] ARC unwinder switch to .eh_frame) Vineet Gupta
2016-09-22 20:59     ` Vineet Gupta
2016-09-22 22:37     ` Daniel Mentz
2016-09-22 22:37       ` Daniel Mentz
2016-09-23 10:38       ` Alexey Brodkin
2016-09-23 10:38         ` Alexey Brodkin
2016-09-24  1:04         ` Daniel Mentz
2016-09-24  1:04           ` Daniel Mentz
2016-09-26 12:38           ` Alexey Brodkin
2016-09-26 12:38             ` Alexey Brodkin
2016-09-26 18:51             ` Daniel Mentz
2016-09-26 18:51               ` Daniel Mentz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.