syslinux update
This commit is contained in:
@@ -0,0 +1,150 @@
|
||||
From 548386049cd41e887079cdb904d3954365eb28f3 Mon Sep 17 00:00:00 2001
|
||||
From: Paulo Alcantara <pcacjr@zytor.com>
|
||||
Date: Thu, 24 Dec 2015 01:48:13 -0200
|
||||
Subject: [PATCH 1/1] btrfs: Fix logical to physical block address mapping
|
||||
|
||||
The current btrfs support did not handled multiple stripes stored in
|
||||
chunk items, hence skipping the physical addresses that were needed to
|
||||
do the mapping.
|
||||
|
||||
Besides, the chunk tree may contain DEV_ITEM keys which store
|
||||
information on all of the underlying block devices, so we must skip them
|
||||
instead of finishing lookup.
|
||||
|
||||
The bug was reproduced with btrfs-progs v4.2.2.
|
||||
|
||||
Cc: Gene Cumm <gene.cumm@gmail.com>
|
||||
Cc: H. Peter Anvin <hpa@zytor.com>
|
||||
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
||||
---
|
||||
v1 -> v2:
|
||||
* Do not set ignore_key multiple times. Set it before parsing chunk
|
||||
tree.
|
||||
v2 -> v3:
|
||||
* Replace an unnecessary goto with a continue statement.
|
||||
---
|
||||
core/fs/btrfs/btrfs.c | 49 +++++++++++++++++++++++++++++++++----------------
|
||||
core/fs/btrfs/btrfs.h | 2 ++
|
||||
2 files changed, 35 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/core/fs/btrfs/btrfs.c b/core/fs/btrfs/btrfs.c
|
||||
index 53e1105..58e1fe6 100644
|
||||
--- a/core/fs/btrfs/btrfs.c
|
||||
+++ b/core/fs/btrfs/btrfs.c
|
||||
@@ -81,7 +81,8 @@ static int btrfs_comp_chunk_map(struct btrfs_chunk_map_item *m1,
|
||||
}
|
||||
|
||||
/* insert a new chunk mapping item */
|
||||
-static void insert_map(struct fs_info *fs, struct btrfs_chunk_map_item *item)
|
||||
+static void insert_chunk_item(struct fs_info *fs,
|
||||
+ struct btrfs_chunk_map_item *item)
|
||||
{
|
||||
struct btrfs_info * const bfs = fs->fs_info;
|
||||
struct btrfs_chunk_map *chunk_map = &bfs->chunk_map;
|
||||
@@ -113,6 +114,22 @@ static void insert_map(struct fs_info *fs, struct btrfs_chunk_map_item *item)
|
||||
chunk_map->cur_length++;
|
||||
}
|
||||
|
||||
+static inline void insert_map(struct fs_info *fs, struct btrfs_disk_key *key,
|
||||
+ struct btrfs_chunk *chunk)
|
||||
+{
|
||||
+ struct btrfs_stripe *stripe = &chunk->stripe;
|
||||
+ struct btrfs_stripe *stripe_end = stripe + chunk->num_stripes;
|
||||
+ struct btrfs_chunk_map_item item;
|
||||
+
|
||||
+ item.logical = key->offset;
|
||||
+ item.length = chunk->length;
|
||||
+ for ( ; stripe < stripe_end; stripe++) {
|
||||
+ item.devid = stripe->devid;
|
||||
+ item.physical = stripe->offset;
|
||||
+ insert_chunk_item(fs, &item);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* from sys_chunk_array or chunk_tree, we can convert a logical address to
|
||||
* a physical address we can not support multi device case yet
|
||||
@@ -330,7 +347,6 @@ static int next_slot(struct fs_info *fs, struct btrfs_disk_key *key,
|
||||
static void btrfs_read_sys_chunk_array(struct fs_info *fs)
|
||||
{
|
||||
struct btrfs_info * const bfs = fs->fs_info;
|
||||
- struct btrfs_chunk_map_item item;
|
||||
struct btrfs_disk_key *key;
|
||||
struct btrfs_chunk *chunk;
|
||||
int cur;
|
||||
@@ -342,12 +358,7 @@ static void btrfs_read_sys_chunk_array(struct fs_info *fs)
|
||||
cur += sizeof(*key);
|
||||
chunk = (struct btrfs_chunk *)(bfs->sb.sys_chunk_array + cur);
|
||||
cur += btrfs_chunk_item_size(chunk->num_stripes);
|
||||
- /* insert to mapping table, ignore multi stripes */
|
||||
- item.logical = key->offset;
|
||||
- item.length = chunk->length;
|
||||
- item.devid = chunk->stripe.devid;
|
||||
- item.physical = chunk->stripe.offset;/*ignore other stripes */
|
||||
- insert_map(fs, &item);
|
||||
+ insert_map(fs, key, chunk);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -355,14 +366,18 @@ static void btrfs_read_sys_chunk_array(struct fs_info *fs)
|
||||
static void btrfs_read_chunk_tree(struct fs_info *fs)
|
||||
{
|
||||
struct btrfs_info * const bfs = fs->fs_info;
|
||||
+ struct btrfs_disk_key ignore_key;
|
||||
struct btrfs_disk_key search_key;
|
||||
struct btrfs_chunk *chunk;
|
||||
- struct btrfs_chunk_map_item item;
|
||||
struct btrfs_path path;
|
||||
|
||||
if (!(bfs->sb.flags & BTRFS_SUPER_FLAG_METADUMP)) {
|
||||
if (bfs->sb.num_devices > 1)
|
||||
printf("warning: only support single device btrfs\n");
|
||||
+
|
||||
+ ignore_key.objectid = BTRFS_DEV_ITEMS_OBJECTID;
|
||||
+ ignore_key.type = BTRFS_DEV_ITEM_KEY;
|
||||
+
|
||||
/* read chunk from chunk_tree */
|
||||
search_key.objectid = BTRFS_FIRST_CHUNK_TREE_OBJECTID;
|
||||
search_key.type = BTRFS_CHUNK_ITEM_KEY;
|
||||
@@ -371,16 +386,18 @@ static void btrfs_read_chunk_tree(struct fs_info *fs)
|
||||
search_tree(fs, bfs->sb.chunk_root, &search_key, &path);
|
||||
do {
|
||||
do {
|
||||
+ /* skip information about underlying block
|
||||
+ * devices.
|
||||
+ */
|
||||
+ if (!btrfs_comp_keys_type(&ignore_key,
|
||||
+ &path.item.key))
|
||||
+ continue;
|
||||
if (btrfs_comp_keys_type(&search_key,
|
||||
- &path.item.key))
|
||||
+ &path.item.key))
|
||||
break;
|
||||
+
|
||||
chunk = (struct btrfs_chunk *)(path.data);
|
||||
- /* insert to mapping table, ignore stripes */
|
||||
- item.logical = path.item.key.offset;
|
||||
- item.length = chunk->length;
|
||||
- item.devid = chunk->stripe.devid;
|
||||
- item.physical = chunk->stripe.offset;
|
||||
- insert_map(fs, &item);
|
||||
+ insert_map(fs, &path.item.key, chunk);
|
||||
} while (!next_slot(fs, &search_key, &path));
|
||||
if (btrfs_comp_keys_type(&search_key, &path.item.key))
|
||||
break;
|
||||
diff --git a/core/fs/btrfs/btrfs.h b/core/fs/btrfs/btrfs.h
|
||||
index 8f519a9..32e7c70 100644
|
||||
--- a/core/fs/btrfs/btrfs.h
|
||||
+++ b/core/fs/btrfs/btrfs.h
|
||||
@@ -56,6 +56,8 @@ typedef u64 __le64;
|
||||
#define BTRFS_MAX_LEVEL 8
|
||||
#define BTRFS_MAX_CHUNK_ENTRIES 256
|
||||
|
||||
+#define BTRFS_DEV_ITEMS_OBJECTID 1ULL
|
||||
+
|
||||
#define BTRFS_FT_REG_FILE 1
|
||||
#define BTRFS_FT_DIR 2
|
||||
#define BTRFS_FT_SYMLINK 7
|
||||
--
|
||||
2.5.5.GIT
|
||||
|
||||
@@ -0,0 +1,292 @@
|
||||
From 0cc9a99e560a2f52bcf052fd85b1efae35ee812f Mon Sep 17 00:00:00 2001
|
||||
From: Sylvain Gault <sylvain.gault@gmail.com>
|
||||
Date: Tue, 29 Sep 2015 04:45:09 +0200
|
||||
Subject: [PATCH 1/1] bios: Don't try to guess the sections alignment
|
||||
|
||||
For the compression / decompression to succeed, the sections layout must
|
||||
be the same between the virtual memory and load memory. The section
|
||||
alignment was kept in sync by introducing aligment that should be
|
||||
greater or equal to the actual section alignment.
|
||||
|
||||
This patch compute the load memory addresses of the sections so that
|
||||
the layout is the same as the virtual memory addresses.
|
||||
|
||||
Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com>
|
||||
Tested-by: poma <pomidorabelisima@gmail.com>
|
||||
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
||||
---
|
||||
core/i386/syslinux.ld | 63 ++++++++++---------------------------------------
|
||||
core/x86_64/syslinux.ld | 63 ++++++++++---------------------------------------
|
||||
2 files changed, 24 insertions(+), 102 deletions(-)
|
||||
|
||||
diff --git a/core/i386/syslinux.ld b/core/i386/syslinux.ld
|
||||
index 7390451..92b75b1 100644
|
||||
--- a/core/i386/syslinux.ld
|
||||
+++ b/core/i386/syslinux.ld
|
||||
@@ -255,10 +255,9 @@ SECTIONS
|
||||
. = 0x100000;
|
||||
|
||||
__pm_code_start = .;
|
||||
+ __vma_to_lma = __pm_code_lma - __pm_code_start;
|
||||
|
||||
- __text_vma = .;
|
||||
- __text_lma = __pm_code_lma;
|
||||
- .text : AT(__text_lma) {
|
||||
+ .text : AT(ADDR(.text) + __vma_to_lma) {
|
||||
FILL(0x90909090)
|
||||
__text_start = .;
|
||||
*(.text)
|
||||
@@ -266,106 +265,68 @@ SECTIONS
|
||||
__text_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(32);
|
||||
-
|
||||
- __rodata_vma = .;
|
||||
- __rodata_lma = __rodata_vma + __text_lma - __text_vma;
|
||||
- .rodata : AT(__rodata_lma) {
|
||||
+ .rodata : AT(ADDR(.rodata) + __vma_to_lma) {
|
||||
__rodata_start = .;
|
||||
*(.rodata)
|
||||
*(.rodata.*)
|
||||
__rodata_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __ctors_vma = .;
|
||||
- __ctors_lma = __ctors_vma + __text_lma - __text_vma;
|
||||
- .ctors : AT(__ctors_lma) {
|
||||
+ .ctors : AT(ADDR(.ctors) + __vma_to_lma) {
|
||||
__ctors_start = .;
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
__ctors_end = .;
|
||||
}
|
||||
|
||||
- __dtors_vma = .;
|
||||
- __dtors_lma = __dtors_vma + __text_lma - __text_vma;
|
||||
- .dtors : AT(__dtors_lma) {
|
||||
+ .dtors : AT(ADDR(.dtors) + __vma_to_lma) {
|
||||
__dtors_start = .;
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
__dtors_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __dynsym_vma = .;
|
||||
- __dynsym_lma = __dynsym_vma + __text_lma - __text_vma;
|
||||
- .dynsym : AT(__dynsym_lma) {
|
||||
+ .dynsym : AT(ADDR(.dynsym) + __vma_to_lma) {
|
||||
__dynsym_start = .;
|
||||
*(.dynsym)
|
||||
__dynsym_end = .;
|
||||
}
|
||||
__dynsym_len = __dynsym_end - __dynsym_start;
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __dynstr_vma = .;
|
||||
- __dynstr_lma = __dynstr_vma + __text_lma - __text_vma;
|
||||
- .dynstr : AT(__dynstr_lma) {
|
||||
+ .dynstr : AT(ADDR(.dynstr) + __vma_to_lma) {
|
||||
__dynstr_start = .;
|
||||
*(.dynstr)
|
||||
__dynstr_end = .;
|
||||
}
|
||||
__dynstr_len = __dynstr_end - __dynstr_start;
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __gnu_hash_vma = .;
|
||||
- __gnu_hash_lma = __gnu_hash_vma + __text_lma - __text_vma;
|
||||
- .gnu.hash : AT(__gnu_hash_lma) {
|
||||
+ .gnu.hash : AT(ADDR(.gnu.hash) + __vma_to_lma) {
|
||||
__gnu_hash_start = .;
|
||||
*(.gnu.hash)
|
||||
__gnu_hash_end = .;
|
||||
}
|
||||
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __dynlink_vma = .;
|
||||
- __dynlink_lma = __dynlink_vma + __text_lma - __text_vma;
|
||||
- .dynlink : AT(__dynlink_lma) {
|
||||
+ .dynlink : AT(ADDR(.dynlink) + __vma_to_lma) {
|
||||
__dynlink_start = .;
|
||||
*(.dynlink)
|
||||
__dynlink_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __got_vma = .;
|
||||
- __got_lma = __got_vma + __text_lma - __text_vma;
|
||||
- .got : AT(__got_lma) {
|
||||
+ .got : AT(ADDR(.got) + __vma_to_lma) {
|
||||
__got_start = .;
|
||||
KEEP (*(.got.plt))
|
||||
KEEP (*(.got))
|
||||
__got_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __dynamic_vma = .;
|
||||
- __dynamic_lma = __dynamic_vma + __text_lma - __text_vma;
|
||||
- .dynamic : AT(__dynamic_lma) {
|
||||
+ .dynamic : AT(ADDR(.dynamic) + __vma_to_lma) {
|
||||
__dynamic_start = .;
|
||||
*(.dynamic)
|
||||
__dynamic_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(32);
|
||||
-
|
||||
- __data_vma = .;
|
||||
- __data_lma = __data_vma + __text_lma - __text_vma;
|
||||
- .data : AT(__data_lma) {
|
||||
+ .data : AT(ADDR(.data) + __vma_to_lma) {
|
||||
__data_start = .;
|
||||
*(.data)
|
||||
*(.data.*)
|
||||
diff --git a/core/x86_64/syslinux.ld b/core/x86_64/syslinux.ld
|
||||
index bf815c4..70c6e00 100644
|
||||
--- a/core/x86_64/syslinux.ld
|
||||
+++ b/core/x86_64/syslinux.ld
|
||||
@@ -255,10 +255,9 @@ SECTIONS
|
||||
. = 0x100000;
|
||||
|
||||
__pm_code_start = .;
|
||||
+ __vma_to_lma = __pm_code_lma - __pm_code_start;
|
||||
|
||||
- __text_vma = .;
|
||||
- __text_lma = __pm_code_lma;
|
||||
- .text : AT(__text_lma) {
|
||||
+ .text : AT(ADDR(.text) + __vma_to_lma) {
|
||||
FILL(0x90909090)
|
||||
__text_start = .;
|
||||
*(.text)
|
||||
@@ -266,106 +265,68 @@ SECTIONS
|
||||
__text_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(32);
|
||||
-
|
||||
- __rodata_vma = .;
|
||||
- __rodata_lma = __rodata_vma + __text_lma - __text_vma;
|
||||
- .rodata : AT(__rodata_lma) {
|
||||
+ .rodata : AT(ADDR(.rodata) + __vma_to_lma) {
|
||||
__rodata_start = .;
|
||||
*(.rodata)
|
||||
*(.rodata.*)
|
||||
__rodata_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __ctors_vma = .;
|
||||
- __ctors_lma = __ctors_vma + __text_lma - __text_vma;
|
||||
- .ctors : AT(__ctors_lma) {
|
||||
+ .ctors : AT(ADDR(.ctors) + __vma_to_lma) {
|
||||
__ctors_start = .;
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
__ctors_end = .;
|
||||
}
|
||||
|
||||
- __dtors_vma = .;
|
||||
- __dtors_lma = __dtors_vma + __text_lma - __text_vma;
|
||||
- .dtors : AT(__dtors_lma) {
|
||||
+ .dtors : AT(ADDR(.dtors) + __vma_to_lma) {
|
||||
__dtors_start = .;
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
__dtors_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __dynsym_vma = .;
|
||||
- __dynsym_lma = __dynsym_vma + __text_lma - __text_vma;
|
||||
- .dynsym : AT(__dynsym_lma) {
|
||||
+ .dynsym : AT(ADDR(.dynsym) + __vma_to_lma) {
|
||||
__dynsym_start = .;
|
||||
*(.dynsym)
|
||||
__dynsym_end = .;
|
||||
}
|
||||
__dynsym_len = __dynsym_end - __dynsym_start;
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __dynstr_vma = .;
|
||||
- __dynstr_lma = __dynstr_vma + __text_lma - __text_vma;
|
||||
- .dynstr : AT(__dynstr_lma) {
|
||||
+ .dynstr : AT(ADDR(.dynstr) + __vma_to_lma) {
|
||||
__dynstr_start = .;
|
||||
*(.dynstr)
|
||||
__dynstr_end = .;
|
||||
}
|
||||
__dynstr_len = __dynstr_end - __dynstr_start;
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __gnu_hash_vma = .;
|
||||
- __gnu_hash_lma = __gnu_hash_vma + __text_lma - __text_vma;
|
||||
- .gnu.hash : AT(__gnu_hash_lma) {
|
||||
+ .gnu.hash : AT(ADDR(.gnu.hash) + __vma_to_lma) {
|
||||
__gnu_hash_start = .;
|
||||
*(.gnu.hash)
|
||||
__gnu_hash_end = .;
|
||||
}
|
||||
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __dynlink_vma = .;
|
||||
- __dynlink_lma = __dynlink_vma + __text_lma - __text_vma;
|
||||
- .dynlink : AT(__dynlink_lma) {
|
||||
+ .dynlink : AT(ADDR(.dynlink) + __vma_to_lma) {
|
||||
__dynlink_start = .;
|
||||
*(.dynlink)
|
||||
__dynlink_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __got_vma = .;
|
||||
- __got_lma = __got_vma + __text_lma - __text_vma;
|
||||
- .got : AT(__got_lma) {
|
||||
+ .got : AT(ADDR(.got) + __vma_to_lma) {
|
||||
__got_start = .;
|
||||
KEEP (*(.got.plt))
|
||||
KEEP (*(.got))
|
||||
__got_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(4);
|
||||
-
|
||||
- __dynamic_vma = .;
|
||||
- __dynamic_lma = __dynamic_vma + __text_lma - __text_vma;
|
||||
- .dynamic : AT(__dynamic_lma) {
|
||||
+ .dynamic : AT(ADDR(.dynamic) + __vma_to_lma) {
|
||||
__dynamic_start = .;
|
||||
*(.dynamic)
|
||||
__dynamic_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(32);
|
||||
-
|
||||
- __data_vma = .;
|
||||
- __data_lma = __data_vma + __text_lma - __text_vma;
|
||||
- .data : AT(__data_lma) {
|
||||
+ .data : AT(ADDR(.data) + __vma_to_lma) {
|
||||
__data_start = .;
|
||||
*(.data)
|
||||
*(.data.*)
|
||||
--
|
||||
2.5.5.GIT
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
From e5f2b577ded109291c9632dacb6eaa621d8a59fe Mon Sep 17 00:00:00 2001
|
||||
From: Sylvain Gault <sylvain.gault@gmail.com>
|
||||
Date: Tue, 29 Sep 2015 02:38:25 +0200
|
||||
Subject: [PATCH 1/1] bios: Fix alignment change with gcc 5
|
||||
|
||||
The section aligment specified in the ld scripts have to be greater or
|
||||
equal to those in the .o files generated by gcc.
|
||||
|
||||
Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com>
|
||||
Tested-by: poma <pomidorabelisima@gmail.com>
|
||||
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
||||
---
|
||||
core/i386/syslinux.ld | 6 +++---
|
||||
core/x86_64/syslinux.ld | 6 +++---
|
||||
2 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/core/i386/syslinux.ld b/core/i386/syslinux.ld
|
||||
index 7b4e012..7390451 100644
|
||||
--- a/core/i386/syslinux.ld
|
||||
+++ b/core/i386/syslinux.ld
|
||||
@@ -266,7 +266,7 @@ SECTIONS
|
||||
__text_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(16);
|
||||
+ . = ALIGN(32);
|
||||
|
||||
__rodata_vma = .;
|
||||
__rodata_lma = __rodata_vma + __text_lma - __text_vma;
|
||||
@@ -361,7 +361,7 @@ SECTIONS
|
||||
__dynamic_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(16);
|
||||
+ . = ALIGN(32);
|
||||
|
||||
__data_vma = .;
|
||||
__data_lma = __data_vma + __text_lma - __text_vma;
|
||||
@@ -377,7 +377,7 @@ SECTIONS
|
||||
__pm_code_dwords = (__pm_code_len + 3) >> 2;
|
||||
|
||||
. = ALIGN(128);
|
||||
-
|
||||
+
|
||||
__bss_vma = .;
|
||||
__bss_lma = .; /* Dummy */
|
||||
.bss (NOLOAD) : AT (__bss_lma) {
|
||||
diff --git a/core/x86_64/syslinux.ld b/core/x86_64/syslinux.ld
|
||||
index 1057112..bf815c4 100644
|
||||
--- a/core/x86_64/syslinux.ld
|
||||
+++ b/core/x86_64/syslinux.ld
|
||||
@@ -266,7 +266,7 @@ SECTIONS
|
||||
__text_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(16);
|
||||
+ . = ALIGN(32);
|
||||
|
||||
__rodata_vma = .;
|
||||
__rodata_lma = __rodata_vma + __text_lma - __text_vma;
|
||||
@@ -361,7 +361,7 @@ SECTIONS
|
||||
__dynamic_end = .;
|
||||
}
|
||||
|
||||
- . = ALIGN(16);
|
||||
+ . = ALIGN(32);
|
||||
|
||||
__data_vma = .;
|
||||
__data_lma = __data_vma + __text_lma - __text_vma;
|
||||
@@ -377,7 +377,7 @@ SECTIONS
|
||||
__pm_code_dwords = (__pm_code_len + 3) >> 2;
|
||||
|
||||
. = ALIGN(128);
|
||||
-
|
||||
+
|
||||
__bss_vma = .;
|
||||
__bss_lma = .; /* Dummy */
|
||||
.bss (NOLOAD) : AT (__bss_lma) {
|
||||
--
|
||||
2.5.5.GIT
|
||||
|
||||
@@ -13,14 +13,15 @@
|
||||
<IsA>app:console</IsA>
|
||||
<Summary>SysLinux, IsoLinux and PXELinux bootloader</Summary>
|
||||
<Description>Lightweight bootloaders for floppy media (SYSLINUX), network booting (PXELINUX), and bootable "El Torito" CD-ROMs (ISOLINUX). The project also includes MEMDISK, a tool to boot legacy operating systems (such as DOS) from nontraditional media; it is usually used in conjunction with PXELINUX and ISOLINUX.</Description>
|
||||
<Archive sha1sum="ceda70713fd575bd46fc497b503ed90f121ab3b1" type="tarxz">https://www.kernel.org/pub/linux/utils/boot/syslinux/4.xx/syslinux-4.07.tar.xz</Archive>
|
||||
<Archive sha1sum="ceda70713fd575bd46fc497b503ed90f121ab3b1" type="tarxz">https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.xz</Archive>
|
||||
<BuildDependencies>
|
||||
<Dependency>nasm</Dependency>
|
||||
<Dependency>libutil-linux-devel</Dependency>
|
||||
</BuildDependencies>
|
||||
<Patches>
|
||||
<Patch level="1">nopie.patch</Patch>
|
||||
<Patch level="1">fixisohybrid.patch</Patch>
|
||||
<Patch level="1">btrfs-fix.patch</Patch>
|
||||
<Patch level="1">dont-guess-alignment.patch</Patch>
|
||||
<Patch level="1">gcc-fix-alignment.patch</Patch>
|
||||
</Patches>
|
||||
</Source>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user