mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-01-01 13:58:06 +00:00
klibc-static-utils: really fix build for x86 with security flags enabled
There were some shared binaries built together with the static ones and this was leading to the infamous: i586-oe-linux-musl-ld.bfd: discarded output section: `.got.plt' Fix this by purging the Kbuild files. Signed-off-by: Andrea Adami <andrea.adami@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
09ae486b7c
commit
aa19346e44
|
|
@ -0,0 +1,213 @@
|
|||
From c034dceae17b7d8d437871afe5eba55a55434222 Mon Sep 17 00:00:00 2001
|
||||
From: Andrea Adami <andrea.adami@gmail.com>
|
||||
Date: Wed, 10 Oct 2018 00:48:31 +0200
|
||||
Subject: [PATCH] klibc-static-utils: do not build shared binaries
|
||||
|
||||
We were building some shared utilities and this was leading to linker errors
|
||||
for x86 with security flags enabled.
|
||||
|
||||
Fix
|
||||
i586-oe-linux-musl-ld.bfd: discarded output section: `.got.plt'
|
||||
|
||||
Upstream-Status: Inappropriate [Embedded Specific]
|
||||
|
||||
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
|
||||
---
|
||||
usr/dash/Kbuild | 6 +-----
|
||||
usr/kinit/Kbuild | 4 +---
|
||||
usr/kinit/fstype/Kbuild | 4 +---
|
||||
usr/kinit/ipconfig/Kbuild | 4 +---
|
||||
usr/kinit/nfsmount/Kbuild | 4 +---
|
||||
usr/kinit/resume/Kbuild | 5 +----
|
||||
usr/kinit/run-init/Kbuild | 5 +----
|
||||
usr/utils/Kbuild | 7 ++-----
|
||||
8 files changed, 9 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/usr/dash/Kbuild b/usr/dash/Kbuild
|
||||
index 1a6920a..b3a4e64 100644
|
||||
--- a/usr/dash/Kbuild
|
||||
+++ b/usr/dash/Kbuild
|
||||
@@ -25,12 +25,8 @@ gen-h-files := builtins.h nodes.h syntax.h token.h
|
||||
|
||||
static-y := sh
|
||||
|
||||
-# The shared binary
|
||||
-shared-y := sh.shared
|
||||
-sh.shared-y := $(sh-y)
|
||||
-
|
||||
# For cleaning
|
||||
-targets := sh sh.g sh.shared sh.shared.g $(gen-o-files)
|
||||
+targets := sh sh.g $(gen-o-files)
|
||||
|
||||
# explicit dependency for all generated files
|
||||
$(addprefix $(obj)/, $(sh-y)): $(addprefix $(obj)/, $(gen-h-files))
|
||||
diff --git a/usr/kinit/Kbuild b/usr/kinit/Kbuild
|
||||
index f7fdccd..8db06ab 100644
|
||||
--- a/usr/kinit/Kbuild
|
||||
+++ b/usr/kinit/Kbuild
|
||||
@@ -18,8 +18,6 @@ kinit-y += fstype/
|
||||
kinit-y += resume/
|
||||
|
||||
static-y := kinit
|
||||
-shared-y := kinit.shared
|
||||
-kinit.shared-y := $(kinit-y)
|
||||
|
||||
# Additional include paths files
|
||||
KLIBCCFLAGS += -I$(srctree)/$(src)/fstype \
|
||||
@@ -29,7 +27,7 @@ KLIBCCFLAGS += -I$(srctree)/$(src)/fstype \
|
||||
-I$(srctree)/$(src)/run-init
|
||||
|
||||
# Cleaning
|
||||
-targets += kinit kinit.g kinit.shared kinit.shared.g
|
||||
+targets += kinit kinit.g
|
||||
subdir- := fstype ipconfig nfsmount resume run-init
|
||||
|
||||
|
||||
diff --git a/usr/kinit/fstype/Kbuild b/usr/kinit/fstype/Kbuild
|
||||
index 367611d..8d453ea 100644
|
||||
--- a/usr/kinit/fstype/Kbuild
|
||||
+++ b/usr/kinit/fstype/Kbuild
|
||||
@@ -3,7 +3,6 @@
|
||||
#
|
||||
|
||||
static-y := static/fstype
|
||||
-shared-y := shared/fstype
|
||||
|
||||
# common .o files
|
||||
objs := main.o fstype.o
|
||||
@@ -16,8 +15,7 @@ lib-y := $(objs)
|
||||
|
||||
# .o files used to built executables
|
||||
static/fstype-y := $(objs)
|
||||
-shared/fstype-y := $(objs)
|
||||
|
||||
# Cleaning
|
||||
-clean-dirs := static shared
|
||||
+clean-dirs := static
|
||||
|
||||
diff --git a/usr/kinit/ipconfig/Kbuild b/usr/kinit/ipconfig/Kbuild
|
||||
index eb1d472..ef87e7e 100644
|
||||
--- a/usr/kinit/ipconfig/Kbuild
|
||||
+++ b/usr/kinit/ipconfig/Kbuild
|
||||
@@ -3,7 +3,6 @@
|
||||
#
|
||||
|
||||
static-y := static/ipconfig
|
||||
-shared-y := shared/ipconfig
|
||||
|
||||
# common .o files
|
||||
objs := main.o netdev.o packet.o
|
||||
@@ -22,8 +21,7 @@ lib-y := $(objs)
|
||||
|
||||
# .o files used to built executables
|
||||
static/ipconfig-y := $(objs)
|
||||
-shared/ipconfig-y := $(objs)
|
||||
|
||||
# Cleaning
|
||||
-clean-dirs := static shared
|
||||
+clean-dirs := static
|
||||
|
||||
diff --git a/usr/kinit/nfsmount/Kbuild b/usr/kinit/nfsmount/Kbuild
|
||||
index ba31708..01bedce 100644
|
||||
--- a/usr/kinit/nfsmount/Kbuild
|
||||
+++ b/usr/kinit/nfsmount/Kbuild
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
static-y := static/nfsmount
|
||||
#FIXME - build is broken static-y := dummypmap
|
||||
-shared-y := shared/nfsmount
|
||||
|
||||
objs := main.o mount.o portmap.o dummypmap.o sunrpc.o
|
||||
|
||||
@@ -13,7 +12,6 @@ lib-y := $(objs)
|
||||
|
||||
# .o files used for executables
|
||||
static/nfsmount-y := $(objs)
|
||||
-shared/nfsmount-y := $(objs)
|
||||
|
||||
# dummypmap uses a single .o file (rename src file?)
|
||||
dummypmap-y := dummypmap_test.o
|
||||
@@ -21,5 +19,5 @@ dummypmap-y := dummypmap_test.o
|
||||
# TODO - do we want a stripped version
|
||||
# TODO - do we want the static.g + shared.g directories?
|
||||
|
||||
-clean-dirs := static shared
|
||||
+clean-dirs := static
|
||||
|
||||
diff --git a/usr/kinit/resume/Kbuild b/usr/kinit/resume/Kbuild
|
||||
index c1342e1..15b9590 100644
|
||||
--- a/usr/kinit/resume/Kbuild
|
||||
+++ b/usr/kinit/resume/Kbuild
|
||||
@@ -3,7 +3,6 @@
|
||||
#
|
||||
|
||||
static-y := static/resume
|
||||
-shared-y := shared/resume
|
||||
|
||||
# common .o files
|
||||
objs := resume.o resumelib.o
|
||||
@@ -20,9 +19,7 @@ KLIBCCFLAGS += -I$(srctree)/$(src)/..
|
||||
# .o files used to built executables
|
||||
static/resume-y := $(objs)
|
||||
static/resume-lib := ../lib.a
|
||||
-shared/resume-y := $(objs)
|
||||
-shared/resume-lib := ../lib.a
|
||||
|
||||
# Cleaning
|
||||
-clean-dirs := static shared
|
||||
+clean-dirs := static
|
||||
|
||||
diff --git a/usr/kinit/run-init/Kbuild b/usr/kinit/run-init/Kbuild
|
||||
index c153b0a..a1ea834 100644
|
||||
--- a/usr/kinit/run-init/Kbuild
|
||||
+++ b/usr/kinit/run-init/Kbuild
|
||||
@@ -3,7 +3,6 @@
|
||||
#
|
||||
|
||||
static-y := static/run-init
|
||||
-shared-y := shared/run-init
|
||||
|
||||
# common .o files
|
||||
objs := run-init.o runinitlib.o
|
||||
@@ -24,9 +23,7 @@ KLIBCCFLAGS += -I$(srctree)/$(src)/..
|
||||
# .o files used to built executables
|
||||
static/run-init-y := $(objs)
|
||||
static/run-init-lib := ../lib.a
|
||||
-shared/run-init-y := $(objs)
|
||||
-shared/run-init-lib := ../lib.a
|
||||
|
||||
# Cleaning
|
||||
-clean-dirs := static shared
|
||||
+clean-dirs := static
|
||||
|
||||
diff --git a/usr/utils/Kbuild b/usr/utils/Kbuild
|
||||
index 67d9486..1573363 100644
|
||||
--- a/usr/utils/Kbuild
|
||||
+++ b/usr/utils/Kbuild
|
||||
@@ -7,7 +7,6 @@ progs += true false sleep ln mv nuke minips cat ls losetup
|
||||
progs += uname halt kill readlink cpio sync dmesg
|
||||
|
||||
static-y := $(addprefix static/, $(progs))
|
||||
-shared-y := $(addprefix shared/, $(progs))
|
||||
|
||||
# The binary is placed in a subdir, so we need to tell kbuild this
|
||||
static/chroot-y := chroot.o
|
||||
@@ -62,13 +61,11 @@ static/losetup-y := losetup.o
|
||||
shared/losetup-y := losetup.o
|
||||
|
||||
# Additionally linked targets
|
||||
-always := static/reboot static/poweroff shared/reboot shared/poweroff
|
||||
+always := static/reboot static/poweroff
|
||||
|
||||
$(obj)/static/reboot $(obj)/static/poweroff: $(obj)/static/halt
|
||||
$(call cmd,ln)
|
||||
-$(obj)/shared/reboot $(obj)/shared/poweroff: $(obj)/shared/halt
|
||||
- $(call cmd,ln)
|
||||
|
||||
# Clean deletes the static and shared dir
|
||||
-clean-dirs := static shared
|
||||
+clean-dirs := static
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
|
@ -11,6 +11,8 @@ KLIBC_UTILS_PKGNAME = "klibc-static-utils"
|
|||
require klibc-utils.inc
|
||||
require klibc.inc
|
||||
|
||||
SRC_URI += "file://0001-klibc-static-utils-do-not-build-shared-binaries.patch"
|
||||
|
||||
# avoid textrel if linking with -pie
|
||||
SECURITY_CFLAGS = ""
|
||||
SECURITY_LDFLAGS = ""
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user