]> git.ipfire.org Git - thirdparty/kernel/stable.git/blame - usr/initramfs_data.S
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
[thirdparty/kernel/stable.git] / usr / initramfs_data.S
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
1da177e4
LT
2/*
3 initramfs_data includes the compressed binary that is the
4 filesystem used for early user space.
5 Note: Older versions of "as" (prior to binutils 2.11.90.0.23
6 released on 2001-07-14) dit not support .incbin.
7 If you are forced to use older binutils than that then the
8 following trick can be applied to create the resulting binary:
9
10
11 ld -m elf_i386 --format binary --oformat elf32-i386 -r \
12 -T initramfs_data.scr initramfs_data.cpio.gz -o initramfs_data.o
f49821ee 13 ld -m elf_i386 -r -o built-in.a initramfs_data.o
1da177e4 14
ffe8018c 15 For including the .init.ramfs sections, see include/asm-generic/vmlinux.lds.
1da177e4
LT
16
17 The above example is for i386 - the parameters vary from architectures.
18 Eventually look up LDFLAGS_BLOB in an older version of the
19 arch/$(ARCH)/Makefile to see the flags used before .incbin was introduced.
20
21 Using .incbin has the advantage over ld that the correct flags are set
22 in the ELF header, as required by certain architectures.
23*/
24
6ae64e42 25#include <linux/stringify.h>
1198c6d4 26#include <asm-generic/vmlinux.lds.h>
1da177e4 27
6ae64e42 28.section .init.ramfs,"a"
ffe8018c 29__irf_start:
6ae64e42 30.incbin __stringify(INITRAMFS_IMAGE)
ffe8018c
HB
31__irf_end:
32.section .init.ramfs.info,"a"
c4df32c8
MY
33.globl __initramfs_size
34__initramfs_size:
96f93593 35#ifdef CONFIG_64BIT
ffe8018c 36 .quad __irf_end - __irf_start
96f93593
GU
37#else
38 .long __irf_end - __irf_start
ffe8018c 39#endif