Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 833498 - dev-libs/libical-3.0.14[berkdb]: i386 architecture of input file `/usr/lib64/GNU.Gettext.dll' is incompatible with i386:x86-64 output
Summary: dev-libs/libical-3.0.14[berkdb]: i386 architecture of input file `/usr/lib64/...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: Andreas Sturmlechner
URL:
Whiteboard:
Keywords: PullRequest
: 834675 (view as bug list)
Depends on:
Blocks:
 
Reported: 2022-02-16 18:25 UTC by Alessandro Barbieri
Modified: 2022-05-18 15:06 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge_info (emerge_info,35.74 KB, text/plain)
2022-02-16 18:25 UTC, Alessandro Barbieri
Details
libical-3.0.14:20220216-182442.log (libical-3.0.14:20220216-182442.log,121.41 KB, text/plain)
2022-02-16 18:26 UTC, Alessandro Barbieri
Details
libical-3.0.14-findberkeley-adjustment.patch (libical-3.0.14-findberkeley-adjustment.patch,673 bytes, patch)
2022-04-14 20:22 UTC, Attila Tóth
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alessandro Barbieri 2022-02-16 18:25:53 UTC
This package fails to build on an unstable system. Attached relevant logs and emerge --info
Comment 1 Alessandro Barbieri 2022-02-16 18:25:58 UTC
Created attachment 765270 [details]
emerge_info

emerge --info
Comment 2 Alessandro Barbieri 2022-02-16 18:26:00 UTC
Created attachment 765271 [details]
libical-3.0.14:20220216-182442.log

