sanity.bbclass: improve the sanity check for PATH and BBPATH

Build fails if "./" is in the PATH

To reproduce the issue:

  $ export PATH="./:$PATH"
  $ make -C build-tools elfutils

  Error: ./ld: unrecognized option '--sysroot=/'

(From OE-Core rev: b6a23572b8f14e27d4341892b9069e7cac1e9c14)

Signed-off-by: Shiqun Lin <Shiqun.Lin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Shiqun Lin
2015-01-07 15:00:31 +08:00
committed by Richard Purdie
parent 9ceff87e71
commit 66e2eef21d

View File

@@ -653,9 +653,9 @@ def check_sanity_version_change(status, d):
status.addresult("You have a 32-bit libc, but no 32-bit headers. You must install the 32-bit libc headers.\n")
bbpaths = d.getVar('BBPATH', True).split(":")
if ("." in bbpaths or "" in bbpaths) and not status.reparse:
if ("." in bbpaths or "./" in bbpaths or "" in bbpaths) and not status.reparse:
status.addresult("BBPATH references the current directory, either through " \
"an empty entry, or a '.'.\n\t This is unsafe and means your "\
"an empty entry, a './' or a '.'.\n\t This is unsafe and means your "\
"layer configuration is adding empty elements to BBPATH.\n\t "\
"Please check your layer.conf files and other BBPATH " \
"settings to remove the current working directory " \
@@ -693,8 +693,8 @@ def check_sanity_everybuild(status, d):
sanity_check_conffiles(status, d)
paths = d.getVar('PATH', True).split(":")
if "." in paths or "" in paths:
status.addresult("PATH contains '.' or '' (empty element), which will break the build, please remove this.\nParsed PATH is " + str(paths) + "\n")
if "." in paths or "./" in paths or "" in paths:
status.addresult("PATH contains '.', './' or '' (empty element), which will break the build, please remove this.\nParsed PATH is " + str(paths) + "\n")
# Check that the DISTRO is valid, if set
# need to take into account DISTRO renaming DISTRO