Control: tags -1 + patch

On Friday, February 17 2023, Lucas Nussbaum wrote:

> Hi,
>
> During a rebuild of all packages in sid, your package failed to build
> on amd64.
>
>
> Relevant part (hopefully):
>> /bin/bash ./libtool --tag=CXX --mode=link c++ -g -O2
>> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong
>> -Wformat -Werror=format-security -Wno-unknown-pragmas -Wno-pragmas
>> -Wall -Wextra -Wno-attributes -Wvarargs -Waddress -Warray-bounds
>> -Wchar-subscripts -Wcomment -Wctor-dtor-privacy -Wfloat-equal
>> -Wformat=2 -Wformat-y2k -Wmaybe-uninitialized
>> -Wmissing-field-initializers -Wlogical-op -Wnon-virtual-dtor
>> -Wnormalized=id -Woverloaded-virtual -Wpointer-arith
>> -Wredundant-decls -Wshadow -Wsign-compare -Wstrict-overflow=1
>> -Wswitch-enum -Wtrampolines -Wundef -funsafe-loop-optimizations
>> -Wc++11-compat -Wclobbered -Wunused -Wunused-result
>> -Wunused-variable -Wunused-parameter -Wunused-local-typedefs
>> -Wwrite-strings -Wformat-security -fwrapv -pipe -fPIE -pie
>> -Wsizeof-pointer-memaccess -Wpacked -std=c++0x -Wl,-z,relro
>> -Wl,-z,now -Wl,--as-needed -o t/httpd tests/httpd_test.o
>> libgearman/libgearman.la libtest/libtest.la tests/libstartworker.la
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_server_minor_version'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_server_instance_by_position'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_behavior_set'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_set_sasl_auth_data'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_free'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_flush'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_clone'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_server_major_version'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_version'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_behavior_get'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_server_micro_version'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_server_cursor'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_server_error_return'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_stat_free'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_server_error'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_create'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_stat'
>> /usr/bin/ld: 
>> /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libmemcachedutil.so:
>>  undefined reference to `memcached_server_add'
>> collect2: error: ld returned 1 exit status

The problem happens because of the order of the "-l" parameters during
link-time.  libmemcachedutil depends on libmemcached, and as such should
be specified first in the command line.

I filed https://github.com/gearman/gearmand/pull/365 upstream and I'm
inlining a patch that fixes the problem for me.

Thanks,

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
https://sergiodj.net/

diff --git a/debian/changelog b/debian/changelog
index c274aba..4065db1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,16 @@
+gearmand (1.1.19.1+ds-3) UNRELEASED; urgency=medium
+
+  [ Jenkins ]
+  * Apply multi-arch hints. + libgearman-doc: Add Multi-Arch: foreign.
+    Changes-By: apply-multiarch-hints
+
+  [ Sergio Durigan Junior ]
+  * d/p/0006-Fix-order-of-linking.patch:
+    Adjust linking order for libmemcached{,util}, fixing a build failure.
+    (Closes: #1031450)
+
+ -- Sergio Durigan Junior <sergi...@debian.org>  Wed, 22 Feb 2023 18:50:50 
-0500
+
 gearmand (1.1.19.1+ds-2) unstable; urgency=medium
 
   * Update d/libgearman8.symbols, fix typo in the version
diff --git a/debian/patches/0006-Fix-order-of-linking.patch 
b/debian/patches/0006-Fix-order-of-linking.patch
new file mode 100644
index 0000000..9d1d6ef
--- /dev/null
+++ b/debian/patches/0006-Fix-order-of-linking.patch
@@ -0,0 +1,24 @@
+From: Sergio Durigan Junior <sergi...@debian.org>
+Date: Wed, 22 Feb 2023 18:38:11 -0500
+Subject: Fix linking order of libmemcachedutil
+
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1031450
+Forwarded: yes, https://github.com/gearman/gearmand/pull/365
+Last-Update: 2023-02-22
+---
+ m4/ax_libmemcached.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4/ax_libmemcached.m4 b/m4/ax_libmemcached.m4
+index b28f115..a9caf2e 100644
+--- a/m4/ax_libmemcached.m4
++++ b/m4/ax_libmemcached.m4
+@@ -126,7 +126,7 @@ AC_DEFUN([_ENABLE_LIBMEMCACHED], [
+                LIBMEMCACHED_LIB="-lmemcached"
+                AC_SUBST([LIBMEMCACHED_LIB])
+                AS_IF([test "x$ax_cv_libmemcached_util" = "xyes"], [
+-                     LIBMEMCACHED_UTIL_LIB="-lmemcached -lmemcachedutil"
++                     LIBMEMCACHED_UTIL_LIB="-lmemcachedutil -lmemcached"
+                      AC_SUBST([LIBMEMCACHED_UTIL_LIB])
+                      ])
+                ],[
diff --git a/debian/patches/series b/debian/patches/series
index 12579cd..f991f33 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@ typos.patch
 0002-Add-M-A-support-to-ax_boost_program_options.m4.patch
 0003-Parse-upstream-version-from-debian-changelog-and-not.patch
 disable_vcs.patch
+0006-Fix-order-of-linking.patch

Attachment: signature.asc
Description: PGP signature

Reply via email to