commit:     8aeeba04d1e08aa74cf50e402eb37477e402ec33
Author:     Jeremi Piotrowski <jpiotrowski <AT> microsoft <DOT> com>
AuthorDate: Thu Mar 24 11:17:22 2022 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Mon Mar 28 19:31:34 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8aeeba04

sys-libs/liburing: pass --cxx paramter to configure

Provide the correct value to --cxx to fix cross-compilation. liburing uses the
value of the cxx variable for linking. This happens to work for native builds
but breaks when cross-compiling, as evidenced by the below output (from
Flatcar):

>>> Configuring source in 
>>> /build/arm64-usr/var/tmp/portage/sys-libs/liburing-2.1-r1/work/liburing-2.1 
>>> ...
 * .arm64: running multilib-minimal_abi_src_configure
prefix                        /usr
includedir                    /usr/include
libdir                        /usr/lib64
libdevdir                     /usr/lib64
relativelibdir
mandir                        /usr/share/man
datadir                       /usr/share
stringop_overflow             yes
array_bounds                  yes
__kernel_rwf_t                yes
__kernel_timespec             yes
open_how                      no
statx                         yes
C++                           yes
has_ucontext                  yes
CC                            aarch64-cros-linux-gnu-gcc
CXX                           g++

...

aarch64-cros-linux-gnu-gcc -D_GNU_SOURCE -D__SANE_USERSPACE_TYPES__ 
-I../src/include/ -include ../config-host.h -O2 -pipe -mtune=generic -g 
-D_GNU_SOURCE -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -L../src/ 
-o statx statx.c helpers.o -luring -Wstringop-overflow=0 -Warray-bounds=0
g++ -D_GNU_SOURCE -D__SANE_USERSPACE_TYPES__ -I../src/include/ -include 
../config-host.h -O2 -pipe -mtune=generic -g -O2 -pipe -mtune=generic -g 
-D_GNU_SOURCE -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -L../src/ 
-std=c++11 -o sq-full-cpp sq-full-cpp.cc helpers.o -luring 
-Wstringop-overflow=0 -Warray-bounds=0
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: 
helpers.o: Relocations in generic ELF (EM: 183)
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: 
helpers.o: Relocations in generic ELF (EM: 183)
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: 
helpers.o: Relocations in generic ELF (EM: 183)
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: 
helpers.o: Relocations in generic ELF (EM: 183)
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: 
helpers.o: Relocations in generic ELF (EM: 183)
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: 
helpers.o: Relocations in generic ELF (EM: 183)
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: 
helpers.o: error adding symbols: file in wrong format
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:165: sq-full-cpp] Error 1
make[1]: *** Waiting for unfinished jobs....

Bug: https://bugs.gentoo.org/836316
Signed-off-by: Jeremi Piotrowski <jpiotrowski <AT> microsoft.com>
Closes: https://github.com/gentoo/gentoo/pull/24733
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 sys-libs/liburing/liburing-2.1-r1.ebuild | 1 +
 sys-libs/liburing/liburing-2.1-r2.ebuild | 1 +
 sys-libs/liburing/liburing-9999.ebuild   | 1 +
 3 files changed, 3 insertions(+)

diff --git a/sys-libs/liburing/liburing-2.1-r1.ebuild 
b/sys-libs/liburing/liburing-2.1-r1.ebuild
index ae14b067cbb3..ddf39035944f 100644
--- a/sys-libs/liburing/liburing-2.1-r1.ebuild
+++ b/sys-libs/liburing/liburing-2.1-r1.ebuild
@@ -45,6 +45,7 @@ multilib_src_configure() {
                --libdevdir="${EPREFIX}/usr/$(get_libdir)"
                --mandir="${EPREFIX}/usr/share/man"
                --cc="$(tc-getCC)"
+               --cxx="$(tc-getCXX)"
        )
        # No autotools configure! "econf" will fail.
        TMPDIR="${T}" ./configure "${myconf[@]}"

diff --git a/sys-libs/liburing/liburing-2.1-r2.ebuild 
b/sys-libs/liburing/liburing-2.1-r2.ebuild
index c65e7baf841c..cb5271810e69 100644
--- a/sys-libs/liburing/liburing-2.1-r2.ebuild
+++ b/sys-libs/liburing/liburing-2.1-r2.ebuild
@@ -51,6 +51,7 @@ multilib_src_configure() {
                --libdevdir="${EPREFIX}/usr/$(get_libdir)"
                --mandir="${EPREFIX}/usr/share/man"
                --cc="$(tc-getCC)"
+               --cxx="$(tc-getCXX)"
        )
        # No autotools configure! "econf" will fail.
        TMPDIR="${T}" ./configure "${myconf[@]}"

diff --git a/sys-libs/liburing/liburing-9999.ebuild 
b/sys-libs/liburing/liburing-9999.ebuild
index c7427bfe9a0d..87e93eac4554 100644
--- a/sys-libs/liburing/liburing-9999.ebuild
+++ b/sys-libs/liburing/liburing-9999.ebuild
@@ -40,6 +40,7 @@ multilib_src_configure() {
                --libdevdir="${EPREFIX}/usr/$(get_libdir)"
                --mandir="${EPREFIX}/usr/share/man"
                --cc="$(tc-getCC)"
+               --cxx="$(tc-getCXX)"
        )
        # No autotools configure! "econf" will fail.
        TMPDIR="${T}" ./configure "${myconf[@]}"

Reply via email to