All of lore.kernel.org
 help / color / mirror / Atom feed
From: Keith Owens <kaos@ocs.com.au>
To: Patrick Mansfield <patmans@us.ibm.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: getting text strings into __initdata for char *foo = "data"
Date: Thu, 21 Nov 2002 16:48:38 +1100	[thread overview]
Message-ID: <19796.1037857718@kao2.melbourne.sgi.com> (raw)
In-Reply-To: Your message of "Wed, 20 Nov 2002 14:43:43 -0800." <20021120144343.A23601@eng2.beaverton.ibm.com>

On Wed, 20 Nov 2002 14:43:43 -0800, 
Patrick Mansfield <patmans@us.ibm.com> wrote:
>Is there a way to get char * initialized data to go into the init
>data section?
>
>For example, in the following I want init_foobar and its associated
>text strings to go into the init data section, not just the pointers
>in init_foobar:

>From the kdb common patch, kdb/Makefile.

gen-kdb_cmds.c: kdb_cmds Makefile
	$(AWK) 'BEGIN {print "#include <linux/init.h>"} \
		/^ *#/{next} \
		/^[ \t]*$$/{next} \
		{gsub(/"/, "\\\"", $$0); \
		  print "static __initdata char kdb_cmd" cmds++ "[] = \"" $$0 "\\n\";"} \
		END {print "char __initdata *kdb_cmds[] = {"; for (i = 0; i < cmds; ++i) {print "  kdb_cmd" i ","}; print("  0\n};");}' \
		kdb_cmds > gen-kdb_cmds.c

Converts kdb_cmds

set LINES 2000
set BTSP 1
bp sys_open

into gen-kdb_cmds.c

#include <linux/init.h>
static __initdata char kdb_cmd0[] = "set LINES 2000\n";
static __initdata char kdb_cmd1[] = "set BTSP 1\n";
static __initdata char kdb_cmd2[] = "bp sys_open\n";
char __initdata *kdb_cmds[] = {
  kdb_cmd0,
  kdb_cmd1,
  kdb_cmd2,
  0
};

# objdump -h kdb/gen-kdb_cmds.o

kdb/gen-kdb_cmds.o:     file format elf64-ia64-little

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
  0 .text         00000000  0000000000000000  0000000000000000  00000040  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000000  0000000000000000  0000000000000000  00000040  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000000  0000000000000000  0000000000000000  00000040  2**0
                  ALLOC
  3 .debug_abbrev 000000a8  0000000000000000  0000000000000000  00000040  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_info   000001c7  0000000000000000  0000000000000000  000000e8  2**0
                  CONTENTS, RELOC, READONLY, DEBUGGING
  5 .debug_line   00000000  0000000000000000  0000000000000000  000002af  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .data.init    00000050  0000000000000000  0000000000000000  000002b0  2**3
                  CONTENTS, ALLOC, LOAD, RELOC, DATA
  7 .debug_pubnames 0000001f  0000000000000000  0000000000000000  00000300  2**0
                  CONTENTS, RELOC, READONLY, DEBUGGING
  8 .comment      00000029  0000000000000000  0000000000000000  0000031f  2**0
                  CONTENTS, READONLY

text, data and bss are all 0 size.  Everything is in .data.init.


      parent reply	other threads:[~2002-11-21  5:41 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-20 22:43 getting text strings into __initdata for char *foo = "data" Patrick Mansfield
2002-11-20 23:43 ` Richard B. Johnson
2002-11-21  5:48 ` Keith Owens [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=19796.1037857718@kao2.melbourne.sgi.com \
    --to=kaos@ocs.com.au \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patmans@us.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.