[Bug 40330] New: Build fails with AddressSanitizer.
wine-bugs at winehq.org
wine-bugs at winehq.org
Fri Mar 18 19:38:31 CDT 2016
https://bugs.winehq.org/show_bug.cgi?id=40330
Bug ID: 40330
Summary: Build fails with AddressSanitizer.
Product: Wine
Version: 1.9.5
Hardware: x86
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs at winehq.org
Reporter: adam.buchbinder at gmail.com
Distribution: ---
https://wiki.winehq.org/Building_Wine#Memory_.26_Address_Checkers describes
using AddressSanitizer with Wine. It seems not to compile. I'm using:
$ gcc --version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4
A short excerpt:
$ ./configure --enable-win64 CFLAGS="-g -O1 -fsanitize=address"
...
$ make
...
make[1]: Entering directory `/home/abuchbinder/software/wine/tools'
LC_ALL=C sed -e 's, at bindir\@,/usr/local/bin,g' -e
's, at dlldir\@,/usr/local/lib64/wine,g' -e 's, at PACKAGE_STRING\@,Wine 1.9.6,g' -e
's, at PACKAGE_VERSION\@,1.9.6,g' wineapploader.in >wineapploader || (rm -f
wineapploader && false)
gcc -m64 -c -o make_xftmpl.o make_xftmpl.c -I. -I../include -D__WINESRC__ -Wall
-pipe -fno-strict-aliasing \
-Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers
-Wstrict-prototypes -Wtype-limits \
-Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op
-gdwarf-2 \
-gstrict-dwarf -g -O1 -fsanitize=address -U_FORTIFY_SOURCE
-D_FORTIFY_SOURCE=0
gcc -m64 -o make_xftmpl make_xftmpl.o ../libs/port/libwine_port.a
make_xftmpl.o: In function `exit_on_signal':
/home/abuchbinder/software/wine/tools/make_xftmpl.c:413: undefined reference to
`__asan_handle_no_return'
make_xftmpl.o: In function `fatal_error':
/home/abuchbinder/software/wine/tools/make_xftmpl.c:127: undefined reference to
`__asan_handle_no_return'
...
and so on. The problem here is that the command:
gcc -m64 -o make_xftmpl make_xftmpl.o ../libs/port/libwine_port.a
should be:
gcc -m64 -o make_xftmpl make_xftmpl.o ../libs/port/libwine_port.a
-fsanitize=address
I can work around this in part with:
$ find . -name Makefile|xargs perl -pi -e 's/^(CC = gcc -m64)$/\1
-fsanitize=address/'
... but that's probably not the right way to do this, and it only works for
tools/ and not dlls/ anyway. My Makefile-fu is not strong; I'm sure I'm missing
something about how the configuration system works, but I'm equally sure that
this is something worth reporting even if I'm not entirely certain what's going
on.
--
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