mirror of
https://github.com/home-assistant/operating-system.git
synced 2025-11-14 21:29:28 +00:00
* Update buildroot-patches for 2020.11-rc1 buildroot * Update buildroot to 2020.11-rc1 Signed-off-by: Stefan Agner <stefan@agner.ch> * Don't rely on sfdisk --list-free output The --list-free (-F) argument does not allow machine readable mode. And it seems that the output format changes over time (different spacing, using size postfixes instead of raw blocks). Use sfdisk json output and calculate free partition space ourselfs. This works for 2.35 and 2.36 and is more robust since we rely on output which is meant for scripts to parse. * Migrate defconfigs for Buildroot 2020.11-rc1 In particular, rename BR2_TARGET_UBOOT_BOOT_SCRIPT(_SOURCE) to BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT(_SOURCE). * Rebase/remove systemd patches for systemd 246 * Drop apparmor/libapparmor from buildroot-external * hassos-persists: use /run as directory for lockfiles The U-Boot tools use /var/lock by default which is not created any more by systemd by default (it is under tmpfiles legacy.conf, which we no longer install). * Disable systemd-update-done.service The service is not suited for pure read-only systems. In particular the service needs to be able to write a file in /etc and /var. Remove the service. Note: This is a static service and cannot be removed using systemd-preset. * Disable apparmor.service for now The service loads all default profiles. Some might actually cause problems. E.g. the profile for ping seems not to match our setup for /etc/resolv.conf: [85503.634653] audit: type=1400 audit(1605286002.684:236): apparmor="DENIED" operation="open" profile="ping" name="/run/resolv.conf" pid=27585 comm="ping" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
56 lines
2.0 KiB
Diff
56 lines
2.0 KiB
Diff
From 5df4791bf077127684faceeeea8bfab063e43774 Mon Sep 17 00:00:00 2001
|
|
From: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Date: Wed, 3 Jun 2020 12:14:58 +0100
|
|
Subject: [PATCH] Fix shared library corruption when rerunning patchelf
|
|
|
|
When running patchelf on some existing patchelf'd binaries to change to longer
|
|
RPATHS, ldd would report the binaries as invalid. The output of objdump -x on
|
|
those libraryies should show the top of the .dynamic section is getting trashed,
|
|
something like:
|
|
|
|
0x600000001 0x0000000000429000
|
|
0x335000 0x0000000000335000
|
|
0xc740 0x000000000000c740
|
|
0x1000 0x0000000000009098
|
|
SONAME libglib-2.0.so.0
|
|
|
|
(which should be RPATH and DT_NEEDED entries)
|
|
|
|
This was tracked down to the code which injects the PT_LOAD section.
|
|
|
|
The issue is that if the program headers were previously relocated to the end
|
|
of the file which was how patchelf operated previously, the relocation code
|
|
wouldn't work properly on a second run as it now assumes they're located after
|
|
the elf header. This change forces them back to immediately follow the elf
|
|
header which is where the code has made space for them.
|
|
|
|
Should fix https://github.com/NixOS/patchelf/issues/170
|
|
and https://github.com/NixOS/patchelf/issues/192
|
|
|
|
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
|
|
Fetch from: https://github.com/NixOS/patchelf/commit/ad5f1f078b716802dfb8f7226cb1d5c720348a78
|
|
|
|
Backported to v0.9
|
|
|
|
Signed-off-by: Conrad Ratschan <conrad.ratschan@rockwellcollins.com>
|
|
---
|
|
src/patchelf.cc | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
diff --git a/src/patchelf.cc b/src/patchelf.cc
|
|
index c2147af..1224a89 100644
|
|
--- a/src/patchelf.cc
|
|
+++ b/src/patchelf.cc
|
|
@@ -706,6 +706,7 @@ void ElfFile<ElfFileParamNames>::rewriteSectionsLibrary()
|
|
|
|
|
|
/* Add a segment that maps the replaced sections into memory. */
|
|
+ wri(hdr->e_phoff, sizeof(Elf_Ehdr));
|
|
phdrs.resize(rdi(hdr->e_phnum) + 1);
|
|
wri(hdr->e_phnum, rdi(hdr->e_phnum) + 1);
|
|
Elf_Phdr & phdr = phdrs[rdi(hdr->e_phnum) - 1];
|
|
--
|
|
2.17.1
|
|
|