#2296 closed (wontfix)

can't resolve symbol 'setjmp'

Reported by: checho Owned by:
Keywords: Cc:

Description (last modified by checho)

Any libpcap app such as ngrep or tcpdump does not work on tp-link devices running latest 17990.

# ngrep interface: eth0 (10.97.144.0/255.255.254.0) ngrep: can't resolve symbol 'setjmp'

# tcptraceroute www.google.com Warning: Could not determine appropriate device; resorting to pcap_lookupdev() Selected device eth0, address 10.97.144.25, port 49353 for outgoing packets tcptraceroute: can't resolve symbol 'setjmp'

# tcpdump -ni eth0 tcpdump: can't resolve symbol 'setjmp'

# ./tcpdump -ni tcpdump version 4.0.0 libpcap version 1.0.0

Problem with setjmp fixes if we take libc.so.0 from 15778 build which is 20k bigger but then every other thing cries about not resolving 'mallopt'.

Change History (9)

comment:1 Changed 18 months ago by checho

  • Description modified (diff)

comment:2 in reply to: ↑ description Changed 17 months ago by checho

Replying to checho:

Any libpcap app such as ngrep or tcpdump does not work on tp-link devices running latest 17990.

# ngrep interface: eth0 (10.97.144.0/255.255.254.0) ngrep: can't resolve symbol 'setjmp'

# tcptraceroute www.google.com Warning: Could not determine appropriate device; resorting to pcap_lookupdev() Selected device eth0, address 10.97.144.25, port 49353 for outgoing packets tcptraceroute: can't resolve symbol 'setjmp'

# tcpdump -ni eth0 tcpdump: can't resolve symbol 'setjmp'

# ./tcpdump -ni tcpdump version 4.0.0 libpcap version 1.0.0

Problem with setjmp fixes if we take libc.so.0 from 15778 build which is 20k bigger but then every other thing cries about not resolving 'mallopt'.

18007 has the same issue.

comment:3 Changed 17 months ago by Kong

  • Resolution set to invalid
  • Status changed from new to closed

In official builds symbols are stripped in case no "in firmware" included app uses them. If optware packages require certain symbols they need to preload them through the matching libs.

comment:4 Changed 17 months ago by checho

  • Resolution invalid deleted
  • Status changed from closed to reopened

Sorry I can't agree with you. The fact that something is not dd-wrt native should not mean it may never be supported. Moreover such apps are likely to be used widely but not only by me. What's the matter and so difficult about these symbols? Also preloading another version of libc makes the whole system crash.

comment:5 Changed 17 months ago by fractal

I was able to do a ldd trace on this here is what I came up with, looks like a lib problem that was introduced in busybox: Release notes quote" libbb: add mallopt tweaks for reduced memory consumption"

Program received signal SIGSEGV, Segmentation fault. 0x4053cebf in mallopt () from /lib/libc.so.6 (gdb) bt #0 0x4053cebf in mallopt () from /lib/libc.so.6 #1 0x4053c64e in mallopt () from /lib/libc.so.6 #2 0x4053b871 in malloc () from /lib/libc.so.6 #3 0x4053ba9b in realloc () from /lib/libc.so.6

Last edited 17 months ago by fractal (previous) (diff)

comment:6 Changed 17 months ago by BrainSlayer

on some devices a unstripped libc version is included. but this depends very on the available filesystem space. so if everything which is possible should be supported, you need a device with the required available space, otherwise it wouldnt fit

comment:7 Changed 17 months ago by BrainSlayer

by the way, you can still link tcpdump as static application and it will work

comment:8 Changed 17 months ago by checho

The maximum-sized libc is on the TL-WR1043ND package and it still does not work.

comment:9 Changed 14 months ago by LOM

  • Resolution set to wontfix
  • Status changed from reopened to closed
Note: See TracTickets for help on using tickets.