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

Update azure and avoid stdc++ linking hacks on gonk #5796

Closed
wants to merge 2 commits into from

Conversation

@michaelwu
Copy link
Contributor

michaelwu commented Apr 22, 2015

This fix seems to work here. Hopefully it also works with the automation.

Review on Reviewable

@jdm
Copy link
Member

jdm commented Apr 22, 2015

@bors-servo
Copy link
Contributor

bors-servo commented Apr 22, 2015

📌 Commit 1adea25 has been approved by jdm

@bors-servo
Copy link
Contributor

bors-servo commented Apr 22, 2015

Testing commit 1adea25 with merge ea61edf...

bors-servo pushed a commit that referenced this pull request Apr 22, 2015
This fix seems to work here. Hopefully it also works with the automation.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/5796)
<!-- Reviewable:end -->
@bors-servo
Copy link
Contributor

bors-servo commented Apr 22, 2015

💔 Test failed - gonk

@jdm
Copy link
Member

jdm commented Apr 22, 2015

note: /home/servo/buildbot/slave/gonk/build/ports/gonk/target/arm-linux-androideabi/debug/deps/libazure-cc187b961189251d.rlib(r-azure-DrawEventRecorder.o):DrawEventRecorder.cpp:function std::ostream::write(char const*, int): error: undefined reference to 'std::uncaught_exception()'
/home/servo/buildbot/slave/gonk/build/ports/gonk/target/arm-linux-androideabi/debug/deps/libazure-cc187b961189251d.rlib(r-azure-RecordedEvent.o):RecordedEvent.cpp:function mozilla::gfx::RecordedPathCreation::RecordToStream(std::ostream&) const: error: undefined reference to 'std::uncaught_exception()'
/home/servo/buildbot/slave/gonk/build/ports/gonk/target/arm-linux-androideabi/debug/deps/libazure-cc187b961189251d.rlib(r-azure-RecordedEvent.o):RecordedEvent.cpp:function mozilla::gfx::RecordedPathCreation::RecordToStream(std::ostream&) const: error: undefined reference to 'std::uncaught_exception()'
/home/servo/buildbot/slave/gonk/build/ports/gonk/target/arm-linux-androideabi/debug/deps/libazure-cc187b961189251d.rlib(r-azure-RecordedEvent.o):RecordedEvent.cpp:function mozilla::gfx::RecordedPathCreation::RecordToStream(std::ostream&) const: error: undefined reference to 'std::uncaught_exception()'
collect2: error: ld returned 1 exit status
@michaelwu
Copy link
Contributor Author

michaelwu commented Apr 22, 2015

Added a new commit to fix our stlport includes.

@michaelwu
Copy link
Contributor Author

michaelwu commented Apr 22, 2015

This requires $GONKDIR/abi to be available on the build machine. I have no idea how the builds are setup.

@larsbergstrom
Copy link
Contributor

larsbergstrom commented Apr 22, 2015

@bors-servo
Copy link
Contributor

bors-servo commented Apr 22, 2015

📌 Commit 3fd6cf5 has been approved by larsbergstrom

@bors-servo
Copy link
Contributor

bors-servo commented Apr 22, 2015

Testing commit 3fd6cf5 with merge 673272e...

bors-servo pushed a commit that referenced this pull request Apr 22, 2015
This fix seems to work here. Hopefully it also works with the automation.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/5796)
<!-- Reviewable:end -->
@bors-servo
Copy link
Contributor

bors-servo commented Apr 22, 2015

💔 Test failed - gonk

@jdm
Copy link
Member

jdm commented Apr 22, 2015

