kumquat-buildroot/package/guile/guile.mk
Thomas Petazzoni 49593aba5a guile: fix static-only build
guile uses bdwgc, which is already compiled with GC_NO_DLOPEN in
static-only scenarios. However, the bdwgc headers continue to include
<dlfcn.h> if used with GC_NO_DLOPEN undefined.

Therefore, to make guile link properly in a static-only scenario, we
have to build it with GC_NO_DLOPEN defined.

Fixes:

  http://autobuild.buildroot.net/results/1bf/1bf73dd4c28d6607e8c24d3abf259b8032712a02/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-08-07 12:20:39 +02:00

45 lines
1.5 KiB
Makefile

################################################################################
#
# guile
#
################################################################################
GUILE_VERSION = 2.0.11
GUILE_SOURCE = guile-$(GUILE_VERSION).tar.xz
GUILE_SITE = $(BR2_GNU_MIRROR)/guile
GUILE_INSTALL_STAGING = YES
# For 0002-calculate-csqrt_manually.patch
GUILE_AUTORECONF = YES
GUILE_LICENSE = LGPLv3+
GUILE_LICENSE_FILES = LICENSE COPYING COPYING.LESSER
# libtool dependency is needed because guile uses libltdl
GUILE_DEPENDENCIES = host-guile libunistring libffi gmp bdwgc host-pkgconf libtool
HOST_GUILE_DEPENDENCIES = host-libunistring host-libffi host-gmp host-bdwgc host-flex host-pkgconf host-gettext
# The HAVE_GC* CFLAGS specify that we will use internal callbacks
# instead of the ones provided by
# bdwgc. Eg. HAVE_GC_SET_FINALIZER_NOTIFIER specifies that we won't
# use bdwgc's GC_finalizer_notifier callback. Trying to use these
# specific bdwgc's callbacks breaks guile's building.
GUILE_CFLAGS = \
-DHAVE_GC_SET_FINALIZER_NOTIFIER \
-DHAVE_GC_GET_HEAP_USAGE_SAFE \
-DHAVE_GC_GET_FREE_SPACE_DIVISOR \
-DHAVE_GC_SET_FINALIZE_ON_DEMAND
ifeq ($(BR2_STATIC_LIBS),y)
GUILE_CFLAGS += -DGC_NO_DLOPEN
endif
GUILE_CONF_ENV += GUILE_FOR_BUILD=$(HOST_DIR)/usr/bin/guile \
CFLAGS="$(TARGET_CFLAGS) $(GUILE_CFLAGS)"
GUILE_CONF_OPTS += \
--with-libltdl-prefix=$(STAGING_DIR)/usr/lib \
--with-libgmp-prefix=$(STAGING_DIR)/usr/lib \
--with-libunistring-prefix=$(STAGING_DIR)/usr/lib
$(eval $(autotools-package))
$(eval $(host-autotools-package))