Skip to content

esp8266Ping can not be Linked. #5448

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

Closed
6 tasks done
marian-craciunescu opened this issue Dec 7, 2018 · 5 comments
Closed
6 tasks done

esp8266Ping can not be Linked. #5448

marian-craciunescu opened this issue Dec 7, 2018 · 5 comments

Comments

@marian-craciunescu
Copy link
Contributor

marian-craciunescu commented Dec 7, 2018

  • This issue complies with the issue POLICY doc.
  • I have read the documentation at readthedocs and the issue is not addressed there.
  • I have tested that the issue is present in current master branch (aka latest git).
  • I have searched the issue tracker for a similar issue.
  • If there is a stack dump, I have decoded it.
  • I have filled out all fields below.

Platform

  • Hardware: [ESP8266]
  • Core Version: [latest git hash or date]
  • Development Env: [Arduino IDE|Platformio|Make|other]
  • Operating System: [Windows|Ubuntu|MacOS]

Settings in IDE

  • Module: [NodemcuV2]
  • Flash Mode: [qio|dio|other]
  • Flash Size: [4MB/
  • lwip Variant: [v2]
  • Reset Method: [ck|nodemcu]
  • Flash Frequency: [40Mhz]
  • CPU Frequency: [80Mhz|160MHz]
  • Upload Using: [OTA|SERIAL]
  • Upload Speed: [115200|other] (serial upload only)

Problem Description

After the latest update in the LWIP I can not use anymore the ESP8266Ping library.

MCVE Sketch

Compiling .pioenvs/nodemcuv2/libd48/reef-commons/service/connectivity_service.cpp.o
Linking .pioenvs/nodemcuv2/firmware.elf
.pioenvs/nodemcuv2/libd48/libreef-commons.a(connectivity_service.cpp.o):(.text._ZN9PingClass4pingE9IPAddressh+0x4): undefined reference to ping_start' .pioenvs/nodemcuv2/libd48/libreef-commons.a(connectivity_service.cpp.o): In function PingClass::ping(IPAddress, unsigned char)':
connectivity_service.cpp:(.text._ZN9PingClass4pingE9IPAddressh+0x5e): undefined reference to `ping_start'
collect2: error: ld returned 1 exit status
*** [.pioenvs/nodemcuv2/firmware.elf] Error 1

 String url = "8.8.8.8";
 __online = Ping.ping(url.c_str(), 2);

Debug Messages

AFTER MORE DEBUGGING I see that the issue was introduced by @d-a-v
in commit
5c4db3a ("IPv6 on esp8266-nonos-sdk and arduino (#5136)", 2018-11-27)

5c4db3a

Any suggestion would be highly appreciated.

@earlephilhower
Copy link
Collaborator

Looks to be defined in liblwip_gcc.a

~/Arduino/hardware/esp8266com/esp8266/tools/sdk/lib$ nm liblwip_gcc.a  | grep ping_start
00000474 T ping_start

@d-a-v
Copy link
Collaborator

d-a-v commented Dec 7, 2018

espconn had been ported to lwip2, but it was untested (or at least I had no feedback about it and I did not test it myself) and I was thinking nobody was using it.
I indeed disabled it when I did the IPv6 work because it was in my way (untested, maybe unused, no feedback).
Edit: same with esp-ping
I'll try to reenable it before 2.5.0 happens.

If it's only about ping, you can try PingAlive. Feedback will be apreciated.

@marian-craciunescu
Copy link
Contributor Author

@d-a-v PingAlive is not what I want.

SHould I make a Pull Request on Builder submodules to re-enable it ?

@d-a-v
Copy link
Collaborator

d-a-v commented Dec 7, 2018

SHould I make a Pull Request on Builder submodules to re-enable it ?

I wish it had been that easy. Done in #5444

@d-a-v
Copy link
Collaborator

d-a-v commented Dec 8, 2018

closed by #5444

@d-a-v d-a-v closed this as completed Dec 8, 2018
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

No branches or pull requests

3 participants