[OpenWrt-Devel] tdestroy in musl works differently to glibc?
Luke McKee
hojuruku at gmail.com
Sun Jul 24 04:03:29 EDT 2016
Slowly getting the accel-pppd package done...
Lots of missing headers, as their usually are with musl vs glibc and a
problem relating to atomic memory ops are already fixed as openwrt
people bumped into the same issue with rtorrent.
https://github.com/rakshasa/rtorrent/issues/156
<hojuruku> error: '__free_fn_t' undeclared (first use in this function)
<hojuruku> that's used with tdestroy (search.h) with glibc, where's
the docs on tdestroy with musl?
Other's have run into this:
http://www.openwall.com/lists/musl/2014/09/09/5
http://fossies.org/dox/musl-1.1.15/tdestroy_8c.html
vs
http://www.delorie.com/gnu/docs/glibc/libc_146.html
Normally I'd spend some more time trying to patch alone. Already got 3
down and 67% of it building.
TARGET_CFLAGS+= -D_GNU_SOURCE and __free_fn_t still isn't declared.
Alsa-lib has it's own bundled include/search.h that includes the
necessary typedef __free_fn_t
#ifdef __USE_GNU
/* Callback type for function to free a tree node. If the keys are atomic
data this function should do nothing. */
typedef void (*__free_fn_t) __PMT ((void *__nodep));
/* Destroy the whole tree, call FREEFCT for each node or leaf. */
extern void tdestroy __PMT ((void *__root, __free_fn_t __freefct));
#endif
This is the code needing fixing:
static void l2tp_tunnel_free_sessions(struct l2tp_conn_t *conn)
{
void *sessions = conn->sessions;
conn->sessions = NULL;
tdestroy(sessions, (__free_fn_t)l2tp_session_free);
/* Let l2tp_session_free() handle the session counter and
* the reference held by the tunnel.
*/
}
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list