build log
Comment 3 Alessandro Barbieri 2022-02-16 18:29:22 UTC
I'm on no-multilib profile and also I have x32 support disabled
This error doesn't happen in version 3.0.12
Comment 4 Alessandro Barbieri 2022-02-16 18:35:20 UTC
-- Found BerkeleyDB: /usr/include (found version "/* This file is auto-generated by multilib-build.eclass
 * as a multilib-friendly wrapper. For the original content,
 * please see the files that are #included below.
 */

#if defined(__x86_64__) /* amd64 */
#	if defined(__ILP32__) /* x32 ABI */
#		error "abi_x86_x32 not supported by the package."
#	else /* 64-bit ABI */
#		include <x86_64-pc-linux-gnu/db6.0/db.h>
#	endif
#elif defined(__i386__) /* plain x86 */
#	error "abi_x86_32 not supported by the package."
#elif defined(__mips__)
#	if(_MIPS_SIM == _ABIN32) /* n32 */
#		error "abi_mips_n32 not supported by the package."
#	elif(_MIPS_SIM == _ABI64) /* n64 */
#		error "abi_mips_n64 not supported by the package."
#	elif(_MIPS_SIM == _ABIO32) /* o32 */
#		error "abi_mips_o32 not supported by the package."
#	endif
#elif defined(__sparc__)
#	if defined(__arch64__)
#		error "abi_sparc_64 not supported by the package."
#	else
#		error "abi_sparc_32 not supported by the package."
#	endif
#elif defined(__s390__)
#	if defined(__s390x__)
#		error "abi_s390_64 not supported by the package."
#	else
#		error "abi_s390_32 not supported by the package."
#	endif
#elif defined(__powerpc__) || defined(__ppc__)
#	if defined(__powerpc64__) || defined(__ppc64__)
#		error "abi_ppc_64 not supported by the package."
#	else
#		error "abi_ppc_32 not supported by the package."
#	endif
#elif defined(SWIG) /* https://sourceforge.net/p/swig/bugs/799/ */
#	include <x86_64-pc-linux-gnu/db6.0/db.h>
#else
#	error "No ABI matched, please report a bug to bugs.gentoo.org"
#endif
./* This file is auto-generated by multilib-build.eclass
 * as a multilib-friendly wrapper. For the original content,
 * please see the files that are #included below.
 */

#if defined(__x86_64__) /* amd64 */
#	if defined(__ILP32__) /* x32 ABI */
#		error "abi_x86_x32 not supported by the package."
#	else /* 64-bit ABI */
#		include <x86_64-pc-linux-gnu/db6.0/db.h>
#	endif
#elif defined(__i386__) /* plain x86 */
#	error "abi_x86_32 not supported by the package."
#elif defined(__mips__)
#	if(_MIPS_SIM == _ABIN32) /* n32 */
#		error "abi_mips_n32 not supported by the package."
#	elif(_MIPS_SIM == _ABI64) /* n64 */
#		error "abi_mips_n64 not supported by the package."
#	elif(_MIPS_SIM == _ABIO32) /* o32 */
#		error "abi_mips_o32 not supported by the package."
#	endif
#elif defined(__sparc__)
#	if defined(__arch64__)
#		error "abi_sparc_64 not supported by the package."
#	else
#		error "abi_sparc_32 not supported by the package."
#	endif
#elif defined(__s390__)
#	if defined(__s390x__)
#		error "abi_s390_64 not supported by the package."
#	else
#		error "abi_s390_32 not supported by the package."
#	endif
#elif defined(__powerpc__) || defined(__ppc__)
#	if defined(__powerpc64__) || defined(__ppc64__)
#		error "abi_ppc_64 not supported by the package."
#	else
#		error "abi_ppc_32 not supported by the package."
#	endif
#elif defined(SWIG) /* https://sourceforge.net/p/swig/bugs/799/ */
#	include <x86_64-pc-linux-gnu/db6.0/db.h>
#else
#	error "No ABI matched, please report a bug to bugs.gentoo.org"
#endif
./* This file is auto-generated by multilib-build.eclass
 * as a multilib-friendly wrapper. For the original content,
 * please see the files that are #included below.
 */

#if defined(__x86_64__) /* amd64 */
#	if defined(__ILP32__) /* x32 ABI */
#		error "abi_x86_x32 not supported by the package."
#	else /* 64-bit ABI */
#		include <x86_64-pc-linux-gnu/db6.0/db.h>
#	endif
#elif defined(__i386__) /* plain x86 */
#	error "abi_x86_32 not supported by the package."
#elif defined(__mips__)
#	if(_MIPS_SIM == _ABIN32) /* n32 */
#		error "abi_mips_n32 not supported by the package."
#	elif(_MIPS_SIM == _ABI64) /* n64 */
#		error "abi_mips_n64 not supported by the package."
#	elif(_MIPS_SIM == _ABIO32) /* o32 */
#		error "abi_mips_o32 not supported by the package."
#	endif
#elif defined(__sparc__)
#	if defined(__arch64__)
#		error "abi_sparc_64 not supported by the package."
#	else
#		error "abi_sparc_32 not supported by the package."
#	endif
#elif defined(__s390__)
#	if defined(__s390x__)
#		error "abi_s390_64 not supported by the package."
#	else
#		error "abi_s390_32 not supported by the package."
#	endif
#elif defined(__powerpc__) || defined(__ppc__)
#	if defined(__powerpc64__) || defined(__ppc64__)
#		error "abi_ppc_64 not supported by the package."
#	else
#		error "abi_ppc_32 not supported by the package."
#	endif
#elif defined(SWIG) /* https://sourceforge.net/p/swig/bugs/799/ */
#	include <x86_64-pc-linux-gnu/db6.0/db.h>
#else
#	error "No ABI matched, please report a bug to bugs.gentoo.org"
#endif
") 
-- Found BerkeleyDB libraries: /usr/lib64/libdb.so;/usr/lib64/libdb_cxx.so;/usr/lib64/GNU.Gettext.dll;/usr/lib64/libdb_stl.so

[...]

[64/107] : && /usr/bin/x86_64-pc-linux-gnu-gcc -fPIC -Os -pipe -march=native -fdiagnostics-color=always -frecord-gcc-switches -fexceptions -Wformat -fstack-clash-protection -fcf-protection=full -fasynchronous-unwind-tables -ftree-vectorize -Wimplicit-function-declaration -Wno-error=implicit-function-declaration -fvisibility=hidden -Wno-deprecated -Wall -Wno-unknown-pragmas -Wextra -Winit-self -Wunused -Wno-div-by-zero -Wundef -Wpointer-arith -Wtype-limits -Wwrite-strings -Werror=return-type -Wunused-but-set-variable -Wlogical-op -Wsizeof-pointer-memaccess -Wformat -Wformat-security -Wredundant-decls -D_XOPEN_SOURCE=500 -D_DEFAULT_SOURCE -D_GNU_SOURCE  -Wl,-O1 -Wl,--as-needed -Wl,--sort-common -shared -Wl,-soname,libicalss.so.3 -o lib/libicalss.so.3.0.14 src/libicalss/CMakeFiles/icalss.dir/icalcalendar.c.o src/libicalss/CMakeFiles/icalss.dir/icalclassify.c.o src/libicalss/CMakeFiles/icalss.dir/icalcluster.c.o src/libicalss/CMakeFiles/icalss.dir/icalgauge.c.o src/libicalss/CMakeFiles/icalss.dir/icaldirset.c.o src/libicalss/CMakeFiles/icalss.dir/icalfileset.c.o src/libicalss/CMakeFiles/icalss.dir/icalset.c.o src/libicalss/CMakeFiles/icalss.dir/icalspanlist.c.o src/libicalss/CMakeFiles/icalss.dir/icalmessage.c.o src/libicalss/CMakeFiles/icalss.dir/icalsslexer.c.o src/libicalss/CMakeFiles/icalss.dir/icalssyacc.c.o src/libicalss/CMakeFiles/icalss.dir/icalbdbset.c.o  -Wl,-rpath,/var/tmp/portage/dev-libs/libical-3.0.14/work/libical-3.0.14_build/lib:  lib/libical.so.3.0.14  -ldb  -ldb_cxx  /usr/lib64/GNU.Gettext.dll  -ldb_stl  -licuuc  -licui18n && :
FAILED: lib/libicalss.so.3.0.14 
: && /usr/bin/x86_64-pc-linux-gnu-gcc -fPIC -Os -pipe -march=native -fdiagnostics-color=always -frecord-gcc-switches -fexceptions -Wformat -fstack-clash-protection -fcf-protection=full -fasynchronous-unwind-tables -ftree-vectorize -Wimplicit-function-declaration -Wno-error=implicit-function-declaration -fvisibility=hidden -Wno-deprecated -Wall -Wno-unknown-pragmas -Wextra -Winit-self -Wunused -Wno-div-by-zero -Wundef -Wpointer-arith -Wtype-limits -Wwrite-strings -Werror=return-type -Wunused-but-set-variable -Wlogical-op -Wsizeof-pointer-memaccess -Wformat -Wformat-security -Wredundant-decls -D_XOPEN_SOURCE=500 -D_DEFAULT_SOURCE -D_GNU_SOURCE  -Wl,-O1 -Wl,--as-needed -Wl,--sort-common -shared -Wl,-soname,libicalss.so.3 -o lib/libicalss.so.3.0.14 src/libicalss/CMakeFiles/icalss.dir/icalcalendar.c.o src/libicalss/CMakeFiles/icalss.dir/icalclassify.c.o src/libicalss/CMakeFiles/icalss.dir/icalcluster.c.o src/libicalss/CMakeFiles/icalss.dir/icalgauge.c.o src/libicalss/CMakeFiles/icalss.dir/icaldirset.c.o src/libicalss/CMakeFiles/icalss.dir/icalfileset.c.o src/libicalss/CMakeFiles/icalss.dir/icalset.c.o src/libicalss/CMakeFiles/icalss.dir/icalspanlist.c.o src/libicalss/CMakeFiles/icalss.dir/icalmessage.c.o src/libicalss/CMakeFiles/icalss.dir/icalsslexer.c.o src/libicalss/CMakeFiles/icalss.dir/icalssyacc.c.o src/libicalss/CMakeFiles/icalss.dir/icalbdbset.c.o  -Wl,-rpath,/var/tmp/portage/dev-libs/libical-3.0.14/work/libical-3.0.14_build/lib:  lib/libical.so.3.0.14  -ldb  -ldb_cxx  /usr/lib64/GNU.Gettext.dll  -ldb_stl  -licuuc  -licui18n && :
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: i386 architecture of input file `/usr/lib64/GNU.Gettext.dll' is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: lib/libicalss.so.3.0.14: unable to sort relocs - they are of an unknown size
collect2: error: ld returned 1 exit status

Obviously  /usr/lib64/GNU.Gettext.dll doesn't exist
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-02-17 13:38:14 UTC
You're going to need to do some digging if possible to find where it's picking up the DLL from.
Comment 6 Jason Lynch 2022-02-17 17:59:14 UTC
This is a bit out of my element, since I know nothing about this package or its dependencies, but the build failure has been annoying me for a few days now.

It seems to be related to the change from FindBDB to FindBerkeleyDB in 3.0.13. The module hard codes a read of /usr/include/db.dh searching for the version of the package to add to its find_library search. Since the installed db.h is a wrapper, it doesn't find what it's looking for, and instead treats the entire contents of db.h as the version.

Passing the entire contents of that file as part of find_library call does not lead to good things.

Changing the read directly in the cmake module to /usr/include/x86_64-pc-linux-gnu/db6.0/db.h resulted in the build working on my machine, but clearly that's not a generic solution.
Comment 7 Jason Lynch 2022-02-17 19:05:15 UTC
(In reply to Jason Lynch from comment #6)
> It seems to be related to the change from FindBDB to FindBerkeleyDB in
> 3.0.13. The module hard codes a read of /usr/include/db.dh searching for the
> version of the package to add to its find_library search. Since the
> installed db.h is a wrapper, it doesn't find what it's looking for, and
> instead treats the entire contents of db.h as the version.

Just to be clear, it doesn't actually hard code "/usr/include/db.h", but instead db.h in the directory returned by find_path searching for db.h (which finds the /usr/include/db.h file).
Comment 9 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-02-20 03:32:39 UTC
Not necessarily related but possibly: https://github.com/libical/libical/issues/545
Comment 10 Andreas Sturmlechner gentoo-dev 2022-03-07 08:25:03 UTC
*** Bug 834675 has been marked as a duplicate of this bug. ***
Comment 11 Attila Tóth 2022-04-14 20:22:02 UTC
Created attachment 770786 [details, diff]
libical-3.0.14-findberkeley-adjustment.patch

Now we are getting somewhere. Here is a workaround for the problem.
Comment 12 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-04-15 06:36:14 UTC
Out of interest, is anyone hitting this actually using libical's berkdb support?
Comment 13 Attila Tóth 2022-04-16 07:05:53 UTC
(In reply to Sam James from comment #12)
> Out of interest, is anyone hitting this actually using libical's berkdb
> support?

I for one. Patch works for me. If the same cmake module appears elsewhere, that would create other candidates for this problem.
Comment 14 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-04-16 07:10:31 UTC
(In reply to Attila Tóth from comment #13)
> (In reply to Sam James from comment #12)
> > Out of interest, is anyone hitting this actually using libical's berkdb
> > support?
> 
> I for one. Patch works for me. If the same cmake module appears elsewhere,
> that would create other candidates for this problem.

I'm asking because we're looking at dumping berkdb anyway (bug 837629 and the news item mentioned there).

I don't doubt it works for you, just wondering how much effort to put into a generic patch for this given it's deprecated.
Comment 15 Attila Tóth 2022-04-16 07:13:42 UTC
(In reply to Sam James from comment #14)
> (In reply to Attila Tóth from comment #13)
> > (In reply to Sam James from comment #12)
> > > Out of interest, is anyone hitting this actually using libical's berkdb
> > > support?
> > 
> > I for one. Patch works for me. If the same cmake module appears elsewhere,
> > that would create other candidates for this problem.
> 
> I'm asking because we're looking at dumping berkdb anyway (bug 837629 and
> the news item mentioned there).
> 
> I don't doubt it works for you, just wondering how much effort to put into a
> generic patch for this given it's deprecated.

This functionality is not crucial for me. Dropping it would not cause any harm on my behalf.
Comment 16 Larry the Git Cow gentoo-dev 2022-04-19 15:05:13 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c3d116714ea660c4e4e0eab01f9c699bd71ef704

commit c3d116714ea660c4e4e0eab01f9c699bd71ef704
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2022-04-19 13:14:21 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2022-04-19 15:05:06 +0000

    dev-libs/libical: drop berkdb support
    
    Fails to build and we're looking at dropping berkdb support
    as much as possible overall in Gentoo anyway.
    
    Closes: https://bugs.gentoo.org/833498
    Signed-off-by: Sam James <sam@gentoo.org>
    Closes: https://github.com/gentoo/gentoo/pull/25105
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-libs/libical/libical-3.0.14-r1.ebuild | 117 ++++++++++++++++++++++++++++++
 1 file changed, 117 insertions(+)
Comment 17 Larry the Git Cow gentoo-dev 2022-05-18 15:06:26 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e7db9509ddd953cc27281b41786c3fcb1a67160e

commit e7db9509ddd953cc27281b41786c3fcb1a67160e
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2022-05-18 15:01:20 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2022-05-18 15:05:56 +0000

    dev-libs/libical: Drop obsolete 3.0.14 (r0) broken with IUSE=berkdb
    
    Bug: https://bugs.gentoo.org/833498
    Package-Manager: Portage-3.0.30, Repoman-3.0.3
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 dev-libs/libical/libical-3.0.14.ebuild | 114 ---------------------------------
 1 file changed, 114 deletions(-)