diff mbox series

[1/1] package/apache: fix dynamic build for mod_lua

Message ID 20180401112900.922-1-bernd.kuhls@t-online.de
State Changes Requested
Headers show
Series [1/1] package/apache: fix dynamic build for mod_lua | expand

Commit Message

Bernd Kuhls April 1, 2018, 11:29 a.m. UTC
Fixes
/accts/mlweber1/rclinux/rc-buildroot-test/scripts/instance-1/output/host/sparc64-buildroot-linux-gnu/sysroot/usr/lib/liblua.so: undefined reference to `dlopen'
/accts/mlweber1/rclinux/rc-buildroot-test/scripts/instance-1/output/host/sparc64-buildroot-linux-gnu/sysroot/usr/lib/liblua.so: undefined reference to `dlclose'
/accts/mlweber1/rclinux/rc-buildroot-test/scripts/instance-1/output/host/sparc64-buildroot-linux-gnu/sysroot/usr/lib/liblua.so: undefined reference to `dlerror'
/accts/mlweber1/rclinux/rc-buildroot-test/scripts/instance-1/output/host/sparc64-buildroot-linux-gnu/sysroot/usr/lib/liblua.so: undefined reference to `dlsym'

detected by autobuilder:
http://autobuild.buildroot.net/results/cc1/cc13f4cef9cf6f18615d58f1d83b233812f19fa0/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/apache/apache.mk | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Thomas Petazzoni April 1, 2018, 12:04 p.m. UTC | #1
Hello,

On Sun,  1 Apr 2018 13:29:00 +0200, Bernd Kuhls wrote:

>  APACHE_DEPENDENCIES += lua
> +# liblua uses dlopen when dynamically linked
> +ifneq ($(BR2_STATIC_LIBS),y)
> +APACHE_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -ldl"
> +endif

As usual, I don't like this. Apache uses pkg-config to query for the
availability of Lua, and this should return "the right thing" without
the need for hacks. See modules/lua/config.m4:

if test -n "$PKGCONFIG" -a -z "$lua_path" \
   && $PKGCONFIG --atleast-version=5.1 lua; then
  LUA_LIBS="`$PKGCONFIG --libs lua`"
  LUA_CFLAGS="`$PKGCONFIG --cflags lua`"
  LUA_VERSION="`$PKGCONFIG --modversion lua`"
  AC_MSG_NOTICE([using Lua $LUA_VERSION configuration from pkg-config])

So we need to understand why this doesn't work.

In the failing build, host-pkgconf was built before apache, so
pkg-config was available. But apache didn't use it, I believe because
we pass a non_empty lua_path.

Could you try to pass --with-lua instead of --with-lua=$(STAGING_DIR) ?
That should convince  the stuff to use pkg-config to detect Lua, which
will get the compiler flags from lua.pc, and hopefully they will
contain the -ldl.

Thanks,

Thomas
diff mbox series

Patch

diff --git a/package/apache/apache.mk b/package/apache/apache.mk
index 3b39be4a40..6632d0b6ce 100644
--- a/package/apache/apache.mk
+++ b/package/apache/apache.mk
@@ -61,6 +61,10 @@  APACHE_CONF_OPTS += \
 	--enable-lua \
 	--with-lua=$(STAGING_DIR)/usr
 APACHE_DEPENDENCIES += lua
+# liblua uses dlopen when dynamically linked
+ifneq ($(BR2_STATIC_LIBS),y)
+APACHE_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -ldl"
+endif
 else
 APACHE_CONF_OPTS += --disable-lua
 endif