<div dir="ltr"><div>Woops<br><br></div>I meant<br><br>    $ ./autogen.sh<br>    $ ./configure<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 30, 2016 at 4:31 PM, Alberto Leiva <span dir="ltr"><<a href="mailto:ydahhrk@gmail.com" target="_blank">ydahhrk@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Well, I'm going to risk looking like a complete dumb bag by admitting that I've always wondered why argp doesn't seem to need to be linked. Perhaps we should anyway.<br><br>Yes, from your build log, it does look like it ignores EXTRA_FLAGS. Autoconf is the one normally supposed to take care of the -l<whatever>s. Don't know if you've tried this: Open usr/<a href="http://configure.ac" target="_blank">configure.ac</a> and add<br><br>    AC_SEARCH_LIBS([argp_parse], [argp])<br><br>, preferably along the other AC_SEARCH_LIBS. If autoconf realizes the function does not exist, it should append -largp I suppose.<br><br>That does seem to want to do something, but since I don't need it, it becomes a no-op in my system:<br><br>    $ ./autoconf.sh<br>    $ ./configure<br>    ...<br>    checking for pow... no<br>    checking for library containing pow... -lm<br>    checking for library containing pthread_create... -lpthread<br>    checking for library containing argp_parse... none required <---- This<br>    ...<br><br>Perhaps it will do something useful in yours?<br><br>You might want to send a pull request if it works.<br><br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 30, 2016 at 3:23 PM, Dan Lüdtke <span dir="ltr"><<a href="mailto:mail@danrl.com" target="_blank">mail@danrl.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I am working on a Jool package for LEDE and I am having trouble building the user space binaries for Jool SIIT/NAT64. It is missing `argp` AFAIK.<br>
<br>
> ../common/jool-jool.o: In function `main':<br>
> jool.c:(.text.startup+0x89): undefined reference to `argp_parse'<br>
> collect2: error: ld returned 1 exit status<br>
> Makefile:504: recipe for target 'jool' failed<br>
> make[6]: *** [jool] Error 1<br>
<br>
However, my build depends on argp-standalone and I also added argp to the EXTRA_CFLAGS (and out of desperation also to EXTRA_LDFLAGS).<br>
<br>
This affects the toolchain using musl. If the toolchain uses glibc the packet builds just fine.<br>
<br>
Can someone please help me spot the mistake?<br>
I am also not very confident that I understood how the LEDE build system invokes ./configure and automake, any hints there are appreciated, too.<br>
<br>
Cheers!<br>
<br>
Dan<br>
<br>
Build Log: <a href="https://paste.fedoraproject.org/494383/14805388/" rel="noreferrer" target="_blank">https://paste.fedoraproject.or<wbr>g/494383/14805388/</a><br>
Makefile:  <a href="https://paste.fedoraproject.org/494385/05389191/" rel="noreferrer" target="_blank">https://paste.fedoraproject.or<wbr>g/494385/05389191/</a><br>
<br>
<br>
==Build log==<br>
Also here: <a href="https://paste.fedoraproject.org/494383/14805388/" rel="noreferrer" target="_blank">https://paste.fedoraproject.or<wbr>g/494383/14805388/</a><br>
<br>
x86_64-openwrt-linux-musl-gcc -DPACKAGE_NAME=\"Jool\" -DPACKAGE_TARNAME=\"jool\" -DPACKAGE_VERSION=\"3.5.1\" -DPACKAGE_STRING=\"Jool\ 3.5.1\" -DPACKAGE_BUGREPORT=\"<a href="mailto:jool@nic.mx" target="_blank">jool@nic<wbr>.mx</a>\" -DPACKAGE_URL=\"\" -DPACKAGE=\"jool\" -DVERSION=\"3.5.1\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_ARPA_INET_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE__BOOL=1 -DHAVE_INET_NTOA=1 -DHAVE_MEMSET=1 -DHAVE_STRCASECMP=1 -DHAVE_STRTOL=1 -I.    -Wall -O2 -I./../../include -I/home/danrl/lede/nat64/sourc<wbr>e/staging_dir/target-x86_64_<wbr>musl-1.1.15/usr/include/libnl3<wbr>   -MT ../common/target/jool-session.<wbr>o -MD -MP -MF ../common/target/.deps/jool-se<wbr>ssion.Tpo -c -o ../common/target/jool-session.<wbr>o `test -f '../common/target/session.c' || echo './'`../common/target/session.<wbr>c<br>
mv -f ../common/target/.deps/jool-se<wbr>ssion.Tpo ../common/target/.deps/jool-se<wbr>ssion.Po<br>
x86_64-openwrt-linux-musl-gcc -Wall -O2 -I./../../include -I/home/danrl/lede/nat64/sourc<wbr>e/staging_dir/target-x86_64_<wbr>musl-1.1.15/usr/include/libnl3<wbr>     -o jool ../../common/netlink/jool-conf<wbr>ig.o ../../common/stateful/jool-xla<wbr>t.o ../common/jool-cJSON.o ../common/jool-dns.o ../common/jool-file.o ../common/jool-jool.o ../common/jool-netlink2.o ../common/jool-str_utils.o ../common/argp/jool-options.o ../common/nl/jool-buffer.o ../common/target/jool-bib.o ../common/target/jool-eam.o ../common/target/jool-global.o ../common/target/jool-instance<wbr>.o ../common/target/jool-joold.o ../common/target/jool-json.o ../common/target/jool-log_time<wbr>.o ../common/target/jool-pool.o ../common/target/jool-pool4.o ../common/target/jool-pool6.o ../common/target/jool-session.<wbr>o -L/home/danrl/lede/nat64/sourc<wbr>e/staging_dir/target-x86_64_<wbr>musl-1.1.15/usr/lib -lnl-genl-3 -lnl-3 -lpthread -lm<br>
../common/jool-jool.o: In function `main':<br>
jool.c:(.text.startup+0x89): undefined reference to `argp_parse'<br>
collect2: error: ld returned 1 exit status<br>
Makefile:504: recipe for target 'jool' failed<br>
make[6]: *** [jool] Error 1<br>
make[6]: Leaving directory '/home/danrl/lede/nat64/source<wbr>/build_dir/target-x86_64_musl-<wbr>1.1.15/jool-a37b795993c59fb246<wbr>e93ada49d0ead0775daa69/usr/<wbr>stateful'<br>
Makefile:345: recipe for target 'all-recursive' failed<br>
make[5]: *** [all-recursive] Error 1<br>
make[5]: Leaving directory '/home/danrl/lede/nat64/source<wbr>/build_dir/target-x86_64_musl-<wbr>1.1.15/jool-a37b795993c59fb246<wbr>e93ada49d0ead0775daa69/usr'<br>
Makefile:124: recipe for target '/home/danrl/lede/nat64/source<wbr>/build_dir/target-x86_64_musl-<wbr>1.1.15/jool-a37b795993c59fb246<wbr>e93ada49d0ead0775daa69/.built' failed<br>
make[4]: *** [/home/danrl/lede/nat64/source<wbr>/build_dir/target-x86_64_musl-<wbr>1.1.15/jool-a37b795993c59fb246<wbr>e93ada49d0ead0775daa69/.built] Error 2<br>
make[4]: Leaving directory '/home/danrl/lede/nat64/source<wbr>/feeds/sixfw/net/jool'<br>
package/Makefile:127: recipe for target 'package/feeds/sixfw/jool/comp<wbr>ile' failed<br>
make[3]: *** [package/feeds/sixfw/jool/comp<wbr>ile] Error 2<br>
make[3]: Leaving directory '/home/danrl/lede/nat64/source<wbr>'<br>
package/Makefile:124: recipe for target '/home/danrl/lede/nat64/source<wbr>/staging_dir/target-x86_64_<wbr>musl-1.1.15/stamp/.package_com<wbr>pile' failed<br>
make[2]: *** [/home/danrl/lede/nat64/source<wbr>/staging_dir/target-x86_64_<wbr>musl-1.1.15/stamp/.package_com<wbr>pile] Error 2<br>
make[2]: Leaving directory '/home/danrl/lede/nat64/source<wbr>'<br>
/home/danrl/lede/nat64/source/<wbr>include/<a href="http://toplevel.mk:194" rel="noreferrer" target="_blank">toplevel.mk:194</a>: recipe for target 'world' failed<br>
make[1]: *** [world] Error 2<br>
make[1]: Leaving directory '/home/danrl/lede/nat64/source<wbr>'<br>
Makefile:29: recipe for target 'verbose' failed<br>
make: *** [verbose] Error 2<br>
<br>
<br>
==Makefile==<br>
Also here: <a href="https://paste.fedoraproject.org/494385/05389191/" rel="noreferrer" target="_blank">https://paste.fedoraproject.or<wbr>g/494385/05389191/</a><br>
<br>
#<br>
# Copyright (C) 2016 Dan Luedtke <<a href="mailto:mail@danrl.com" target="_blank">mail@danrl.com</a>><br>
#<br>
# This is free software, licensed under the GNU General Public License v2.<br>
# See /LICENSE for more information.<br>
<br>
include $(TOPDIR)/<a href="http://rules.mk" rel="noreferrer" target="_blank">rules.mk</a><br>
<br>
PKG_NAME:=jool<br>
PKG_VERSION:=3.5.1<br>
PKG_RELEASE:=1<br>
<br>
PKG_LICENSE:=GPL-3.0<br>
PKG_LICENSE_FILES:=COPYING<br>
<br>
PKG_SOURCE_PROTO:=git<br>
PKG_SOURCE_URL:=<a href="https://github.com/sixfw/Jool.git" rel="noreferrer" target="_blank">https://github<wbr>.com/sixfw/Jool.git</a><br>
PKG_SOURCE_VERSION:=a37b795993<wbr>c59fb246e93ada49d0ead0775daa69<br>
PKG_SOURCE_SUBDIR:=$(PKG_NAME)<wbr>-$(PKG_SOURCE_VERSION)<br>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_<wbr>SOURCE_VERSION).tar.gz<br>
PKG_BUILD_DIR:=$(BUILD_DIR)/$(<wbr>PKG_SOURCE_SUBDIR)<br>
PKG_BUILD_PARALLEL:=1<br>
PKG_BUILD_DEPENDS:=+argp-stand<wbr>alone<br>
PKG_AUTOMAKE_PATHS:=usr<br>
PKG_FIXUP:=autoreconf<br>
MAKE_PATH:=usr<br>
<br>
# does not work<br>
#EXTRA_CFLAGS:=-largp-standalo<wbr>ne<br>
#EXTRA_LDFLAGS:=-largp-standal<wbr>one<br>
<br>
# does not work either<br>
EXTRA_CFLAGS:=-largp<br>
EXTRA_LDFLAGS:=-largp<br>
<br>
include $(INCLUDE_DIR)/<a href="http://kernel.mk" rel="noreferrer" target="_blank">kernel.mk</a><br>
include $(INCLUDE_DIR)/<a href="http://package.mk" rel="noreferrer" target="_blank">package.mk</a><br>
<br>
define Package/jool/Default<br>
        SECTION:=net<br>
        CATEGORY:=Network<br>
        URL:=<a href="https://www.jool.mx" rel="noreferrer" target="_blank">https://www.jool.mx</a><br>
        MAINTAINER:=Dan Luedtke <<a href="mailto:mail@danrl.com" target="_blank">mail@danrl.com</a>><br>
