flex: Fix --noline option behavior

Option --noline or -L does not handled properly.
So generated code contains #line directives with
file absolute path and prevents to create
reproducible builds.

(From OE-Core rev: 0bf2cb7dc2123f220accf1542c2ae4c4b4b8275a)

Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Oleksiy Obitotskyy 2021-01-19 04:49:38 -08:00 committed by Richard Purdie
parent da846838fc
commit d610e691d0
2 changed files with 33 additions and 0 deletions

View File

@ -0,0 +1,32 @@
From 440f3f55739468cd26e22f31871eca8cbbd53294 Mon Sep 17 00:00:00 2001
From: Oleksiy Obitotskyy <oobitots@cisco.com>
Date: Wed, 6 Jan 2021 06:12:14 -0800
Subject: [PATCH] Emit no #line directives if gen_line_dirs is false
If we set --noline we should not print line directives.
But setting --noline means gen_line_dirs is false.
Upstream-Status: Submitted
Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
---
src/buf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/buf.c b/src/buf.c
index 185083c..4439e28 100644
--- a/src/buf.c
+++ b/src/buf.c
@@ -95,8 +95,8 @@ struct Buf *buf_linedir (struct Buf *buf, const char* filename, int lineno)
const char *src;
size_t tsz;
- if (gen_line_dirs)
- return buf;
+ if (!gen_line_dirs)
+ return buf;
tsz = strlen("#line \"\"\n") + /* constant parts */
2 * strlen (filename) + /* filename with possibly all backslashes escaped */
--
2.26.2.Cisco

View File

@ -16,6 +16,7 @@ SRC_URI = "https://github.com/westes/flex/releases/download/v${PV}/flex-${PV}.ta
${@bb.utils.contains('PTEST_ENABLED', '1', '', 'file://disable-tests.patch', d)} \
file://0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch \
file://check-funcs.patch \
file://0001-Emit-no-line-directives-if-gen_line_dirs-is-false.patch \
"
SRC_URI[md5sum] = "2882e3179748cc9f9c23ec593d6adc8d"