Skip to content

travis: Actually build for arm#3467

Merged
cdecker merged 1 commit into
ElementsProject:masterfrom
NickeZ:travis-arm
Jun 24, 2020
Merged

travis: Actually build for arm#3467
cdecker merged 1 commit into
ElementsProject:masterfrom
NickeZ:travis-arm

Conversation

@NickeZ
Copy link
Copy Markdown
Contributor

@NickeZ NickeZ commented Jan 29, 2020

Fixes #3466

Changelog-None

@cdecker
Copy link
Copy Markdown
Member

cdecker commented Jan 29, 2020

Wow, that's what I call a fast turnaround from reporting to fixing this, great work @NickeZ 👍

ACK df76dde

@NickeZ
Copy link
Copy Markdown
Contributor Author

NickeZ commented Jan 29, 2020

@cdecker do you prefer that I force push or create --fixups?

@cdecker
Copy link
Copy Markdown
Member

cdecker commented Jan 29, 2020

@cdecker do you prefer that I force push or create --fixups?

Both work fine, we track changes to PRs here when force pushing. I personally use fixups on larger PRs to make it easier on reviewers :-)

@rustyrussell
Copy link
Copy Markdown
Contributor

rustyrussell commented Jan 30, 2020

Seems like there's more work to do on building the libraries?
Nevermind, I just saw #3469

/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible external/libwallycore.a when searching for -lwallycore

/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lwallycore

/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible external/libsecp256k1.a when searching for -lsecp256k1

/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lsecp256k1

/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible external/libbacktrace.a when searching for -lbacktrace

/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible external/libsodium.a when searching for -lsodium

/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lsodium

@NickeZ NickeZ force-pushed the travis-arm branch 2 times, most recently from f5355ee to 319b5b1 Compare February 5, 2020 21:16
@NickeZ
Copy link
Copy Markdown
Contributor Author

NickeZ commented Feb 5, 2020

This will have to be rebased again when #3464 is merged.

@rustyrussell
Copy link
Copy Markdown
Contributor

Rebased on master...

@rustyrussell
Copy link
Copy Markdown
Contributor

Sigh. Still doesn't build :(

@NickeZ
Copy link
Copy Markdown
Contributor Author

NickeZ commented Feb 10, 2020

I'll take a look at it. I'm a bit surprised though since it built locally for me.

@NickeZ NickeZ force-pushed the travis-arm branch 2 times, most recently from c763239 to e88b2e2 Compare February 11, 2020 23:16
@NickeZ
Copy link
Copy Markdown
Contributor Author

NickeZ commented Feb 11, 2020

It seems like we were over-caching a bit when the whole directory external was cached. That directory actually contains source code as well which definitely shouldn't be cached.

I had to start building x86_64 things in its own directory so that I could cache those files.

Now it seems like I dug up a bunch of issues since CI probably has used old versions of external dependencies for a while.

@NickeZ
Copy link
Copy Markdown
Contributor Author

NickeZ commented Feb 12, 2020

At least armhf and aarch64 builds now 🎉. However there are some failures which I don't know how to deal with:

Could this be that libwally doesn't support gcc-4.8 or have we introduced this breaking change some other time? Pretty sure this PR doesn't introduce this regression.

../../../libwally-core/src/elements.c: In function ‘wally_asset_pak_whitelistproof’:
../../../libwally-core/src/elements.c:629:5: error: ‘for’ loop initial declarations are only allowed in C99 mode
     for (size_t i = 0; i < num_keys; ++i) {
     ^
../../../libwally-core/src/elements.c:629:5: note: use option -std=c99 or -std=gnu99 to compile your code

I have no idea:

==================================== ERRORS ====================================
_________________ ERROR at teardown of test_onchain_middleman __________________
[gw0] linux -- Python 3.7.5 /opt/python/3.7.5/bin/python3.7
request = <SubRequest 'teardown_checks' for <Function test_onchain_middleman>>
    @pytest.fixture
    def teardown_checks(request):
        """A simple fixture to collect errors during teardown.
    
        We need to collect the errors and raise them as the very last step in the
        fixture tree, otherwise some fixtures may not be cleaned up
        correctly. Require this fixture in all other fixtures that need to either
        cleanup before reporting an error or want to add an error that is to be
        reported.
    
        """
        errors = TeardownErrors()
        yield errors
    
        if errors.has_errors():
            # Format a nice list of everything that went wrong and raise an exception
            request.node.has_errors = True
>           raise ValueError(str(errors))
E           ValueError: 
E           Node errors:
E            - lightningd-3: Node exited with return code 1
E           Global errors:

@rustyrussell
Copy link
Copy Markdown
Contributor

gcc 4.8 is ancient. Still, let me see if we can wrangle it using more configure hacks...

Ah, libwally. I've filed a bug ElementsProject/libwally-core#176

@NickeZ
Copy link
Copy Markdown
Contributor Author

NickeZ commented Feb 21, 2020

It seems a fix has been merged in in libwally upstream. Will wait until new release is out and then bump the dependency.

@rustyrussell rustyrussell added this to the 0.8.2 milestone Feb 27, 2020
@cdecker
Copy link
Copy Markdown
Member

cdecker commented Mar 4, 2020

Since we updated libwally (#3559) I rebased this on top of master, let's see if it build.

@NickeZ
Copy link
Copy Markdown
Contributor Author

NickeZ commented Mar 4, 2020

Looks better, but still some test that fails...

@rustyrussell
Copy link
Copy Markdown
Contributor

I hacked it to not assume gcc, too. Let's see how this goes...

@NickeZ
Copy link
Copy Markdown
Contributor Author

NickeZ commented Mar 10, 2020

I think it should be possible to reproduce the CI failure locally since now it's part of the tests that fail and not just compilation problems. I don't have much knowledge about lightning-c so it would take too much time for me to dig into it.

@rustyrussell
Copy link
Copy Markdown
Contributor

Trivial rebase

@rustyrussell
Copy link
Copy Markdown
Contributor

This is a complete mess, I'm assigning to @cdecker. Perhaps it's something to do with caching, since there are complaints that "lightningd/lightningd" DNE.

Before this we cached the whole `external` directory, but that lead to
stale files since the cache is checked out after the repository is
cloned.
@cdecker
Copy link
Copy Markdown
Member

cdecker commented Jun 24, 2020

After rebasing it appears that the build passes correctly. @NickeZ can you confirm that this is what you'd expect? If it is working I'm happy to merge it asap :-)

@NickeZ
Copy link
Copy Markdown
Contributor Author

NickeZ commented Jun 24, 2020

Yeah sure, I think this PR still is valid.

@cdecker
Copy link
Copy Markdown
Member

cdecker commented Jun 24, 2020

ACK 2a83825

@cdecker cdecker merged commit 6014644 into ElementsProject:master Jun 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

potential typo in CI script

4 participants