zip: modify when match.S is built

Avoid generating non-PIC code.

The patches are taken from master 58b16da805... but we cannot
cherry-pick because zip_3.0.bb context is different.

(From OE-Core rev: 0a5d1b1c617a152559c18ada394827de0db6031a)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Joe Slater 2022-03-18 16:38:07 -07:00 committed by Richard Purdie
parent eb28aafdc9
commit 3f537fefb6
3 changed files with 83 additions and 0 deletions

View File

@ -0,0 +1,47 @@
From 7a2729ee7f5d9b9d4a0d9b83fe641a2ab03c4ee0 Mon Sep 17 00:00:00 2001
From: Joe Slater <joe.slater@windriver.com>
Date: Thu, 24 Feb 2022 17:36:59 -0800
Subject: [PATCH 1/2] configure: use correct CPP
configure uses CPP to test that two assembler routines
can be built. Unfortunately, it will use /usr/bin/cpp
if it exists, invalidating the tests. We use the $CC
passed to configure.
Upstream-Status: Inappropriate [openembedded specific]
Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
unix/configure | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/unix/configure b/unix/configure
index 73ba803..7e21070 100644
--- a/unix/configure
+++ b/unix/configure
@@ -220,13 +220,16 @@ fi
echo Check for the C preprocessor
# on SVR4, cc -E does not produce correct assembler files. Need /lib/cpp.
CPP="${CC} -E"
+
+# We should not change CPP for yocto builds.
+#
# solaris as(1) needs -P, maybe others as well ?
-[ -f /usr/ccs/lib/cpp ] && CPP="/usr/ccs/lib/cpp -P"
-[ -f /usr/lib/cpp ] && CPP=/usr/lib/cpp
-[ -f /lib/cpp ] && CPP=/lib/cpp
-[ -f /usr/bin/cpp ] && CPP=/usr/bin/cpp
-[ -f /xenix ] && CPP="${CC} -E"
-[ -f /lynx.os ] && CPP="${CC} -E"
+# [ -f /usr/ccs/lib/cpp ] && CPP="/usr/ccs/lib/cpp -P"
+# [ -f /usr/lib/cpp ] && CPP=/usr/lib/cpp
+# [ -f /lib/cpp ] && CPP=/lib/cpp
+# [ -f /usr/bin/cpp ] && CPP=/usr/bin/cpp
+# [ -f /xenix ] && CPP="${CC} -E"
+# [ -f /lynx.os ] && CPP="${CC} -E"
echo "#include <stdio.h>" > conftest.c
$CPP conftest.c >/dev/null 2>/dev/null || CPP="${CC} -E"
--
2.24.1

View File

@ -0,0 +1,34 @@
From b0492506d2c28581193906e9d260d4f0451e2c39 Mon Sep 17 00:00:00 2001
From: Joe Slater <joe.slater@windriver.com>
Date: Thu, 24 Feb 2022 17:46:03 -0800
Subject: [PATCH 2/2] configure: support PIC code build
Disable building match.S. The code requires
relocation in .text.
Upstream-Status: Inappropriate [openembedded specific]
Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
unix/configure | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/unix/configure b/unix/configure
index 7e21070..1bc698b 100644
--- a/unix/configure
+++ b/unix/configure
@@ -242,8 +242,9 @@ if eval "$CPP match.S > _match.s 2>/dev/null"; then
if test ! -s _match.s || grep error < _match.s > /dev/null; then
:
elif eval "$CC -c _match.s >/dev/null 2>/dev/null" && [ -f _match.o ]; then
- CFLAGS="${CFLAGS} -DASMV"
- OBJA="match.o"
+ # disable match.S for PIC code
+ # CFLAGS="${CFLAGS} -DASMV"
+ # OBJA="match.o"
echo "int foo() { return 0;}" > conftest.c
$CC -c conftest.c >/dev/null 2>/dev/null
echo Check if compiler generates underlines
--
2.24.1

View File

@ -14,6 +14,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.
file://fix-security-format.patch \
file://10-remove-build-date.patch \
file://zipnote-crashes-with-segfault.patch \
file://0001-configure-use-correct-CPP.patch \
file://0002-configure-support-PIC-code-build.patch \
"
UPSTREAM_VERSION_UNKNOWN = "1"