Skip to content

Instantly share code, notes, and snippets.

View kergoth's full-sized avatar

Christopher Larson kergoth

  • Siemens Digital Industries Software
  • X @kergoth
View GitHub Profile
$ OEQA_REPRODUCIBLE_IMAGES=libgfortran oe-selftest -r cbreproducible.CBReproducibleTests.test_reproducible_builds
2022-08-18 02:20:10,167 - oe-selftest - INFO - Adding layer libraries:
2022-08-18 02:20:10,167 - oe-selftest - INFO - /mel/kergoth/mel/codebench-toolchain/multiconfig/meta-mingw/lib
2022-08-18 02:20:10,167 - oe-selftest - INFO - /mel/kergoth/mel/codebench-toolchain/multiconfig/meta-codebench-toolchain/lib
2022-08-18 02:20:10,167 - oe-selftest - INFO - /mel/kergoth/mel/codebench-toolchain/multiconfig/oe-core/meta/lib
2022-08-18 02:20:10,168 - oe-selftest - INFO - /mel/kergoth/mel/codebench-toolchain/multiconfig/oe-core/meta-selftest/lib
2022-08-18 02:20:10,169 - oe-selftest - INFO - Running bitbake -e to test the configuration is valid/parsable
2022-08-18 02:20:15,130 - oe-selftest - INFO - Adding: "include selftest.inc" in /mel/kergoth/mel/codebench-toolchain/multiconfig/build-st/conf/local.conf
2022-08-18 02:20:15,131 - oe-selftest - INFO - Adding: "include bblayers.inc" in bblayers.conf
2022
From ba7f0374ed98dcfef60fffe52c5845df2abc6ffa Mon Sep 17 00:00:00 2001
From: Christopher Larson <chris_larson@mentor.com>
Date: Fri, 5 Feb 2021 02:43:04 +0500
Subject: [PATCH] copydebugsources_extra: check alternative paths for source
files for debug
This handles paths being pulled from paths that package.bbclass currently
does not handle, such as generated sources written to ${B}, as is the case
for libstdc++, or those from work-shared.
@kergoth
kergoth / Concerns.md
Last active May 18, 2022 16:17
OE/Bitbake thoughts and tasks

Long standing concerns/issues

These are things we've (or I've) wanted to improve, or actively disliked, for years, but dealing with them is never a priority.

  • Steep learning curve. Is this a natural consequence of our level of flexibility? Is there a way to make it clearer how the final metadata comes from multiple sources?

Maintainability

  • Tight Coupling amongst bitbake modules
  • Inconsistent, and at times unclear, API design
def my_handler(d, logger):
logger.warning('test_warning')
logger.info('test note')
logger.error('test error')
logger.critical('test critical')
sys.exit(1)
python testhandler() {
_, error, logs = run_config_handler(lambda l: my_handler(d, l))
#!/bin/bash
# FIXME: Currently missing dosbox variants: ece, svn, stock
# Unhandled:
#CTorOCh "./eXoDOS/CTorOCh/dosbox/dosbox.exe" -conf "eXoDOS/\!dos/CTorOCh/dosbox.conf" -noconsole -exit
#FatmanTh "./eXoDOS/FatmanTh/dosbox.exe" -conf "eXoDOS/\!dos/FatmanTh/dosbox.conf" -noconsole -exit
#ThemPark "./eXoDOS/ThemPark/ece/DOSBox.exe" -conf "eXoDOS/\!dos/ThemPark/dosbox.conf" -noconsole -exit -nomenu
#btroot "./eXoDOS/btroot/dosbox/dosbox.exe" -conf "eXoDOS/\!dos/btroot/dosbox.conf" -noconsole -exit
#MinosAdv "./eXoDOS/MinosAdv/DOSBox-0.73/dosbox.exe" -conf "eXoDOS/\!dos/MinosAdv/dosbox.conf" -noconsole -exit
set -euo pipefail
SUMMARY = "Meta package for building a minimal installable toolchain"
LICENSE = "MIT"
INHIBIT_DEFAULT_DEPS = "1"
inherit populate_sdk
TOOLCHAIN_HOST_TASK = "packagegroup-cross-canadian-${MACHINE}"
TOOLCHAIN_TARGET_TASK = "${@multilib_pkg_extend(d, 'packagegroup-core-standalone-sdk-target')} target-sdk-provides-dummy"
SDK_INCLUDE_TOOLCHAIN = ""
@kergoth
kergoth / MEL Flex 13 Thoughts.md
Last active February 17, 2022 18:44
MEL Flex 13 Thoughts

MEL Flex 13 Thoughts

Current Plans

  • Integrate vendor SDK in a way that allows for the use of vendor machines directly, not requiring the -mel suffix machines to be able to build. The intention here is a different level of support for those (if any) vs the well supported -mel machines. See also discussion in #flex-future on Slack. We should be able to semi-automate the setting of VENDOR, either through xlayers.conf based on the BSP installed, or based on specific logic around which layer provides the MACHINE config file ("if the machine was in meta-ti, set VENDOR=ti").

  • Usual process for a new major version of flex

    • File-by-file review of our layer content vs upstream
    • Line-by-line review of the mel distro
  • Upstream submissions wherever appropriate

@kergoth
kergoth / git-cached-clone
Created March 21, 2011 19:11
Clone a url, caching it, so all clones of a given url share the same core set of git objects
#!/bin/sh
#
# git-cached-clone
#
# Clone a url to a destination, as git clone does, but cache as well, such
# that all clones of a given url share the same core git objects, which saves
# disk space and reduces the load on the git server. This is transparent to
# the user of the cloned repository, as it still points at upstream, and
# future updates from that clone will use the original URL, not the cache.
#
@kergoth
kergoth / README.txt
Created November 24, 2009 21:39
"origin" scripts for tracking git cherry picks.
These scripts are intended to make it easier to keep track of cherry picks
between long lived branches/forks.
The available scripts:
git-origin - associates an origin for a commit.. where it was cherry picked from
git-origin-blacklist - blacklists a commit from the output of the tools,
useful for bits you know are local-only
git-origins-from-patchid - uses patchids (like git-cherry) to generate an
initial set of origin data
git-cherry-origins - command like git-cherry, but which obeys the stored
@kergoth
kergoth / README.rst
Created May 10, 2011 00:38
Experiments with splitting the lexer out of the parser for BitBake's file format

TODO

  • Verify that IndentTokenizer works with a non-LINE-based tokenizer specification, rather than the default
  • Resurrect the 'NEWLINE' token, as we need it to be as picky about the file format as the current parser is
  • Implement a parser which leverages this to properly change the lexer states for both ordinary functions and "def" syntax functions. Determine if this should be custom or PLY or codetalker or what, by first determining whether these libraries would support a lexer like ours
  • Do performance testing comparing the new parser against the old, and against the pyparsing implementation