This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository legacy-imlib2.

View the commit online.

commit 46d2faec1e72d78ce512f3eb2386b74b7c9ebcd2
Author: Kim Woelders <k...@woelders.dk>
AuthorDate: Fri Mar 21 19:53:20 2025 +0100

    autofoo: Optionally link modules with libImlib2.la
    
    Needed on systems where libImlib2.so is loaded with RTLD_LOCAL.
    
    https://git.enlightenment.org/old/legacy-imlib2/issues/30
---
 configure.ac                    |  6 +++++
 src/modules/filters/Makefile.am |  8 ++++++-
 src/modules/loaders/Makefile.am | 49 +++++++++++++++++++++++++++--------------
 3 files changed, 45 insertions(+), 18 deletions(-)

diff --git a/configure.ac b/configure.ac
index 234124d..5eca34c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -276,6 +276,12 @@ AC_ARG_ENABLE([doc-build],
 )
 AM_CONDITIONAL(BUILD_DOC, test "$enable_doc_build" = "yes")
 
+# If libImlib2 is loaded with RTLD_LOCAL, modules must be linked with libimlib2
+AC_ARG_ENABLE([rtld-local-support],
+  [AS_HELP_STRING([--enable-rtld-local-support], [Link modules with libImlib2 @<:@default=no@:>@])]
+)
+AM_CONDITIONAL(ENABLE_RTLD_LOCAL_SUPPORT, test "$enable_rtld_local_support" = "yes")
+
 EC_C_WARNINGS()
 EC_C_VISIBILITY(yes)
 EC_C_PACKING()
diff --git a/src/modules/filters/Makefile.am b/src/modules/filters/Makefile.am
index 90aa7a4..dbb9d08 100644
--- a/src/modules/filters/Makefile.am
+++ b/src/modules/filters/Makefile.am
@@ -6,16 +6,22 @@ pkg_LTLIBRARIES       = testfilter.la bumpmap.la colormod.la
 
 EXTRA_DIST = filter_common.h
 
+if ENABLE_RTLD_LOCAL_SUPPORT
+LIBADD_EXTRA = $(top_builddir)/src/lib/libImlib2.la
+endif
+
 testfilter_la_SOURCES = filter_test.c
 testfilter_la_LDFLAGS = -module -avoid-version
+testfilter_la_LIBADD  = $(LIBADD_EXTRA)
 testfilter_la_LIBTOOLFLAGS = --tag=disable-static
 
 bumpmap_la_SOURCES    = filter_bumpmap.c
 bumpmap_la_LDFLAGS    = -module -avoid-version
-bumpmap_la_LIBADD     = -lm
+bumpmap_la_LIBADD     = $(LIBADD_EXTRA) -lm
 bumpmap_la_LIBTOOLFLAGS = --tag=disable-static
 
 colormod_la_SOURCES   = filter_colormod.c
 colormod_la_LDFLAGS   = -module -avoid-version
+colormod_la_LIBADD    = $(LIBADD_EXTRA)
 colormod_la_LIBTOOLFLAGS = --tag=disable-static
 
diff --git a/src/modules/loaders/Makefile.am b/src/modules/loaders/Makefile.am
index fa3fc53..d6cca35 100644
--- a/src/modules/loaders/Makefile.am
+++ b/src/modules/loaders/Makefile.am
@@ -74,147 +74,162 @@ endif
  SRCS_EXIF = exif.c exif.h
  SRCS_SAVE = ldrs_util.c ldrs_util.h
 
+if ENABLE_RTLD_LOCAL_SUPPORT
+LIBADD_EXTRA = $(top_builddir)/src/lib/libImlib2.la
+endif
+
 ani_la_SOURCES       = loader_ani.c
 ani_la_LDFLAGS       = -module -avoid-version
+ani_la_LIBADD        = $(LIBADD_EXTRA)
 ani_la_LIBTOOLFLAGS  = --tag=disable-static
 
 argb_la_SOURCES      = loader_argb.c
 argb_la_LDFLAGS      = -module -avoid-version
+argb_la_LIBADD       = $(LIBADD_EXTRA)
 argb_la_LIBTOOLFLAGS = --tag=disable-static
 
 avif_la_SOURCES       = loader_avif.c $(SRCS_SAVE)
 avif_la_CPPFLAGS      = $(AM_CPPFLAGS) $(AVIF_CFLAGS)
 avif_la_LDFLAGS       = -module -avoid-version
-avif_la_LIBADD        = $(AVIF_LIBS)
+avif_la_LIBADD        = $(AVIF_LIBS) $(LIBADD_EXTRA)
 avif_la_LIBTOOLFLAGS  = --tag=disable-static
 
 bmp_la_SOURCES       = loader_bmp.c
 bmp_la_LDFLAGS       = -module -avoid-version
+bmp_la_LIBADD        = $(LIBADD_EXTRA)
 bmp_la_LIBTOOLFLAGS  = --tag=disable-static
 
 ff_la_SOURCES        = loader_ff.c
 ff_la_LDFLAGS        = -module -avoid-version
