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 |
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 --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
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(+)