xebd / accel-ppp

High performance PPTP/L2TP/PPPoE/IPoE server for Linux
GNU General Public License v2.0
299 stars 107 forks source link

Build error on Alpine Linux #66

Closed SimpleWebTest closed 5 years ago

SimpleWebTest commented 5 years ago

Hello. I have problem with build app on Alpine Linux 3.8 (virt on XEN vm). If cmake runed without options result is same. Env: g++-6.4.0, gcc-6.4.0, lua5.1-dev, linux-headers-4.14.89, openssl-dev-1.0.2q, make-4.2.1, musl-dev-1.1.19, pcre-dev-8.42, binutils-2.30. Can I build accel-ppp on Alpine Linux? What error with triton/libtriton.so? Thank you for help!

alpgw:/opt/accel-ppp-code/build# cmake -DBUILD_PPTP_DRIVER=FALSE -DBUILD_IPOE_DRIVER=FALSE -DBUILD_VLAN_MON_DRIVER=FALSE -DLOG_PGSQL=FALSE -DRADIUS=TRUE -DSHAPER=TRUE -DNETSNMP=FALSE -DLUA=TRU E -DKDIR=/usr/src/linux /opt/accel-ppp-code CMake Deprecation Warning at CMakeLists.txt:3 (cmake_policy): The OLD behavior for policy CMP0003 will be removed from a future version of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD.

-- The C compiler identification is GNU 6.4.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- 'x86_64' -- Found Lua51: /usr/lib/liblua.so;/usr/lib/libm.a (found version "5.1.5") -- Looking for timerfd_create -- Looking for timerfd_create - found -- Looking for linux/netfilter/ipset/ip_set.h -- Looking for linux/netfilter/ipset/ip_set.h - found -- Looking for setns -- Looking for setns - found -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project:

KDIR

-- Build files have been written to: /opt/accel-ppp-code/build alpgw:/opt/accel-ppp-code/build# make Scanning dependencies of target triton [ 1%] Building C object accel-pppd/triton/CMakeFiles/triton.dir/md.c.o [ 1%] Building C object accel-pppd/triton/CMakeFiles/triton.dir/timer.c.o [ 2%] Building C object accel-pppd/triton/CMakeFiles/triton.dir/triton.c.o [ 3%] Building C object accel-pppd/triton/CMakeFiles/triton.dir/conf_file.c.o [ 4%] Building C object accel-pppd/triton/CMakeFiles/triton.dir/loader.c.o [ 5%] Building C object accel-pppd/triton/CMakeFiles/triton.dir/log.c.o [ 5%] Building C object accel-pppd/triton/CMakeFiles/triton.dir/mempool.c.o [ 6%] Building C object accel-pppd/triton/CMakeFiles/triton.dir/event.c.o [ 7%] Linking C shared library libtriton.so [ 7%] Built target triton Scanning dependencies of target accel-pppd [ 8%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/memdebug.c.o [ 9%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/session.c.o [ 9%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/session_backup.c.o [ 10%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ifcfg.c.o [ 11%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/net.c.o [ 12%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/backup/backup.c.o [ 13%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/ppp.c.o [ 13%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/ppp_fsm.c.o [ 14%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/ppp_lcp.c.o [ 15%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/lcp_opt_mru.c.o [ 16%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/lcp_opt_magic.c.o [ 17%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/lcp_opt_pcomp.c.o [ 17%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/lcp_opt_accomp.c.o [ 18%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/ppp_auth.c.o [ 19%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/ppp_ipcp.c.o [ 20%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/ipcp_opt_ipaddr.c.o [ 20%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/ipcp_opt_dns.c.o [ 21%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/ipcp_opt_wins.c.o [ 22%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/ipv6cp_opt_intfid.c.o [ 23%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/ppp_ipv6cp.c.o [ 24%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/ppp_ccp.c.o [ 24%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ppp/ccp_mppe.c.o [ 25%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/cli/std_cmd.c.o [ 26%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/cli/show_sessions.c.o [ 27%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/cli/telnet.c.o [ 28%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/cli/tcp.c.o [ 28%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/cli/cli.c.o [ 29%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/libnetlink/libnetlink.c.o [ 30%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/libnetlink/iputils.c.o [ 31%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/libnetlink/genl.c.o [ 31%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/libnetlink/ipset.c.o [ 32%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/pwdb.c.o [ 33%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/ipdb.c.o [ 34%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/iprange.c.o [ 35%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/utils.c.o [ 35%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/rbtree.c.o [ 36%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/log.c.o [ 37%] Building C object accel-pppd/CMakeFiles/accel-pppd.dir/main.c.o [ 38%] Linking C executable accel-pppd triton/libtriton.so: undefined reference to setcontext' triton/libtriton.so: undefined reference togetcontext' collect2: error: ld returned 1 exit status make[2]: [accel-pppd/CMakeFiles/accel-pppd.dir/build.make:640: accel-pppd/accel-pppd] Error 1 make[1]: [CMakeFiles/Makefile2:115: accel-pppd/CMakeFiles/accel-pppd.dir/all] Error 2 make: *** [Makefile:152: all] Error 2

alex-eri commented 5 years ago

https://www.openwall.com/lists/musl/2016/02/04/4

ucontext.h not implemented in musl libc. so need update accell-ppp code to not use setcontext

alex-eri commented 5 years ago

You can try to run binary build with https://github.com/sgerrand/alpine-pkg-glibc/