Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move arm64 build to taskcluster. #23414

Closed
wants to merge 1 commit into from
Closed

Move arm64 build to taskcluster. #23414

wants to merge 1 commit into from

Conversation

@jdm
Copy link
Member

jdm commented May 16, 2019

This change is Reviewable

@jdm
Copy link
Member Author

jdm commented May 16, 2019

@bors-servo try=arm

bors-servo added a commit that referenced this pull request May 16, 2019
Move arm64 build to taskcluster.
@bors-servo
Copy link
Contributor

bors-servo commented May 16, 2019

Trying commit c245ca5 with merge 638c170...

@bors-servo
Copy link
Contributor

bors-servo commented May 16, 2019

💔 Test failed - status-taskcluster

@bors-servo
Copy link
Contributor

bors-servo commented May 17, 2019

The latest upstream changes (presumably #23362) made this pull request unmergeable. Please resolve the merge conflicts.

@SimonSapin
Copy link
Member

SimonSapin commented May 17, 2019

I attempted several times to reproduce this build in any environment other than buildbot workers, and gave up every time. Cross-compiling C or C++ code (SpiderMonkey in particular) with our build system is very brittle.

For quicker edit-run-error cycles, I suggest experimenting with a local Docker container. Repeatedly run docker build -t servo-tmp . in a directory with a Dockerfile, and keep successful intermediate commands in separate RUN instructions so that Docker caches their result as container layers.

(This can use up disk space quickly, so consider docker container prune and docker image prune after you’re done.)

@SimonSapin
Copy link
Member

SimonSapin commented May 17, 2019

The unedited Dockerfile below is where I left off last time.

Other resources that might be helpful include:

Good luck!

FROM ubuntu:trusty-20181217

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -q && apt-get install -qy --no-install-recommends \
    git \
    ca-certificates \
    python-virtualenv \
    curl
RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain none -y
RUN git clone --depth 1 https://github.com/servo/servo /repo
WORKDIR /repo
ENV PATH="/root/.cargo/bin:$PATH"
RUN ./mach cargo fetch
ARG MACH_TARGET=aarch64-unknown-linux-gnu
RUN ./mach build --dev --target=$MACH_TARGET -p matches
ARG TARGET_NAME=aarch64-linux-gnu
ARG TARGET_DOWNLOAD_NAME=arm64-trusty-libs
ARG TARGET_SYMLINK_NAME=aarch64-unknown-linux-gnu
ARG TARGET_VERSION=v2
RUN apt-get install -y --no-install-recommends \
    make \
    g++ \
    g++-$TARGET_NAME
RUN mkdir $HOME/bin && \
    for bin in \
        elfedit gcov nm addr2line g++ objcopy ar objdump as gcc ranlib c++filt \
        gprof readelf cpp ld size ld.bfd strings strip \
    ; do \
        ln -s /usr/bin/$TARGET_NAME-$bin $HOME/bin/$TARGET_SYMLINK_NAME-$bin \
    ; done
#RUN mkdir /rootfs-$TARGET_DOWNLOAD_NAME-$TARGET_VERSION && ( \
#        export dir=$TARGET_DOWNLOAD_NAME/$TARGET_VERSION; \
#        export file=$TARGET_DOWNLOAD_NAME-$TARGET_VERSION.tgz; \
#        curl https://servo-rust.s3.amazonaws.com/ARM/$dir/$file \
#    ) \
#    | tar xz -C /rootfs-$TARGET_DOWNLOAD_NAME-$TARGET_VERSION
RUN ./mach build --dev --target=$MACH_TARGET -p libz-sys
RUN apt-get install -y --no-install-recommends \
        software-properties-common \
    && add-apt-repository ppa:ubuntu-toolchain-r/test && \
    apt-get update -q && \
    apt-get upgrade -y
RUN apt-get install -y --no-install-recommends \
    g++-5
RUN apt-get install -y --no-install-recommends \
    clang-4.0
RUN which gcc-5
#ENV CC_aarch64-unknown-linux-gnu=aarch64-linux-gnu-gcc
#RUN ./mach build --dev --target=$MACH_TARGET -p mozjs_sys
@SimonSapin
Copy link
Member

SimonSapin commented May 17, 2019

The “rootfs” tarballs under https://servo-rust.s3.amazonaws.com/ARM/. I don’t know how they are created.

Last updated in servo/saltfs#268

@jdm
Copy link
Member Author

jdm commented May 17, 2019

I documented how to generate them in https://github.com/servo/servo/wiki/Preparing-ARM-libraries-for-CI

@jdm
Copy link
Member Author

jdm commented Jun 24, 2019

We've already got windows & magicleap arm64 builds on CI. I don't see a good reason to continue to maintain this build due to its complicated setup.

@jdm jdm closed this Jun 24, 2019
@SimonSapin
Copy link
Member

SimonSapin commented Jun 24, 2019

Should we remove it from buildbot_steps.yml?

@jdm
Copy link
Member Author

jdm commented Jun 24, 2019

Yes.

SimonSapin added a commit that referenced this pull request Jun 25, 2019
* `arm64`: [“no good reason to continue to maintain”](#23414 (comment))
* `mac-rel-intermittent`: disabled since servo/saltfs#965
* `linux-nigthly`: only perf data collection and upload now, has been broken for 8 weeks (#23302) and nobody cared enough to fix it
SimonSapin added a commit that referenced this pull request Jun 25, 2019
* `arm64`: “no good reason to continue to maintain”: #23414 (comment)
* `mac-rel-intermittent`: disabled since servo/saltfs#965
* `linux-nigthly`: only perf data collection and upload now. Closes #23302, where this jobs has been know to be broken for 8 weeks but nobody cared enough to fix it
bors-servo added a commit that referenced this pull request Jun 25, 2019
Remove some jobs from Buildbot

* `arm64`: “no good reason to continue to maintain”: #23414 (comment)
* `mac-rel-intermittent`: disabled since servo/saltfs#965
* `linux-rel-intermittent`: judged unnecessary #23633 (comment)
* `linux-nigthly`: only perf data collection and upload now. Closes #23302, where this jobs has been know to be broken for 8 weeks but nobody cared enough to fix it

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23633)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this pull request Jun 25, 2019
Remove some jobs from Buildbot

* `arm64`: “no good reason to continue to maintain”: #23414 (comment)
* `mac-rel-intermittent`: disabled since servo/saltfs#965
* `linux-rel-intermittent`: judged unnecessary #23633 (comment)
* `linux-nigthly`: only perf data collection and upload now. Closes #23302, where this jobs has been know to be broken for 8 weeks but nobody cared enough to fix it

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23633)
<!-- Reviewable:end -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

4 participants
You can’t perform that action at this time.