diff options
author | Hendrik Brueckner <brueckner@linux.vnet.ibm.com> | 2010-09-17 18:24:09 -0400 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2010-09-29 10:28:59 -0400 |
commit | 6ae64e428f74e7bacab898ef9665dda719ea6fde (patch) | |
tree | fdd61e1757e43feddc91eeb32f5ac22e237b5012 /usr | |
parent | ef894870c6c38580e540c29cfb22a827d54a950a (diff) |
initramfs: generalize initramfs_data.xxx.S variants
Remove initramfs_data.{lzo,lzma,gz,bz2}.S variants and use a common
implementation in initramfs_data.S. The common implementation expects the
file name of the initramfs to be defined in INITRAMFS_IMAGE.
Change the Makefile to set the INITRAMFS_IMAGE define symbol according
to the selected compression method.
Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Cc: WANG Cong <xiyou.wangcong@gmail.com>
Acked-by: Michal Marek <mmarek@suse.cz>
Acked-by: "H. Peter Anvin" <hpa@zytor.com>
Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Diffstat (limited to 'usr')
-rw-r--r-- | usr/Makefile | 6 | ||||
-rw-r--r-- | usr/initramfs_data.S | 5 | ||||
-rw-r--r-- | usr/initramfs_data.bz2.S | 29 | ||||
-rw-r--r-- | usr/initramfs_data.gz.S | 29 | ||||
-rw-r--r-- | usr/initramfs_data.lzma.S | 29 | ||||
-rw-r--r-- | usr/initramfs_data.lzo.S | 29 |
6 files changed, 7 insertions, 120 deletions
diff --git a/usr/Makefile b/usr/Makefile index 6b4b6da0b67d..6faa444b7087 100644 --- a/usr/Makefile +++ b/usr/Makefile | |||
@@ -18,13 +18,15 @@ suffix_$(CONFIG_INITRAMFS_COMPRESSION_LZMA) = .lzma | |||
18 | # Lzo | 18 | # Lzo |
19 | suffix_$(CONFIG_INITRAMFS_COMPRESSION_LZO) = .lzo | 19 | suffix_$(CONFIG_INITRAMFS_COMPRESSION_LZO) = .lzo |
20 | 20 | ||
21 | AFLAGS_initramfs_data.o += -DINITRAMFS_IMAGE="usr/initramfs_data.cpio$(suffix_y)" | ||
22 | |||
21 | # Generate builtin.o based on initramfs_data.o | 23 | # Generate builtin.o based on initramfs_data.o |
22 | obj-$(CONFIG_BLK_DEV_INITRD) := initramfs_data$(suffix_y).o | 24 | obj-$(CONFIG_BLK_DEV_INITRD) := initramfs_data.o |
23 | 25 | ||
24 | # initramfs_data.o contains the compressed initramfs_data.cpio image. | 26 | # initramfs_data.o contains the compressed initramfs_data.cpio image. |
25 | # The image is included using .incbin, a dependency which is not | 27 | # The image is included using .incbin, a dependency which is not |
26 | # tracked automatically. | 28 | # tracked automatically. |
27 | $(obj)/initramfs_data$(suffix_y).o: $(obj)/initramfs_data.cpio$(suffix_y) FORCE | 29 | $(obj)/initramfs_data.o: $(obj)/initramfs_data.cpio$(suffix_y) FORCE |
28 | 30 | ||
29 | ##### | 31 | ##### |
30 | # Generate the initramfs cpio archive | 32 | # Generate the initramfs cpio archive |
diff --git a/usr/initramfs_data.S b/usr/initramfs_data.S index 7c6973d8d829..49a545fea120 100644 --- a/usr/initramfs_data.S +++ b/usr/initramfs_data.S | |||
@@ -25,6 +25,7 @@ SECTIONS | |||
25 | in the ELF header, as required by certain architectures. | 25 | in the ELF header, as required by certain architectures. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | .section .init.ramfs,"a" | 28 | #include <linux/stringify.h> |
29 | .incbin "usr/initramfs_data.cpio" | ||
30 | 29 | ||
30 | .section .init.ramfs,"a" | ||
31 | .incbin __stringify(INITRAMFS_IMAGE) | ||
diff --git a/usr/initramfs_data.bz2.S b/usr/initramfs_data.bz2.S deleted file mode 100644 index bc54d090365c..000000000000 --- a/usr/initramfs_data.bz2.S +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | /* | ||
2 | initramfs_data includes the compressed binary that is the | ||
3 | filesystem used for early user space. | ||
4 | Note: Older versions of "as" (prior to binutils 2.11.90.0.23 | ||
5 | released on 2001-07-14) dit not support .incbin. | ||
6 | If you are forced to use older binutils than that then the | ||
7 | following trick can be applied to create the resulting binary: | ||
8 | |||
9 | |||
10 | ld -m elf_i386 --format binary --oformat elf32-i386 -r \ | ||
11 | -T initramfs_data.scr initramfs_data.cpio.gz -o initramfs_data.o | ||
12 | ld -m elf_i386 -r -o built-in.o initramfs_data.o | ||
13 | |||
14 | initramfs_data.scr looks like this: | ||
15 | SECTIONS | ||
16 | { | ||
17 | .init.ramfs : { *(.data) } | ||
18 | } | ||
19 | |||
20 | The above example is for i386 - the parameters vary from architectures. | ||
21 | Eventually look up LDFLAGS_BLOB in an older version of the | ||
22 | arch/$(ARCH)/Makefile to see the flags used before .incbin was introduced. | ||
23 | |||
24 | Using .incbin has the advantage over ld that the correct flags are set | ||
25 | in the ELF header, as required by certain architectures. | ||
26 | */ | ||
27 | |||
28 | .section .init.ramfs,"a" | ||
29 | .incbin "usr/initramfs_data.cpio.bz2" | ||
diff --git a/usr/initramfs_data.gz.S b/usr/initramfs_data.gz.S deleted file mode 100644 index 890c8dd1d6bd..000000000000 --- a/usr/initramfs_data.gz.S +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | /* | ||
2 | initramfs_data includes the compressed binary that is the | ||
3 | filesystem used for early user space. | ||
4 | Note: Older versions of "as" (prior to binutils 2.11.90.0.23 | ||
5 | released on 2001-07-14) dit not support .incbin. | ||
6 | If you are forced to use older binutils than that then the | ||
7 | following trick can be applied to create the resulting binary: | ||
8 | |||
9 | |||
10 | ld -m elf_i386 --format binary --oformat elf32-i386 -r \ | ||
11 | -T initramfs_data.scr initramfs_data.cpio.gz -o initramfs_data.o | ||
12 | ld -m elf_i386 -r -o built-in.o initramfs_data.o | ||
13 | |||
14 | initramfs_data.scr looks like this: | ||
15 | SECTIONS | ||
16 | { | ||
17 | .init.ramfs : { *(.data) } | ||
18 | } | ||
19 | |||
20 | The above example is for i386 - the parameters vary from architectures. | ||
21 | Eventually look up LDFLAGS_BLOB in an older version of the | ||
22 | arch/$(ARCH)/Makefile to see the flags used before .incbin was introduced. | ||
23 | |||
24 | Using .incbin has the advantage over ld that the correct flags are set | ||
25 | in the ELF header, as required by certain architectures. | ||
26 | */ | ||
27 | |||
28 | .section .init.ramfs,"a" | ||
29 | .incbin "usr/initramfs_data.cpio.gz" | ||
diff --git a/usr/initramfs_data.lzma.S b/usr/initramfs_data.lzma.S deleted file mode 100644 index e11469e48562..000000000000 --- a/usr/initramfs_data.lzma.S +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | /* | ||
2 | initramfs_data includes the compressed binary that is the | ||
3 | filesystem used for early user space. | ||
4 | Note: Older versions of "as" (prior to binutils 2.11.90.0.23 | ||
5 | released on 2001-07-14) dit not support .incbin. | ||
6 | If you are forced to use older binutils than that then the | ||
7 | following trick can be applied to create the resulting binary: | ||
8 | |||
9 | |||
10 | ld -m elf_i386 --format binary --oformat elf32-i386 -r \ | ||
11 | -T initramfs_data.scr initramfs_data.cpio.gz -o initramfs_data.o | ||
12 | ld -m elf_i386 -r -o built-in.o initramfs_data.o | ||
13 | |||
14 | initramfs_data.scr looks like this: | ||
15 | SECTIONS | ||
16 | { | ||
17 | .init.ramfs : { *(.data) } | ||
18 | } | ||
19 | |||
20 | The above example is for i386 - the parameters vary from architectures. | ||
21 | Eventually look up LDFLAGS_BLOB in an older version of the | ||
22 | arch/$(ARCH)/Makefile to see the flags used before .incbin was introduced. | ||
23 | |||
24 | Using .incbin has the advantage over ld that the correct flags are set | ||
25 | in the ELF header, as required by certain architectures. | ||
26 | */ | ||
27 | |||
28 | .section .init.ramfs,"a" | ||
29 | .incbin "usr/initramfs_data.cpio.lzma" | ||
diff --git a/usr/initramfs_data.lzo.S b/usr/initramfs_data.lzo.S deleted file mode 100644 index 59211905da84..000000000000 --- a/usr/initramfs_data.lzo.S +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | /* | ||
2 | initramfs_data includes the compressed binary that is the | ||
3 | filesystem used for early user space. | ||
4 | Note: Older versions of "as" (prior to binutils 2.11.90.0.23 | ||
5 | released on 2001-07-14) dit not support .incbin. | ||
6 | If you are forced to use older binutils than that then the | ||
7 | following trick can be applied to create the resulting binary: | ||
8 | |||
9 | |||
10 | ld -m elf_i386 --format binary --oformat elf32-i386 -r \ | ||
11 | -T initramfs_data.scr initramfs_data.cpio.gz -o initramfs_data.o | ||
12 | ld -m elf_i386 -r -o built-in.o initramfs_data.o | ||
13 | |||
14 | initramfs_data.scr looks like this: | ||
15 | SECTIONS | ||
16 | { | ||
17 | .init.ramfs : { *(.data) } | ||
18 | } | ||
19 | |||
20 | The above example is for i386 - the parameters vary from architectures. | ||
21 | Eventually look up LDFLAGS_BLOB in an older version of the | ||
22 | arch/$(ARCH)/Makefile to see the flags used before .incbin was introduced. | ||
23 | |||
24 | Using .incbin has the advantage over ld that the correct flags are set | ||
25 | in the ELF header, as required by certain architectures. | ||
26 | */ | ||
27 | |||
28 | .section .init.ramfs,"a" | ||
29 | .incbin "usr/initramfs_data.cpio.lzo" | ||