All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch 0/2] ELF cleanup
@ 2008-02-10 12:43 gorcunov
  2008-02-10 12:43 ` [patch 1/2] ELF: Use EI_NIDENT instead of numeric value gorcunov
  2008-02-10 12:43 ` [patch 2/2] BINFMT: fill_elf_header cleanup - use straigth memset first gorcunov
  0 siblings, 2 replies; 3+ messages in thread
From: gorcunov @ 2008-02-10 12:43 UTC (permalink / raw)
  To: akpm, linux-kernel; +Cc: gorcunov

These two patches do a simple cleaunp on ELF related code

	o Use EI_NIDENT instead of numeric value in elf64_hdr structure
	o Simplify fill_elf_header code by calling memset

Please review. Any comments are welcome.

-- 

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

* [patch 1/2] ELF: Use EI_NIDENT instead of numeric value
  2008-02-10 12:43 [patch 0/2] ELF cleanup gorcunov
@ 2008-02-10 12:43 ` gorcunov
  2008-02-10 12:43 ` [patch 2/2] BINFMT: fill_elf_header cleanup - use straigth memset first gorcunov
  1 sibling, 0 replies; 3+ messages in thread
From: gorcunov @ 2008-02-10 12:43 UTC (permalink / raw)
  To: akpm, linux-kernel; +Cc: gorcunov

[-- Attachment #1: elf-EI_NIDENT --]
[-- Type: text/plain, Size: 670 bytes --]

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
---

 elf.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.git/include/linux/elf.h
===================================================================
--- linux-2.6.git.orig/include/linux/elf.h	2008-02-08 19:09:52.000000000 +0300
+++ linux-2.6.git/include/linux/elf.h	2008-02-10 10:49:54.000000000 +0300
@@ -208,7 +208,7 @@ typedef struct elf32_hdr{
 } Elf32_Ehdr;
 
 typedef struct elf64_hdr {
-  unsigned char	e_ident[16];		/* ELF "magic number" */
+  unsigned char	e_ident[EI_NIDENT];	/* ELF "magic number" */
   Elf64_Half e_type;
   Elf64_Half e_machine;
   Elf64_Word e_version;

-- 

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

* [patch 2/2] BINFMT: fill_elf_header cleanup - use straigth memset first
  2008-02-10 12:43 [patch 0/2] ELF cleanup gorcunov
  2008-02-10 12:43 ` [patch 1/2] ELF: Use EI_NIDENT instead of numeric value gorcunov
@ 2008-02-10 12:43 ` gorcunov
  1 sibling, 0 replies; 3+ messages in thread
From: gorcunov @ 2008-02-10 12:43 UTC (permalink / raw)
  To: akpm, linux-kernel; +Cc: gorcunov

[-- Attachment #1: elf-binfmt --]
[-- Type: text/plain, Size: 1631 bytes --]

This patch does simplify fill_elf_header function by setting
to zero the whole elf header first. So we fillup the fields
we really need only.

before:
   text    data     bss     dec     hex filename
  11735      80       0   11815    2e27 fs/binfmt_elf.o

after:
   text    data     bss     dec     hex filename
  11710      80       0   11790    2e0e fs/binfmt_elf.o

viola, 25 bytes of text is freed

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
---

 binfmt_elf.c |    9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)


Index: linux-2.6.git/fs/binfmt_elf.c
===================================================================
--- linux-2.6.git.orig/fs/binfmt_elf.c	2008-02-09 12:09:28.000000000 +0300
+++ linux-2.6.git/fs/binfmt_elf.c	2008-02-10 11:15:59.000000000 +0300
@@ -1276,26 +1276,23 @@ static int writenote(struct memelfnote *
 static void fill_elf_header(struct elfhdr *elf, int segs,
 			    u16 machine, u32 flags, u8 osabi)
 {
+	memset(elf, 0, sizeof(*elf));
+
 	memcpy(elf->e_ident, ELFMAG, SELFMAG);
 	elf->e_ident[EI_CLASS] = ELF_CLASS;
 	elf->e_ident[EI_DATA] = ELF_DATA;
 	elf->e_ident[EI_VERSION] = EV_CURRENT;
 	elf->e_ident[EI_OSABI] = ELF_OSABI;
-	memset(elf->e_ident+EI_PAD, 0, EI_NIDENT-EI_PAD);
 
 	elf->e_type = ET_CORE;
 	elf->e_machine = machine;
 	elf->e_version = EV_CURRENT;
-	elf->e_entry = 0;
 	elf->e_phoff = sizeof(struct elfhdr);
-	elf->e_shoff = 0;
 	elf->e_flags = flags;
 	elf->e_ehsize = sizeof(struct elfhdr);
 	elf->e_phentsize = sizeof(struct elf_phdr);
 	elf->e_phnum = segs;
-	elf->e_shentsize = 0;
-	elf->e_shnum = 0;
-	elf->e_shstrndx = 0;
+
 	return;
 }
 

-- 

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

end of thread, other threads:[~2008-02-10 12:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-10 12:43 [patch 0/2] ELF cleanup gorcunov
2008-02-10 12:43 ` [patch 1/2] ELF: Use EI_NIDENT instead of numeric value gorcunov
2008-02-10 12:43 ` [patch 2/2] BINFMT: fill_elf_header cleanup - use straigth memset first gorcunov

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.