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

Support Tizen #20

Open
anthony-cros opened this issue Nov 18, 2015 · 23 comments
Open

Support Tizen #20

anthony-cros opened this issue Nov 18, 2015 · 23 comments
Assignees
Labels

Comments

@anthony-cros
Copy link
Member

sh-4.1$ ./eth
(++)Ethereum
Beware. You're entering the Frontier!
⧎ ℹ  20:38:17|eth  Id: ##15e4a208…
*** Error in `./eth': malloc(): smallbin double linked list corrupted: 0x01131b40 ***
pure virtual method called
terminate called without an active exception
crashed [1447427297] processname=eth, pid=15328, tid=15332, signal=11crashed [1447427297] processname=eth, pid=15328, tid=15333, signal=6
@bobsummerwill
Copy link
Member

Just leave this with me for now. I want to get my GDB going :-)

@bobsummerwill bobsummerwill changed the title run time error eth run time error on Tizen Nov 19, 2015
@bobsummerwill
Copy link
Member

See https://github.com/doublethinkco/webthree-umbrella-cross/releases/tag/untagged-47082f0f12989d1eedc2

That is a cross-build WITHOUT our edits to libweb3core. It just has Gav's attempted fixes for the same.

I am just curious to see if that fails at boot with the static constructor issue, or whether JUST his changes have fixed that. If he doesn't have enough fixes then I will refresh our libweb3core fork, and re-apply my other fixes in addition to his.

@bobsummerwill bobsummerwill changed the title eth run time error on Tizen Get to a working eth binary for Tizen Nov 25, 2015
@bobsummerwill
Copy link
Member

Please can you try this @anthony-cros, and we'll see where we are:

https://github.com/doublethinkco/webthree-umbrella-cross/releases/tag/eth.151125175856.tgz

This is a vanilla eth, with Gav's fixes rather than mine.

I want to see if his fixes are sufficient, or whether we need to fork again and start fixing the C++.

@anthony-cros
Copy link
Member Author

for good measure, I'm linking to the error I get on this ticket as well (https://gist.github.com/anthony-cros/530a1807d9778a8295cf)

@bobsummerwill bobsummerwill removed the eth label Nov 28, 2015
@bobsummerwill bobsummerwill changed the title Get to a working eth binary for Tizen Support Tizen Nov 29, 2015
@bobsummerwill
Copy link
Member

Carsten Munk told me today that Tizen is armel, so maybe we've up the wrong path with armhf (hence your no-info failure), and we need to flip back to armel for Tizen, but with "good" names etc, rather than those default ones, which it seems to be choking on.

@anthony-cros
Copy link
Member Author

see messages at doublethinkco/go-ethereum-cross#1 (comment)

@bobsummerwill
Copy link
Member

So yeah, the 'Tizen is armel' was incorrect.

We just need to get the armhf to be 'correct' by tweaking the crosstool-NG close enough to the ELF header info you got from the ls on your TM1

@anthony-cros
Copy link
Member Author

yes, Tag_FP_arch: VFPv3 is the telltale sign of armhf, right (that was from /bin/ls on the tizen phone)?

@bobsummerwill
Copy link
Member

Correct, @anthony-cros!

@bobsummerwill bobsummerwill added this to the Milestone 1 milestone Dec 24, 2015
@bobsummerwill
Copy link
Member

NOTE - Tizen ships with an even older version of GCC again :-)
The Gear S2 smartwatch comes with libstdc++.so.6.0.16, which is the
version which shipped with GCC 4.6.1, released in April 2010. Running
the armel binaries generated with the GCC 5.2.1 cross-compiler which
we are now using here results in binaries which we cannot run on the
Gear S2. That results in the following runtime errors:

 ./eth: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./eth)
 ./eth: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by ./eth)
 ./eth: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.17' not found (required by ./eth)
 ./eth: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by

So it looks like I am going to have to specifically use an older
sysroot to get something which can work on the Gear S2. I am unable
SDB connect to any of my other Tizen devices right now, so cannot verify
if they have slightly newer runtime libraries. The SDK does also have a
GCC-4.9 toolchain, which perhaps was included in the Tizen 2.4 runtime?
Using a different sysroot will involve getting GCC 4.6 headers and libraries
onto the build machine, and then getting -sysroot into the CC and CXX
command-lines, probably by creating a shell script which wraps the
actual GCC binaries, as per the example below.

See http://stackoverflow.com/questions/2977182/alternatives-to-the-sysroot-switch-of-gcc

@rzr
Copy link

rzr commented Dec 19, 2017

An other option would be to try Tizen:Yocto profile, it's not updated since age but you could try armhf architecture.

@bobsummerwill
Copy link
Member

bobsummerwill commented Nov 6, 2019

Hey @rzr!
How are you doing, my friend? I hope to make it to FOSDEM 2020. Will you be there?

I still want to get this stuff working, 4 years later. I recently bought a Galaxy Watch Active and would be delighted if I could finally get Ethereum working on it - just for my own "itch scratching".

Do you know that version of Tizen is on that device? Or what the GLIBCXX version would be?

I suspect that much of this stuff which was so painful back in 2015 will "just work" now, because it will be on newer GCC and GLIBC versions.

@bobsummerwill
Copy link
Member

@rzr
Copy link

rzr commented Nov 6, 2019

Hi @bobsummerwill , yes I might attend fosdem again

have you considered to check new dot net tizen api from tizen 5 and tv platform ?

@anthony-cros
Copy link
Member Author

wow, this brings back memories :)

@phonikg
Copy link
Contributor

phonikg commented Nov 6, 2019 via email

@anthony-cros
Copy link
Member Author

We were so young and so naive...

@bobsummerwill
Copy link
Member

bobsummerwill commented Nov 6, 2019

Well, I don't know that I agree with that, @anthony-cros!

It was early days, that is for sure, and it has been a long journey which is still ongoing, but we have moved forward a huge amount in the last 4 years.

Do you know that I am the Executive Director of the https://etccooperative.org now? On the "dark side".

Here is what we are up to ... https://slideslive.com/38920077/what-is-happening-with-ethereum-classic

Paging @martinbrook! Are you going to FOSDEM? I hope so, and to see you there.

@phonikg
Copy link
Contributor

phonikg commented Nov 6, 2019 via email

@bobsummerwill
Copy link
Member

bobsummerwill commented Nov 6, 2019

@rzr "have you considered to check new dot net tizen api from tizen 5 and tv platform ?"

Yes, though I want to run it on my smartwatch (as I did four years ago), so am only really interested in the Tizen versions which are shipped in real world devices.

Geth worked on the Gear S2 in November 2015 (thanks to Peter's work on xgo), but we never go the end of the line on eth because of the ancient GLIBC runtime:

https://doublethink.co/2015/11/13/porting-ethereum-geth-running-on-samsung-gear-s2-smartwatch-eth-coming-soon/

So I think a sensible new set of platforms, if I pick up this work again would be to replace this set of targets with:

https://github.com/doublethinkco/cpp-ethereum-cross/blob/master/README.md

  • Drop Tizen smartphones, which are discontinued, and I don't really care about Tizen TV.
  • Is the TM1 still the only official Tizen reference device, @rzr?
  • Add newer Galaxy Watch devices, with my target now being my Galaxy Watch Active (though Gear S2 as well would be good if possible)
  • Drop Ubuntu Touch targets, which are discontinued.
  • Update SailfishOS targets to be only Sailfish C, Aqua Fish and Sailfish X for Sony Xperia X (I think I bought a Sailfish C, but I don't have the other devices and probably would not buy them myself, but maybe @martinbrook or other porters could do the testing?) . I assume there are still closed source parts to the UI, so maybe I don't even care about that either? Is Nemo Mobile still alive?
  • Android and iOS still make sense, of course - both mobile and smartwatch variants
  • Maemo (N900) and MeeGo (N9) would still be deeply satisfying and whimsical ports to do, but, like Tizen might just not be practical given the ancient runtimes.
  • On the SBCs, it isn't worth bothering with the armv6 Raspberry Pi family anymore
  • Looks like Intel Edison was discontinued, and I don't think I care about the NUC either, or indeed about any Intel chips. They lost the battle entirely, on all fronts - mobile, wearable, SBC, IoT.
  • I need to add Pine64 stuff, which has emerged since 2015 - ROCK64, ROCKPro64, PinePhone. You must have one, eh, @martinbrook?
  • And I suppose that I should add the Purism5 too, though it is obviously a dead-end. Also, no way I am paying $699 for the pleasure of getting that working. But if somebody else has one and we can verify that then fair enough.

@bobsummerwill
Copy link
Member

@phonikg Pretty much!

Afri launched the Mordor testnet at ETC Summit. I really want to get a MolochDAO instance for ETC infrastructure funding. And we could have a test-instance "Moloch-on-Mordor".

@bobsummerwill
Copy link
Member

ETC obviously a better home for https://spankchain.com/ too!

@martinbrook
Copy link

martinbrook commented Nov 28, 2019 via email

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

No branches or pull requests

5 participants