summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2007-08-18 10:45:49 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2007-08-18 10:45:49 +0000
commit048a1784c4050ca68f5973fa106c785cad8c5037 (patch)
treec4fb63c390ac70fc8d5af1b92bb79ec9a1de6093
parentcf2a814cfe7255ba35022ee981ded4abe7b92c73 (diff)
downloadbitbake-048a1784c4050ca68f5973fa106c785cad8c5037.tar.gz
cookey.py: Clear the terminal TOSTOP flag if set (and warn the user)
-rw-r--r--ChangeLog1
-rw-r--r--lib/bb/cooker.py10
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 02d82f59d..873ab86e0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -32,6 +32,7 @@ Changes in Bitbake 1.8.x:
- Sort digraph output to make builds more reproducible
- Split expandKeys into two for loops to benefit from the expand_cache (12% speedup)
- runqueue.py: Fix idepends handling to avoid dependency errors
+ - Clear the terminal TOSTOP flag if set (and warn the user)
Changes in Bitbake 1.8.6:
- Correctly redirect stdin when forking
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 955fbb434..6ee6f07d4 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -73,6 +73,16 @@ class BBCooker:
self.configuration.event_data = bb.data.createCopy(self.configuration.data)
bb.data.update_data(self.configuration.event_data)
+ #
+ # TOSTOP must not be set or our children will hang when they output
+ #
+ import termios
+ tcattr = termios.tcgetattr(sys.stdout.fileno())
+ if tcattr[3] & termios.TOSTOP:
+ bb.msg.note(1, bb.msg.domain.Build, "The terminal had the TOSTOP bit set, clearing...")
+ tcattr[3] = tcattr[3] & ~termios.TOSTOP
+ termios.tcsetattr(sys.stdout.fileno(), termios.TCSANOW, tcattr)
+
def tryBuildPackage(self, fn, item, task, the_data, build_depends):
"""
Build one task of a package, optionally build following task depends