kumquat-buildroot/package/ncftp/ncftp.mk
Thomas Petazzoni 9647c3c5e9 ncftp: fix host/target confusion
The ncftp build process tries to build and run a small program called
ccdv to beautify the build process output. If it manages to build and
run it, then it uses it.

Unfortunately, this doesn't work well when the target architecture is
close to the host architecture, but not exactly the same. Because both
architectures are close to each other, the test run of ccdv succeeds,
but real use of ccdv during ncftp build process causes an Illegal
instruction issue.

This for example happens with the CodeSourcery AMD64 toolchain, on a
build machine running an i7-4600U, and has been detected in the
autobuilders since the CodeSourcery AMD64 toolchain was upgraded at
the end of January:

  http://autobuild.buildroot.net/?reason=ncftp-3.2.6

The issue was also reported by Christopher Arguin back in July 2016:

  http://lists.busybox.net/pipermail/buildroot/2016-July/168026.html

and at the time, we identified that simply disabling the ccdv tool, by
passing --disable-ccdv, was enough to solve the issue. But Christopher
never submitted the patch, so the problem remained unfixed.

Therefore, we pass --disable-ccdv to the configure script, which
fixes:

  http://autobuild.buildroot.net/results/6eadad0e879ca70bb07b13b4196d42c64b11699f/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-01 21:47:15 +01:00

55 lines
1.5 KiB
Makefile

################################################################################
#
# ncftp
#
################################################################################
NCFTP_VERSION = 3.2.6
NCFTP_SOURCE = ncftp-$(NCFTP_VERSION)-src.tar.xz
NCFTP_SITE = ftp://ftp.ncftp.com/ncftp
NCFTP_TARGET_BINS = ncftp
NCFTP_LICENSE = Clarified Artistic License
NCFTP_LICENSE_FILES = doc/LICENSE.txt
NCFTP_DEPENDENCIES = host-autoconf
NCFTP_CONF_OPTS = --disable-ccdv
# The bundled configure script is generated by autoconf 2.13 and doesn't
# detect cross-compilation correctly. Therefore, we have to regenerate it.
# We need to pass -I because of the non-standard m4 directory name, and
# none of the other autotools are used, so the below is the easiest.
define NCFTP_RUN_AUTOCONF
(cd $(@D); $(HOST_DIR)/usr/bin/autoconf -I$(@D)/autoconf_local/)
endef
NCFTP_PRE_CONFIGURE_HOOKS += NCFTP_RUN_AUTOCONF
ifeq ($(BR2_PACKAGE_NCFTP_GET),y)
NCFTP_TARGET_BINS += ncftpget
endif
ifeq ($(BR2_PACKAGE_NCFTP_PUT),y)
NCFTP_TARGET_BINS += ncftpput
endif
ifeq ($(BR2_PACKAGE_NCFTP_LS),y)
NCFTP_TARGET_BINS += ncftpls
endif
ifeq ($(BR2_PACKAGE_NCFTP_BATCH),y)
NCFTP_TARGET_BINS += ncftpbatch
NCFTP_INSTALL_NCFTP_BATCH = \
ln -sf /usr/bin/ncftpbatch $(TARGET_DIR)/usr/bin/ncftpspooler
endif
ifeq ($(BR2_PACKAGE_NCFTP_BOOKMARKS),y)
NCFTP_TARGET_BINS += ncftpbookmarks
NCFTP_DEPENDENCIES += ncurses
endif
define NCFTP_INSTALL_TARGET_CMDS
$(INSTALL) -m 0755 $(addprefix $(NCFTP_DIR)/bin/, $(NCFTP_TARGET_BINS)) $(TARGET_DIR)/usr/bin
$(NCFTP_INSTALL_NCFTP_BATCH)
endef
$(eval $(autotools-package))