endef<br>
<br>
define Package/jool/Default/descripti<wbr>on<br>
        Jool is an Open Source SIIT and NAT64 for Linux.<br>
endef<br>
<br>
define Package/jool<br>
        $(call Package/jool/Default)<br>
        TITLE:=Jool meta-package<br>
        DEPENDS:=+kmod-jool +jool-tools<br>
endef<br>
<br>
define Package/jool/description<br>
        $(call Package/jool/Default/descripti<wbr>on)<br>
endef<br>
<br>
include $(INCLUDE_DIR)/<a href="http://kernel-defaults.mk" rel="noreferrer" target="_blank">kernel-defaults<wbr>.mk</a><br>
include $(INCLUDE_DIR)/<a href="http://package-defaults.mk" rel="noreferrer" target="_blank">package-default<wbr>s.mk</a><br>
<br>
define KernelPackage/jool<br>
        SECTION:=kernel<br>
        CATEGORY:=Kernel modules<br>
        SUBMENU:=Network Support<br>
        TITLE:=Jool kernel module<br>
        DEPENDS:= \<br>
                @IPV6 \<br>
                +kmod-crypto-md5 \<br>
                +kmod-nf-conntrack \<br>
                +kmod-nf-conntrack6<br>
        FILES:= \<br>
                $(PKG_BUILD_DIR)/mod/stateful/<wbr>jool.$(LINUX_KMOD_SUFFIX) \<br>
                $(PKG_BUILD_DIR)/mod/stateless<wbr>/jool_siit.$(LINUX_KMOD_<wbr>SUFFIX)<br>
