Skip to contentSkip to conversation

linux: drop dependency on host-{bison, flex}

PATCH New Yann E. MORIN 3 participants 7 messages Aug 3, 2018 – Aug 5, 2018

lore
Share & tools
lore
#0 lore raw

cover linux: drop dependency on host-{bison, flex}

Hello All!

host{bison,flex} are only needed to build the kconfig parser. The kconfig parser is not part of any host tool that would be used by any other package; instead, it is purely internal to the kernel, and are only used to generate the .config file.

As such, we don't care much what version of bison or flex are used to generate the parser; those comonly available in the distros are good enough for the task.

So, add bison and flex to the list of pre-requisites, check for them as part of the dependencies check, and finally drop the host variants from linux' dependencies.

This series implements the solution discussed in this thread, with suggestion by Thomas and Arnout (same thread, span three months):

    http://lists.busybox.net/pipermail/buildroot/2018-May/221243.html
    http://lists.busybox.net/pipermail/buildroot/2018-July/226840.html
    http://lists.busybox.net/pipermail/buildroot/2018-August/226971.html

Eventually, when we update our own version of kconfig, we may decide to also drop the generated parser, or keep bundling them. If we go the former route, we'll have to revisit how we check for bison and flex, so it also works even in the face of an unconfigured tree. But that can be done then.

Note that this series does conflict with one I sent earlier:
https://patchwork.ozlabs.org/project/buildroot/list/?series=59249

Probaby we want this one to be applied first, and leave the other for later (linux-4.18 is not cwevenyet out yet, and probably won't be before we freeze for 2018.08 anyway).

Regards,
Yann E. MORIN.

The following changes since commit 81ea4a243b63d7bb1fec580910c553af4ae072c1

package/lttng-tools: bump version to 2.10.5 (2018-08-01 14:28:30 +0200)

are available in the git repository at:

git://git.buildroot.org/~ymorin/git/buildroot.git

for you to fetch changes up to 0c44ca5ddc27dfe13152a08b4bdd48ce3b8599dc

linux: drop dependency on host-{bison,flex} (2018-08-03 23:32:14 +0200)

----------------------------------------------------------------
Yann E. MORIN (3):
docs/manual: add flex+bison to pre-requisites support/dependencies: also check for flex+bison
linux: drop dependency on host-{bison,flex}

 docs/manual/prerequisite.txt         | 3 ++-
 linux/linux.mk                       | 2 +-
 support/dependencies/dependencies.sh | 6 +++++-
 3 files changed, 8 insertions(+), 3 deletions(-)
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#1 lore raw

PATCH 1/3 docs/manual: add flex+bison to pre-requisites

Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>
Cc Peter Korsgaard <[email protected]>
---
 docs/manual/prerequisite.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
docs/manual/prerequisite.txt +2 -1
index 110fab41fd..0867e4d619 100644
@@ -24,7 +24,8 @@ between distributions).
 ** +binutils+
 ** +build-essential+ (only for Debian based systems)
 ** +gcc+ (version 2.95 or any later)
-** `g++` (version 2.95 or any later)
+** `bison`
+** `flex`
 ** +bash+
 ** +patch+
 ** +gzip+
Signature · 1 line
2.14.1
#2 lore raw

PATCH 1/3 docs/manual: add flex+bison to pre-requisites

Hi Yann,

Quoted 13 lines · Yann E. MORIN
Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>
Cc Peter Korsgaard <[email protected]>
---
 docs/manual/prerequisite.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
docs/manual/prerequisite.txt +0 -0
index 110fab41fd..0867e4d619 100644

docs/manual/prerequisite.txt between distributions). · line 27

Quoted 4 lines
docs/manual/prerequisite.txt +0 -1
@@ -24,7 +24,8 @@ between distributions).
 ** +binutils+
 ** +build-essential+ (only for Debian based systems)
 ** +gcc+ (version 2.95 or any later)
-** `g++` (version 2.95 or any later)

Is this removal intended?

BTW, is version 2.95 realistic? Is it actually possible to build a reasonable Buildroot config even with host gcc 3.x?

