Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 09 Nov 2023 12:00:56 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 274978] emulators/qemu-devel: conflict with sysutils/dtc (libftd, ftd.h)
Message-ID:  <bug-274978-7788-Rr19MSLfrL@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-274978-7788@https.bugs.freebsd.org/bugzilla/>
References:  <bug-274978-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D274978

--- Comment #1 from John Hein <jcfyecrayz@liamekaens.com> ---
@bofh,

Why in ports e6a3abc3c8260427f41eb4e50d57cc1bceb891f7, do you escape the " =
in
CONFIGURE_ARGS (like: --extra-ldflags=3D-L\"${LOCALBASE}/lib\" )?  It seems=
 to
get passed to meson, and ultimately to cc, and the quotes actually are
interpreted as part of the path string.

I made a change to test --enable-fdt=3Dsystem, and got this error from meso=
n (in
build/meson-logs/meson-log.txt):

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Command line: `/usr/bin/cc -m64 -mcx16 '-L"/usr/lib"' '-L"/usr/local/lib"'
-I/z1/local/users/jhein/.nobak/wd/usr/ports/emulators/qemu-devel/work/qemu-=
6c9ae1ce82b65faa3f266fd103729878cf11e07e
-I/usr/local/include -I/usr/local/include/capstone
/z1/local/users/jhein/.nobak/wd/usr/ports/emulators/qemu-devel/work/qemu-6c=
9ae1ce82b65faa3f266fd103729878cf11e07e/build/meson-private/tmpdriw8mlm/test=
file.c
-o
/z1/local/users/jhein/.nobak/wd/usr/ports/emulators/qemu-devel/work/qemu-6c=
9ae1ce82b65faa3f266fd103729878cf11e07e/build/meson-private/tmpdriw8mlm/outp=
ut.exe
-O2 -pipe -fstack-protector-strong -fno-strict-aliasing
'-DPREFIX=3D\""/usr/local\""' -D_FILE_OFFSET_BITS=3D64 -O0
-Werror=3Dimplicit-function-declaration -Wl,--start-group -lfdt -Wl,--end-g=
roup
-Wl,--allow-shlib-undefined -Wl,-rpath=3D/usr/local/lib` -> 1
stderr:
ld: error: unable to find library -lfdt
cc: error: linker command failed with exit code 1 (use -v to see invocation)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Notice that there are literal " marks in -L"/usr/lib" and -L"/usr/local/lib=
" in
the meson log.  That is causing the search for libfdt to fail since the quo=
te
characters are literally included in the path name.

When I remove the \ (i.e., change \" to just ") in
emulators/qemu-devel/Makefile, then the -L/usr/local/lib search works (and =
cc
can find -lfdt).

I'm just wondering what was the reason behind adding the backslash escaped
quoting in -L\"/usr/local/lib\" (and -L\"/usr/lib\" as well).  It is a bit
unusual to see that, so there must have been something specific that drove =
the
addition of the backslash escapes.  Maybe it is to address potential spaces=
 in
LOCALBASE (admittedly that would be tricky to support and get the right quo=
ting
passed through all the layers in play here: the Makefile, configure shell
script, and meson python), but that would not explain the quoting around the
literal /usr/lib.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-274978-7788-Rr19MSLfrL>