Browse Source

openvswitch: fix PIE build against 4.14 kernel

Reported-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Ref: https://github.com/openwrt/packages/pull/11567
lilik-openwrt-22.03
Yousong Zhou 5 years ago
parent
commit
e9d6414437
2 changed files with 32 additions and 1 deletions
  1. +1
    -1
      net/openvswitch/Makefile
  2. +31
    -0
      net/openvswitch/patches/0007-datapath-unexport-LDFLAGS.patch

+ 1
- 1
net/openvswitch/Makefile View File

@ -16,7 +16,7 @@ include $(INCLUDE_DIR)/kernel.mk
#
PKG_NAME:=openvswitch
PKG_VERSION:=2.12.0
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.openvswitch.org/releases/
PKG_HASH:=13fd42703180b4b1146c7e97926d09225485868cc2fbbd58dc0c421b4b8fe8f8


+ 31
- 0
net/openvswitch/patches/0007-datapath-unexport-LDFLAGS.patch View File

@ -0,0 +1,31 @@
From ddbe0a362cad22e7171524661fd3d3f83628dd7a Mon Sep 17 00:00:00 2001
From: Yousong Zhou <yszhou4tech@gmail.com>
Date: Mon, 16 Mar 2020 15:18:16 +0800
Subject: [PATCH] datapath: unexport LDFLAGS
OpenWrt build system will put "-specs=.../hardened-pie-ld.specs" into
LDFLAGS when building PIE binaries. However the "-specs" argument is
inteneded for "gcc" the driver while "ld" the linker when presented will
complain it as unrecognized error.
This can cause Kbuild error when building datapath kernel modules. The
issue should only happen when compiling against upstream kernel 4.14 and
earlier. Later ones should have been fixed with kernel upstream commit
d503ac531a5 ("kbuild: rename LDFLAGS to KBUILD_LDFLAGS")
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
---
datapath/linux/Makefile.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/datapath/linux/Makefile.in b/datapath/linux/Makefile.in
index efc1663e4..61fcaa67e 100644
--- a/datapath/linux/Makefile.in
+++ b/datapath/linux/Makefile.in
@@ -1,5 +1,6 @@
ifeq ($(KERNELRELEASE),)
# We're being called directly by running make in this directory.
+unexport LDFLAGS
include Makefile.main
else
# We're being included by the Linux kernel build system

Loading…
Cancel
Save