endef<br>
<br>
define KernelPackage/jool/description<br>
        $(call Package/jool/Default/descripti<wbr>on)<br>
<br>
        This package provides the kernel module for Jool.<br>
endef<br>
<br>
define Package/jool-tools<br>
        $(call Package/jool/Default)<br>
        TITLE:=Jool userspace control programs<br>
        DEPENDS:=+libnl +ethtool<br>
endef<br>
<br>
define Package/jool-tools/description<br>
        $(call Package/jool/Default/descripti<wbr>on)<br>
<br>
        This package provides the userspace control programs for Jool.<br>
endef<br>
<br>
define Package/jool-tools/install<br>
        $(INSTALL_DIR) $(1)/usr/sbin/<br>
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/usr/stateful/<wbr>jool       $(1)/usr/sbin/<br>
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/usr/stateless<wbr>/jool_siit $(1)/usr/sbin/<br>
endef<br>
<br>
define Build/Configure<br>
        ( cd $(PKG_BUILD_DIR)/usr; ./configure )<br>
endef<br>
<br>
define Build/Compile<br>
        $(MAKE) -C "$(LINUX_DIR)" \<br>
                KERNEL_DIR="$(LINUX_DIR)" \<br>
                ARCH="$(LINUX_KARCH)" \<br>
                CROSS_COMPILE="$(TARGET_CROSS)<wbr>" \<br>
                SUBDIRS="$(PKG_BUILD_DIR)/mod/<wbr>stateful" \<br>
                V="$(V)" \<br>
                modules<br>
        $(MAKE) -C "$(LINUX_DIR)" \<br>
                KERNEL_DIR="$(LINUX_DIR)" \<br>
                ARCH="$(LINUX_KARCH)" \<br>
                CROSS_COMPILE="$(TARGET_CROSS)<wbr>" \<br>
                SUBDIRS="$(PKG_BUILD_DIR)/mod/<wbr>stateless" \<br>
                V="$(V)" \<br>
                modules<br>
        $(call Build/Compile/Default)<br>
endef<br>
<br>
$(eval $(call BuildPackage,jool))<br>
$(eval $(call KernelPackage,jool))<br>
$(eval $(call BuildPackage,jool-tools))<br>
<br>
______________________________<wbr>_________________<br>
Jool-list mailing list<br>
<a href="mailto:Jool-list@nic.mx" target="_blank">Jool-list@nic.mx</a><br>
<a href="https://mail-lists.nic.mx/listas/listinfo/jool-list" rel="noreferrer" target="_blank">https://mail-lists.nic.mx/list<wbr>as/listinfo/jool-list</a><br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>