[Bug 51413] New: winegcc 6.12 regression: options with multiple '=' are not handled correctly
WineHQ Bugzilla
wine-bugs at winehq.org
Tue Jul 6 03:27:28 CDT 2021
https://bugs.winehq.org/show_bug.cgi?id=51413
Bug ID: 51413
Summary: winegcc 6.12 regression: options with multiple '=' are
not handled correctly
Product: Wine
Version: 6.12
Hardware: x86-64
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: tools
Assignee: wine-bugs at winehq.org
Reporter: slyich at gmail.com
Distribution: ---
Gentoo passes -Wl,--defsym=__gentoo_check_ldflags__=0 as LDFLAGS to every
linked target as a capary for $LDFLAGS handling. In 6.11 it used to work fine.
6.12 fails the build as:
$ tools/winegcc/winegcc -o dlls/acledit/acledit.dll.so --wine-objdir . -fno-PIC
-Wl,-z,notext -fasynchronous-unwind-tables -shared
/tmp/portage/app-emulation/wine-vanilla-6.12/work/wine-6.12/dlls/acledit/acledit.spec
-mno-cygwin -Wb,--prefer-native dlls/acledit/main.o
dlls/ucrtbase/libucrtbase.a -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu
-Wl,--defsym=__gentoo_check_ldflags__=0
/usr/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../x86_64-pc-linux-gnu/bin/ld:--defsym:0:
syntax error
collect2: error: ld returned 1 exit status
winegcc: /usr/lib/ccache/bin/x86_64-pc-linux-gnu-gcc failed
If I run already installed 6.11 winegcc it works as expected:
$ winegcc -o dlls/acledit/acledit.dll.so --wine-objdir . -fno-PIC -Wl,-z,notext
-fasynchronous-unwind-tables -shared
/tmp/portage/app-emulation/wine-vanilla-6.12/work/wine-6.12/dlls/acledit/acledit.spec
-mno-cygwin -Wb,--prefer-native dlls/acledit/main.o
dlls/ucrtbase/libucrtbase.a -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu
-Wl,--defsym=__gentoo_check_ldflags__=0 -m32
<ok>
$ nm -D dlls/acledit/acledit.dll.so | fgrep gentoo
00000000 A __gentoo_check_ldflags__
I suspect regression cropped up in:
commit fcda0afdd429e11d75dc61f628e40a6c8973ce44
Author: Connor Abbott <cwabbott0 at gmail.com>
Date: Fri Jul 2 11:48:01 2021 +0200
winegcc: Support -Wl,foo=... style linker options.
In particular meson uses -Wl,--out-implib=...
Signed-off-by: Connor Abbott <cwabbott0 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
index fd2d2c2a794..8c1e0d088ac 100644
--- a/tools/winegcc/winegcc.c
+++ b/tools/winegcc/winegcc.c
@@ -1982,7 +1982,7 @@ int main(int argc, char **argv)
if (strncmp("-Wl,", opts.args->base[i], 4) == 0)
{
unsigned int j;
- strarray* Wl = strarray_fromstring(opts.args->base[i]
+ 4, ",");
+ strarray* Wl = strarray_fromstring(opts.args->base[i]
+ 4, ",=");
for (j = 0; j < Wl->size; j++)
{
if (!strcmp(Wl->base[j], "--image-base") && j <
Wl->size - 1)
which might not handle multiple '=' correctly.
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list