openbmc / u-boot

OpenBMC "Das U-Boot" Source Tree
13 stars 51 forks source link

dunfell: u-boot compile failure - git is not clean #24

Closed geissonator closed 4 years ago

geissonator commented 4 years ago

We've been working on moving up to yocto master recently. The python3 migration has really set us back quite a bit. I've got a set of patches that are not merged upstream yet (https://gerrit.openbmc-project.xyz/c/openbmc/meta-phosphor/+/31338/). With these (and a few other workarounds for croserver and boost) on top of https://gerrit.openbmc-project.xyz/c/openbmc/openbmc/+/31297/, I'm seeing u-boot fail to compile. I ensured I had a fresh build directory and cleared out my caches but this error seems consistent. Not sure what's going on here.

|   /home/andrewg/Code/openbmc/build/tmp/work/witherspoon-openbmc-linux-gnueabi/u-boot-aspeed/1_v2016.07+gitAUTOINC+59428fe010-r0/git is not clean, please run 'make mrproper'
|   in the '/home/andrewg/Code/openbmc/build/tmp/work/witherspoon-openbmc-linux-gnueabi/u-boot-aspeed/1_v2016.07+gitAUTOINC+59428fe010-r0/git' directory.
| /home/andrewg/Code/openbmc/build/tmp/work/witherspoon-openbmc-linux-gnueabi/u-boot-aspeed/1_v2016.07+gitAUTOINC+59428fe010-r0/git/Makefile:1246: recipe for target 'prepare3' failed
| make[1]: *** [prepare3] Error 1
| make[1]: Leaving directory '/home/andrewg/Code/openbmc/build/tmp/work/witherspoon-openbmc-linux-gnueabi/u-boot-aspeed/1_v2016.07+gitAUTOINC+59428fe010-r0/git'
| Makefile:150: recipe for target 'sub-make' failed
| make: *** [sub-make] Error 2
| make: Leaving directory '/home/andrewg/Code/openbmc/build/tmp/work/witherspoon-openbmc-linux-gnueabi/u-boot-aspeed/1_v2016.07+gitAUTOINC+59428fe010-r0/git'
| WARNING: exit code 1 from a shell command.
mdmillerii commented 4 years ago

It looks like the makefile that is failling is bitbake not u-boot, and its complaining that git is not clean, probably related to an earlier failure. That's my guess without creating a build anyways.

geissonator commented 4 years ago

Brad and I spent some time digging into this. Our meta-aspeed uses it's own, older u-boot recipe and repo but we use a few common files from upstream. Notably u-boot-common.inc and u-boot.inc from the meta/recipes-bsp/u-boot/ directory.

There have been some significant changes to these files that are no longer compatible with our older code. Notably a new u-boot-initial-env file was introduced which is referenced throughout the upstream .inc files.

It seems like our best path forward at this time is to just bring the working version of these files into our meta-aspeed layer and stop with the hybrid version where we have some downstream specific stuff in meta-aspeed but try to use the upstream .inc files.

Of course the best option overall is to upstream the support we need so we stop having any u-boot code in meta-aspeed.

The specific issue I hit initially was because the Build dir define was moved from u-boot.inc to u-boot-common.inc (+B = "${WORKDIR}/build"). I was able to work around that but then hit the other u-boot-initial-env issue noted above.