+ff_la_LIBADD         = $(LIBADD_EXTRA)
 ff_la_LIBTOOLFLAGS   = --tag=disable-static
 
 gif_la_SOURCES       = loader_gif.c
 gif_la_LDFLAGS       = -module -avoid-version
-gif_la_LIBADD        = $(GIF_LIBS)
+gif_la_LIBADD        = $(GIF_LIBS) $(LIBADD_EXTRA)
 gif_la_LIBTOOLFLAGS  = --tag=disable-static
 
 heif_la_SOURCES      = loader_heif.c $(SRCS_SAVE)
 heif_la_CPPFLAGS     = $(AM_CPPFLAGS) $(HEIF_CFLAGS)
 heif_la_LDFLAGS      = -module -avoid-version
-heif_la_LIBADD       = $(HEIF_LIBS)
+heif_la_LIBADD       = $(HEIF_LIBS) $(LIBADD_EXTRA)
 heif_la_LIBTOOLFLAGS = --tag=disable-static
 
 ico_la_SOURCES       = loader_ico.c
 ico_la_LDFLAGS       = -module -avoid-version
+ico_la_LIBADD        = $(LIBADD_EXTRA)
 ico_la_LIBTOOLFLAGS  = --tag=disable-static
 
 jpeg_la_SOURCES      = loader_jpeg.c $(SRCS_EXIF) $(SRCS_SAVE)
 jpeg_la_CPPFLAGS     = $(AM_CPPFLAGS) $(JPEG_CFLAGS)
 jpeg_la_LDFLAGS      = -module -avoid-version
-jpeg_la_LIBADD       = $(JPEG_LIBS)
+jpeg_la_LIBADD       = $(JPEG_LIBS) $(LIBADD_EXTRA)
 jpeg_la_LIBTOOLFLAGS = --tag=disable-static
 
 j2k_la_SOURCES       = loader_j2k.c
 j2k_la_CPPFLAGS      = $(AM_CPPFLAGS) $(J2K_CFLAGS)
 j2k_la_LDFLAGS       = -module -avoid-version
-j2k_la_LIBADD        = $(J2K_LIBS)
+j2k_la_LIBADD        = $(J2K_LIBS) $(LIBADD_EXTRA)
 j2k_la_LIBTOOLFLAGS  = --tag=disable-static
 
 jxl_la_SOURCES       = loader_jxl.c $(SRCS_SAVE)
 jxl_la_CPPFLAGS      = $(AM_CPPFLAGS) $(JXL_CFLAGS)
 jxl_la_LDFLAGS       = -module -avoid-version
-jxl_la_LIBADD        = $(JXL_LIBS)
+jxl_la_LIBADD        = $(JXL_LIBS) $(LIBADD_EXTRA)
 jxl_la_LIBTOOLFLAGS  = --tag=disable-static
 
 lbm_la_SOURCES       = loader_lbm.c
 lbm_la_LDFLAGS       = -module -avoid-version
+lbm_la_LIBADD        = $(LIBADD_EXTRA)
 lbm_la_LIBTOOLFLAGS  = --tag=disable-static
 
 png_la_SOURCES       = loader_png.c $(SRCS_SAVE)
 png_la_CPPFLAGS      = $(AM_CPPFLAGS) $(PNG_CFLAGS)
 png_la_LDFLAGS       = -module -avoid-version
-png_la_LIBADD        = $(PNG_LIBS)
+png_la_LIBADD        = $(PNG_LIBS) $(LIBADD_EXTRA)
 png_la_LIBTOOLFLAGS  = --tag=disable-static
 
 pnm_la_SOURCES       = loader_pnm.c
 pnm_la_LDFLAGS       = -module -avoid-version
+pnm_la_LIBADD        = $(LIBADD_EXTRA)
 pnm_la_LIBTOOLFLAGS  = --tag=disable-static
 
 ps_la_SOURCES       = loader_ps.c
 ps_la_CPPFLAGS      = $(AM_CPPFLAGS) $(PS_CFLAGS)
 ps_la_LDFLAGS       = -module -avoid-version
-ps_la_LIBADD        = $(PS_LIBS)
+ps_la_LIBADD        = $(PS_LIBS) $(LIBADD_EXTRA)
 ps_la_LIBTOOLFLAGS  = --tag=disable-static
 
 raw_la_SOURCES       = loader_raw.c
 raw_la_CPPFLAGS      = $(AM_CPPFLAGS) $(RAW_CFLAGS)
 raw_la_LDFLAGS       = -module -avoid-version
-raw_la_LIBADD        = $(RAW_LIBS)
+raw_la_LIBADD        = $(RAW_LIBS) $(LIBADD_EXTRA)
 raw_la_LIBTOOLFLAGS  = --tag=disable-static
 
 qoi_la_SOURCES       = loader_qoi.c
 qoi_la_LDFLAGS       = -module -avoid-version