note: /home/servo/buildbot/slave/gonk/build/ports/gonk/target/arm-linux-androideabi/debug/deps/libazure-cc187b961189251d.rlib(r-azure-DrawEventRecorder.o):DrawEventRecorder.cpp:function std::ostream::write(char const*, int): error: undefined reference to 'std::uncaught_exception()'
/home/servo/buildbot/slave/gonk/build/ports/gonk/target/arm-linux-androideabi/debug/deps/libazure-cc187b961189251d.rlib(r-azure-RecordedEvent.o):RecordedEvent.cpp:function mozilla::gfx::RecordedPathCreation::RecordToStream(std::ostream&) const: error: undefined reference to 'std::uncaught_exception()'
/home/servo/buildbot/slave/gonk/build/ports/gonk/target/arm-linux-androideabi/debug/deps/libazure-cc187b961189251d.rlib(r-azure-RecordedEvent.o):RecordedEvent.cpp:function mozilla::gfx::RecordedPathCreation::RecordToStream(std::ostream&) const: error: undefined reference to 'std::uncaught_exception()'
/home/servo/buildbot/slave/gonk/build/ports/gonk/target/arm-linux-androideabi/debug/deps/libazure-cc187b961189251d.rlib(r-azure-RecordedEvent.o):RecordedEvent.cpp:function mozilla::gfx::RecordedPathCreation::RecordToStream(std::ostream&) const: error: undefined reference to 'std::uncaught_exception()'
collect2: error: ld returned 1 exit status
@jdm
Copy link
Member

jdm commented Apr 22, 2015

This also breaks the android builder:

note: /home/servo/ndk-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lstlport
@larsbergstrom
Copy link
Contributor

larsbergstrom commented Apr 23, 2015

Did a completely clean gonk build (blew away my cargo repo) locally to test this, and the stdc++ link lines still present were:

larsberg@ubuntu:~/servo$ find . -name '*.rs' | xargs grep -e "\"stdc++\"" | grep link                                                                     
./.cargo/git/checkouts/rust-azure-03a3575c638f374d/master/src/linkhack.rs:#[link(name = "stdc++")]
./.cargo/git/checkouts/rust-azure-03a3575c638f374d/master/src/linkhack.rs:#[link(name = "stdc++")]
./.cargo/git/checkouts/rust-mozjs-ab9bfe6e592bc16c/master/src/linkhack.rs:#[link(name = "stdc++")]
./.cargo/git/checkouts/rust-mozjs-ab9bfe6e592bc16c/master/src/linkhack.rs:#[link(name = "stdc++")]
./.cargo/git/checkouts/rust-mozjs-ab9bfe6e592bc16c/master/src/glue.rs:#[link(name = "stdc++")]
./.cargo/git/checkouts/rust-harfbuzz-7808d225c82545c4/master/src/linkhack.rs:#[link(name = "stdc++")]
./.cargo/git/checkouts/rust-harfbuzz-7808d225c82545c4/master/src/linkhack.rs:#[link(name = "stdc++")]

The two rust-azure ones are in the linux and OSX (not android) blocks, so should be OK.
The rust-harfbuzz second one definitely is getting hit on Android (it applies to both Android and OSX).
And in rust-mozjs, the second and third instances (linkhack and glue.rs) both apply to Android. You know, so you can doubly link to the wrong thing! :-)

@larsbergstrom
Copy link
Contributor

larsbergstrom commented Apr 23, 2015

We will probably want to wait for the in-progress rust upgrade to land, as rust-mozjs and rust-harfbuzz have already been updated to 1.0.

@bors-servo
Copy link
Contributor

bors-servo commented May 5, 2015

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

@larsbergstrom
Copy link
Contributor

larsbergstrom commented May 7, 2015

The rust upgrade has landed, so work on this can be rebased and begun again, also pushing the stdc++ ->stlport changes into rust-harfbuzz and rust-mozjs.

@larsbergstrom larsbergstrom self-assigned this May 8, 2015
@michaelwu
Copy link
Contributor Author

michaelwu commented Jun 22, 2015

I landed a working version of this fix as part of #6150

@michaelwu michaelwu closed this Jun 22, 2015
@michaelwu michaelwu deleted the michaelwu:remove-link-hacks branch Jul 2, 2015
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

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