Skip to content
This repository has been archived by the owner on Apr 13, 2019. It is now read-only.

RISC-V: Fix CONFIG_USER_ONLY build. #104

Merged
merged 1 commit into from
Feb 18, 2018

Conversation

sorear
Copy link
Contributor

@sorear sorear commented Feb 18, 2018

Thanks @andreas-schwab for noticing. I've only tested it on a Hello World program, travis may have other ideas.

@michaeljclark
Copy link
Collaborator

Yes. Travis broke with some upstream changes. I merged a patch to fix Travis but builds are taking 50 mins. We need to have our own .travis.yml eventually when we automate some of the RISC-V specific tests.

@michaeljclark michaeljclark merged commit c163d00 into riscvarchive:qemu-upstream-v5 Feb 18, 2018
@michaeljclark
Copy link
Collaborator

@sorear Oh. Reading the earlier messages in the libatomic_ops thread. That was the compile error I had that I mentioned on IRC, which went away for some reason (I didn't realize why at the time). I had reconfigured without linux-user as my primary development is on a mac. I didn't realize which I first did a test merge that I was shelled into a linux host, which was when I got the compile error.

I usually run linux-user tests on a remote Linux machine. We really need to add RISC-V smoke tests to the CI, including linux-user and the RISC-V specific machines in qemu-system-riscv. The upstream .travis.yml compiles all architectures, which causes travis timeouts, and it only does a make check. i.e. it doesn't boot Linux or run riscv-tests against qemu, so is not super useful other than, does it compile and pass make check.

I'm working on some CI dependencies presently, so we can eventually spin linux/bbl images using GitHub tag hooks and the GitHub deployment API...

These verilator images use Travis/Docker/GitHub deployment integration that build Ubuntu .deb and Centos .rpm packages in Docker and then uploads them automatically to a GitHub release:

https://github.com/sifive/verilator/releases

The plan is to do the same sort of thing for riscv-gnu-toolchain, so that repos like riscv-linux (or some other meta repos) could potentially spin kernel and root images when tagged. Of course to do this, we can't use the current model of building git submodules for things like the toolchain as it will take way too long do to that. We need to get each repo to build and upload packages, that can be used as dependencies in the test scripts for each component. So we'll eventually be able to get Travis to install pre-built toolchain packages to compile and package kernels, initramfs and buildroot images. riscv-qemu Travis will then be able to pull in binary images and run them.

This is work in progress for toolchain packages (the biggest dependency):

https://github.com/michaeljclark/riscv-gnu-toolchain/tree/master/docker-build

Compiling things like busybox can be done pretty quickly (much quicker than a kernel build).

@michaeljclark
Copy link
Collaborator

We'll have to cherry-pick a custom .travis.yml whenever we merge with upstream. v5 Travis got broken by the merge with upstream.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants