mirror of
https://git.yoctoproject.org/poky
synced 2026-02-15 05:03:03 +01:00
The previous cleanups meant that when the cooker was started, profiling was always disabled as configuration was sent to the server later and this was too late to profile the main loop. Pass the "profile" option over the server commandline so that we can profile cooker itself again, the setting can now take effect early enough. (Bitbake rev: c97c1f1c127ef3f8fbbd1b4e187ab58bfb0a73e5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
55 lines
1.7 KiB
Python
Executable File
55 lines
1.7 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# Copyright (C) 2020 Richard Purdie
|
|
#
|
|
|
|
import os
|
|
import sys
|
|
import warnings
|
|
warnings.simplefilter("default")
|
|
import logging
|
|
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
|
|
|
|
if sys.getfilesystemencoding() != "utf-8":
|
|
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
|
|
|
|
# Users shouldn't be running this code directly
|
|
if len(sys.argv) != 11 or not sys.argv[1].startswith("decafbad"):
|
|
print("bitbake-server is meant for internal execution by bitbake itself, please don't use it standalone.")
|
|
sys.exit(1)
|
|
|
|
import bb.server.process
|
|
|
|
lockfd = int(sys.argv[2])
|
|
readypipeinfd = int(sys.argv[3])
|
|
logfile = sys.argv[4]
|
|
lockname = sys.argv[5]
|
|
sockname = sys.argv[6]
|
|
timeout = float(sys.argv[7])
|
|
profile = bool(int(sys.argv[8]))
|
|
xmlrpcinterface = (sys.argv[9], int(sys.argv[10]))
|
|
if xmlrpcinterface[0] == "None":
|
|
xmlrpcinterface = (None, xmlrpcinterface[1])
|
|
|
|
# Replace standard fds with our own
|
|
with open('/dev/null', 'r') as si:
|
|
os.dup2(si.fileno(), sys.stdin.fileno())
|
|
|
|
so = open(logfile, 'a+')
|
|
os.dup2(so.fileno(), sys.stdout.fileno())
|
|
os.dup2(so.fileno(), sys.stderr.fileno())
|
|
|
|
# Have stdout and stderr be the same so log output matches chronologically
|
|
# and there aren't two seperate buffers
|
|
sys.stderr = sys.stdout
|
|
|
|
logger = logging.getLogger("BitBake")
|
|
# Ensure logging messages get sent to the UI as events
|
|
handler = bb.event.LogHandler()
|
|
logger.addHandler(handler)
|
|
|
|
bb.server.process.execServer(lockfd, readypipeinfd, lockname, sockname, timeout, xmlrpcinterface, profile)
|
|
|