[Buildroot] [PATCH v3 1/1] package/zziplib: fix static build failure with mpd

Arnout Vandecappelle arnout at mind.be
Mon Jul 25 20:49:37 UTC 2022


  Hi Andreas,

On 20/03/2022 12:41, Andreas Ziegler wrote:
> The current released version of zziplib copies static libraries with appended
> major version, but omits creating the necessary links to the base file names.
> This prevents the linker to find the libraries via the search path.
> 
> The issue (https://github.com/gdraheim/zziplib/issues/117) has been
> fixed upstream; this patch extracts the necessary part of commit 0e8d35f92efb680c81f6ec1fca9f11d173dce389, to enable creation of symlinks.
> 
> This resolves the following autobuild issues:
> 
> http://autobuild.buildroot.net/results/6c56b645a2b723920f07b98474452824fba5e2c1
> http://autobuild.buildroot.net/results/032aaff121fb114f388c67dbca3ad2b02f670e38
> http://autobuild.buildroot.net/results/ba711034c0abe980f677e26de41739223e2f66e9
> 
> Signed-off-by: Andreas Ziegler <br015 at umbiko.net>

  Since this patch was merged, we have failures [1] like:

[ 37%] Building C object zzipwrap/CMakeFiles/zzipwrap.dir/zzipwrap.c.o
make[3]: stat: zzip/libzzip.a: Too many levels of symbolic links
make[3]: *** No rule to make target 'zzip/libzzip.a', needed by 
'zzipwrap/zzipwrap'.  Stop.

  Since this is about symlinks, it might be related to this patch. Could you 
have a look?

  Regards,
  Arnout

[1] 
http://autobuild.buildroot.net/results/743/7433a2ad111e2f014c81f196d3d1e2f63dffa858/



> ---
> Changes v1 -> v2:
>   - extract link creation from commit 0e8d35f
> Changes v2 -> v3:
>   - update failure list
> 
>   ...-implant-ZZIP_LIBLATEST-for-zzip_lib.patch | 78 +++++++++++++++++++
>   1 file changed, 78 insertions(+)
>   create mode 100644 package/zziplib/0001-implant-ZZIP_LIBLATEST-for-zzip_lib.patch
> 
> diff --git a/package/zziplib/0001-implant-ZZIP_LIBLATEST-for-zzip_lib.patch b/package/zziplib/0001-implant-ZZIP_LIBLATEST-for-zzip_lib.patch
> new file mode 100644
> index 0000000000..50380861bc
> --- /dev/null
> +++ b/package/zziplib/0001-implant-ZZIP_LIBLATEST-for-zzip_lib.patch
> @@ -0,0 +1,78 @@
> +Extract link creation for versioned libraries from commit
> +0e8d35f92efb680c81f6ec1fca9f11d173dce389.
> +
> +Signed-off-by: Andreas Ziegler <br015 at umbiko.net>
> +
> +---
> +From 0e8d35f92efb680c81f6ec1fca9f11d173dce389 Mon Sep 17 00:00:00 2001
> +From: Guido Draheim <guidod at gmx.de>
> +Date: Sat, 22 May 2021 15:13:28 +0200
> +Subject: [PATCH] #117 implant ZZIP_LIBLATEST for zzip.lib
> +
> +---
> + zzip/CMakeLists.txt | 57 +++++++++++++++++++++++++++++++++++----------
> + 1 file changed, 45 insertions(+), 12 deletions(-)
> +
> +diff --git a/zzip/CMakeLists.txt b/zzip/CMakeLists.txt
> +index a966d5f..ccd08b6 100644
> +--- a/zzip/CMakeLists.txt
> ++++ b/zzip/CMakeLists.txt
> +@@ -28,6 +28,12 @@ option(ZZIP_LIBTOOL "Ensure binary compatibility with libtool" OFF)
> + option(ZZIP_PKGCONFIG "Generate pkg-config files for linking" OFF)
> + endif()
> +
> ++if(ZZIP_LIBTOOL OR ZZIP_PKGCONFIG)
> ++option(ZZIP_LIBLATEST "Ensure libname.lib links to libname-REL.lib" ON)
> ++else()
> ++option(ZZIP_LIBLATEST "Ensure libname.lib links to libname-REL.lib" OFF)
> ++endif()
> ++
> + # used in zzip/_config.h
> + set(ZZIP_PACKAGE "${PROJECT_NAME}lib")
> + set(ZZIP_VERSION "${PROJECT_VERSION}")
> +@@ -346,6 +340,45 @@ if(ZZIP_LIBTOOL)
> +   endif(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG)
> + endif(ZZIP_LIBTOOL)
> +
> ++if(ZZIP_LIBLATEST)
> ++  if(BUILD_SHARED_LIBS)
> ++    set(lib ${CMAKE_SHARED_LIBRARY_PREFIX})
> ++    set(dll ${CMAKE_SHARED_LIBRARY_SUFFIX})
> ++  else()
> ++    set(lib ${CMAKE_STATIC_LIBRARY_PREFIX})
> ++    set(dll ${CMAKE_STATIC_LIBRARY_SUFFIX})
> ++  endif()
> ++    get_target_property(libname libzzip OUTPUT_NAME)
> ++    get_target_property(librelease libzzip RELEASE_POSTFIX)
> ++    add_custom_target(libzzip_latest ALL
> ++        COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE_NAME:libzzip> ${lib}${libname}${dll}
> ++        )
> ++    install(FILES
> ++        ${outdir}/${lib}${libname}${dll}
> ++        DESTINATION ${CMAKE_INSTALL_LIBDIR})
> ++    if(ZZIPFSEEKO)
> ++    get_target_property(libname libzzipfseeko OUTPUT_NAME)
> ++    get_target_property(librelease libzzipfseeko RELEASE_POSTFIX)
> ++    add_custom_target(libzzipfseeko_latest ALL
> ++        COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE_NAME:libzzipfseeko> ${lib}${libname}${dll}
> ++        )
> ++    install(FILES
> ++        ${outdir}/${lib}${libname}${dll}
> ++        DESTINATION ${CMAKE_INSTALL_LIBDIR})
> ++    endif(ZZIPFSEEKO)
> ++    if(ZZIPMMAPPED)
> ++    get_target_property(libname libzzipmmapped OUTPUT_NAME)
> ++    get_target_property(librelease libzzipmmapped RELEASE_POSTFIX)
> ++    add_custom_target(libzzipmmaped_latest ALL
> ++        COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE_NAME:libzzipmmapped> ${lib}${libname}${dll}
> ++        )
> ++    install(FILES
> ++        ${outdir}/${lib}${libname}${dll}
> ++        DESTINATION ${CMAKE_INSTALL_LIBDIR})
> ++    endif(ZZIPMMAPPED)
> ++endif(ZZIP_LIBLATEST)
> ++
> ++
> + ## messages ##############################################
> +
> + message(STATUS "lib zzipfseeko  to be compiled: ${ZZIPFSEEKO}")



More information about the buildroot mailing list