package/netsurf: use HOST_CFLAGS/HOST_LDFLAGS
PATCH 1/1 package/netsurf: use HOST_CFLAGS/HOST_LDFLAGS
In commit 9b0ac875385e3bcb052fc2f376f45fa61e102673 ("package/netsurf:
make sure host libpng can be found"), the netsurf package was modified to pass -L$(HOST_DIR)/lib so that libpng is found at link time.
However, this is not sufficient: for the host tool to work at runtime, we need to have the proper RPATH encoded in the host binary. Otherwise, building netsurf fails with:
build/Linux-framebuffer/tools/convert_image: error while loading shared libraries: libpng16.so.16: cannot open shared object file: No such file or directory make[3]: *** [build/Linux-framebuffer/image-caret_image.c] Error 127
So basically, we need to build not only with -L$(HOST_DIR)/lib, but with the complete HOST_LDFLAGS provided by Buildroot.
For consistency, we also use HOST_CFLAGS instead of hardcoding -I$(HOST_DIR)/include.
It is worth mentioning that we must use single quotes here, because the NETSURF_CONFIG variable value then gets put within double quotes to be passed to the netsurf build system.
Fixes:
http://autobuild.buildroot.net/results/4ff6a8c4017d006a4b6b9ca369a569fa72862900/
--- package/netsurf/netsurf.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
package/netsurf/netsurf.mk +2 -2
@@ -36,8 +36,8 @@ ifeq ($(BR2_PACKAGE_NETSURF_SDL),y) NETSURF_DEPENDENCIES += sdl host-libpng NETSURF_FRONTEND = framebuffer NETSURF_CONFIG = \ - HOST_CFLAGS=-I$(HOST_DIR)/include \ - HOST_LDFLAGS='-lpng -L$(HOST_DIR)/lib' + HOST_CFLAGS='$(HOST_CFLAGS)' \ + HOST_LDFLAGS='$(HOST_LDFLAGS) -lpng' ifeq ($(BR2_PACKAGE_FREETYPE),y) NETSURF_DEPENDENCIES += freetype define NETSURF_FONTLIB_CONFIGURE_CMDS
Signature · 1 line
2.20.1
Thomas Petazzoni
AppliedPATCH 1/1 package/netsurf: use HOST_CFLAGS/HOST_LDFLAGS
Hello,
Quoted 21 lines · Thomas Petazzoni
In commit
9b0ac875385e3bcb052fc2f376f45fa61e102673("package/netsurf:
make sure host libpng can be found"), the netsurf package was modified to pass -L$(HOST_DIR)/lib so that libpng is found at link time.However, this is not sufficient: for the host tool to work at runtime, we need to have the proper RPATH encoded in the host binary. Otherwise, building netsurf fails with:
build/Linux-framebuffer/tools/convert_image: error while loading shared libraries: libpng16.so.16: cannot open shared object file: No such file or directory make[3]: *** [
build/Linux-framebuffer/image-caret_image.c] Error 127So basically, we need to build not only with -L$(HOST_DIR)/lib, but with the complete
HOST_LDFLAGSprovided by Buildroot.For consistency, we also use
HOST_CFLAGSinstead of hardcoding -I$(HOST_DIR)/include.It is worth mentioning that we must use single quotes here, because the
NETSURF_CONFIGvariable value then gets put within double quotes to be passed to the netsurf build system.
Quoted 8 lines
Fixes:
http://autobuild.buildroot.net/results/4ff6a8c4017d006a4b6b9ca369a569fa72862900/
Signed-off-by Thomas Petazzoni <[email protected]>--- package/netsurf/netsurf.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Applied to master, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com