+qoi_la_LIBADD        = $(LIBADD_EXTRA)
 qoi_la_LIBTOOLFLAGS  = --tag=disable-static
 
 svg_la_SOURCES       = loader_svg.c
 svg_la_CPPFLAGS      = $(AM_CPPFLAGS) $(SVG_CFLAGS)
 svg_la_LDFLAGS       = -module -avoid-version
-svg_la_LIBADD        = $(SVG_LIBS)
+svg_la_LIBADD        = $(SVG_LIBS) $(LIBADD_EXTRA)
 svg_la_LIBTOOLFLAGS  = --tag=disable-static
 
 tga_la_SOURCES       = loader_tga.c
 tga_la_LDFLAGS       = -module -avoid-version
+tga_la_LIBADD        = $(LIBADD_EXTRA)
 tga_la_LIBTOOLFLAGS  = --tag=disable-static
 
 tiff_la_SOURCES      = loader_tiff.c $(SRCS_SAVE)
 tiff_la_CPPFLAGS     = $(AM_CPPFLAGS) $(TIFF_CFLAGS)
 tiff_la_LDFLAGS      = -module -avoid-version
-tiff_la_LIBADD       = $(TIFF_LIBS)
+tiff_la_LIBADD       = $(TIFF_LIBS) $(LIBADD_EXTRA)
 tiff_la_LIBTOOLFLAGS = --tag=disable-static
 
 webp_la_SOURCES      = loader_webp.c $(SRCS_SAVE)
 webp_la_CPPFLAGS     = $(AM_CPPFLAGS) $(WEBP_CFLAGS)
 webp_la_LDFLAGS      = -module -avoid-version
-webp_la_LIBADD       = $(WEBP_LIBS)
+webp_la_LIBADD       = $(WEBP_LIBS) $(LIBADD_EXTRA)
 webp_la_LIBTOOLFLAGS = --tag=disable-static
 
 xbm_la_SOURCES       = loader_xbm.c
 xbm_la_LDFLAGS       = -module -avoid-version
+xbm_la_LIBADD        = $(LIBADD_EXTRA)
 xbm_la_LIBTOOLFLAGS  = --tag=disable-static
 
 xpm_la_SOURCES       = loader_xpm.c
 xpm_la_LDFLAGS       = -module -avoid-version
+xpm_la_LIBADD        = $(LIBADD_EXTRA)
 xpm_la_LIBTOOLFLAGS  = --tag=disable-static
 
 y4m_la_SOURCES       = loader_y4m.c
 y4m_la_CPPFLAGS      = $(AM_CPPFLAGS) $(Y4M_CFLAGS)
 y4m_la_LDFLAGS       = -module -avoid-version
-y4m_la_LIBADD        = $(Y4M_LIBS)
+y4m_la_LIBADD        = $(Y4M_LIBS) $(LIBADD_EXTRA)
 y4m_la_LIBTOOLFLAGS  = --tag=disable-static
 
 bz2_la_SOURCES       = loader_bz2.c decompress_load.c compression.h
 bz2_la_CPPFLAGS      = $(AM_CPPFLAGS) $(BZ2_CFLAGS)
 bz2_la_LDFLAGS       = -module -avoid-version
-bz2_la_LIBADD        = $(BZ2_LIBS)
+bz2_la_LIBADD        = $(BZ2_LIBS) $(LIBADD_EXTRA)
 bz2_la_LIBTOOLFLAGS  = --tag=disable-static
 
 lzma_la_SOURCES      = loader_lzma.c decompress_load.c compression.h
 lzma_la_CPPFLAGS     = $(AM_CPPFLAGS) $(LZMA_CFLAGS)
 lzma_la_LDFLAGS      = -module -avoid-version
-lzma_la_LIBADD       = $(LZMA_LIBS)
+lzma_la_LIBADD       = $(LZMA_LIBS) $(LIBADD_EXTRA)
 lzma_la_LIBTOOLFLAGS = --tag=disable-static
 
 zlib_la_SOURCES      = loader_zlib.c decompress_load.c compression.h
 zlib_la_CPPFLAGS     = $(AM_CPPFLAGS) $(ZLIB_CFLAGS)
 zlib_la_LDFLAGS      = -module -avoid-version
-zlib_la_LIBADD       = $(ZLIB_LIBS)
+zlib_la_LIBADD       = $(ZLIB_LIBS) $(LIBADD_EXTRA)
 zlib_la_LIBTOOLFLAGS = --tag=disable-static
 
 id3_la_SOURCES       = loader_id3.c
 id3_la_CPPFLAGS      = $(AM_CPPFLAGS) $(ID3_CFLAGS)
 id3_la_LDFLAGS       = -module -avoid-version
-id3_la_LIBADD        = $(ID3_LIBS)
+id3_la_LIBADD        = $(ID3_LIBS) $(LIBADD_EXTRA)
 id3_la_LIBTOOLFLAGS  = --tag=disable-static

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to