docs/manual/prerequisite.txt between distributions). · line 31

Quoted 5 lines
docs/manual/prerequisite.txt +2 -0
+** `bison`
+** `flex`
 ** +bash+
 ** +patch+
 ** +gzip+

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#3 lore raw

PATCH 1/3 docs/manual: add flex+bison to pre-requisites

Baruch, All,

On 2018-08-05 07:25 +0300, Baruch Siach spake thusly:

Quoted 9 lines · Yann E. MORIN
Quoted 8 lines
Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>
Cc Peter Korsgaard <[email protected]>
---
 docs/manual/prerequisite.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Quoted 11 lines

docs/manual/prerequisite.txt between distributions). · line 27

Quoted 9 lines
docs/manual/prerequisite.txt +0 -1
index 110fab41fd..0867e4d619 100644
@@ -24,7 +24,8 @@ between distributions).
 ** +binutils+
 ** +build-essential+ (only for Debian based systems)
 ** +gcc+ (version 2.95 or any later)
-** `g++` (version 2.95 or any later)

Is this removal intended?

Nope, that was not intentional.

Quoted 2 lines

BTW, is version 2.95 realistic? Is it actually possible to build a reasonable Buildroot config even with host gcc 3.x?

Probably not, but that is a brand other topic...

Thanks! :-)

Regards,
Yann E. MORIN.

Quoted 12 lines

docs/manual/prerequisite.txt between distributions). · line 31

Quoted 5 lines
docs/manual/prerequisite.txt +2 -0
+** `bison`
+** `flex`
 ** +bash+
 ** +patch+
 ** +gzip+

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#4 lore raw

PATCH 1/3 docs/manual: add flex+bison to pre-requisites

In reply to Baruch Siach

Hello,

Quoted 2 lines · Baruch Siach

BTW, is version 2.95 realistic? Is it actually possible to build a reasonable Buildroot config even with host gcc 3.x?

Hollis Blanchard recently started an autobuilder on RHEL6.5, which uses host gcc 4.4, and sent some fixes for build issues encountered with host gcc 4.4.

So, since this is the oldest gcc version that we're testing, I would suggest that we document this version as the minimum gcc version.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#5 lore raw

PATCH 2/3 support/dependencies: also check for flex+bison

In reply to Yann E. MORIN
Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>
Cc Peter Korsgaard <[email protected]>
---
 support/dependencies/dependencies.sh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
support/dependencies/dependencies.sh +5 -1
index 58c34d880f..09d0450688 100755
@@ -161,7 +161,11 @@ fi
 
 # Check that a few mandatory programs are installed
 missing_progs="no"
-for prog in patch perl tar wget cpio python unzip rsync bc ${DL_TOOLS} ; do
+required_progs="
+    patch perl tar wget cpio python unzip rsync bc bison flex
+    ${DL_TOOLS}
+"
+for prog in ${required_progs} ; do
 	if ! which $prog > /dev/null ; then
 		echo "You must install '$prog' on your build machine";
 		missing_progs="yes"
Signature · 1 line
2.14.1
#6 lore raw

PATCH 3/3 linux: drop dependency on host-{bison, flex}

In reply to Yann E. MORIN

Now that we expect those two tools to be installed n the host, just depend on them to generate the linux kconfig parser.

Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>
Cc Peter Korsgaard <[email protected]>
---
 linux/linux.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
linux/linux.mk +1 -1
index 7527b11673..7f624e6cb7 100644
@@ -62,7 +62,7 @@ LINUX_PATCHES = $(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
 LINUX_PATCH = $(filter ftp://% http://% https://%,$(LINUX_PATCHES))
 
 LINUX_INSTALL_IMAGES = YES
-LINUX_DEPENDENCIES += host-bison host-flex host-kmod
+LINUX_DEPENDENCIES = host-kmod
 
 # host tools needed for kernel compression
 ifeq ($(BR2_LINUX_KERNEL_LZ4),y)
Signature · 1 line
2.14.1