From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43630) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVmnQ-0001mL-V7 for qemu-devel@nongnu.org; Wed, 11 Mar 2015 16:00:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YVmnI-0007NZ-0e for qemu-devel@nongnu.org; Wed, 11 Mar 2015 16:00:00 -0400 Received: from [2a03:4000:1::4e2f:c7ac:d] (port=45368 helo=v220110690675601.yourvserver.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVmnH-0007N7-QM for qemu-devel@nongnu.org; Wed, 11 Mar 2015 15:59:51 -0400 Message-ID: <55009EAF.40306@weilnetz.de> Date: Wed, 11 Mar 2015 20:59:43 +0100 From: Stefan Weil MIME-Version: 1.0 References: <1426093841-32765-1-git-send-email-jhindin@daynix.com> In-Reply-To: <1426093841-32765-1-git-send-email-jhindin@daynix.com> Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] windows build: -lssp added to qga-vss.dll libraries list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Joseph Hindin , qemu-devel@nongnu.org Cc: Michael Roth , Tomoki Sekiyama Am 11.03.2015 um 18:10 schrieb Joseph Hindin: > When building qga-bss.dll with 64-bit mingw toolchain v. 4.9.2, the Typo: qga-vss.dll > qga-vss.dll linking fails with unresolved symbols from libssp, > stack protection support, like the following message: > > .../qga/vss-win32/install.cpp:52: undefined reference to `__stack_chk_fail' > > The patch fixes the problem by adding libssp to the qga-vss.dll > libraries list. > > Signed-off-by: Joseph Hindin > --- > qga/vss-win32/Makefile.objs | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/qga/vss-win32/Makefile.objs b/qga/vss-win32/Makefile.objs > index 6a69d50..bd0840d 100644 > --- a/qga/vss-win32/Makefile.objs > +++ b/qga/vss-win32/Makefile.objs > @@ -5,7 +5,7 @@ qga-vss-dll-obj-y += requester.o provider.o install.o > obj-qga-vss-dll-obj-y = $(addprefix $(obj)/, $(qga-vss-dll-obj-y)) > $(obj-qga-vss-dll-obj-y): QEMU_CXXFLAGS = $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wredundant-decls -fstack-protector-all, $(QEMU_CFLAGS)) -Wno-unknown-pragmas -Wno-delete-non-virtual-dtor > > -$(obj)/qga-vss.dll: LDFLAGS = -shared -Wl,--add-stdcall-alias,--enable-stdcall-fixup -lole32 -loleaut32 -lshlwapi -luuid -static > +$(obj)/qga-vss.dll: LDFLAGS = -shared -Wl,--add-stdcall-alias,--enable-stdcall-fixup -lole32 -loleaut32 -lshlwapi -luuid -lssp -static > $(obj)/qga-vss.dll: $(obj-qga-vss-dll-obj-y) $(SRC_PATH)/$(obj)/qga-vss.def > $(call quiet-command,$(CXX) -o $@ $(qga-vss-dll-obj-y) $(SRC_PATH)/qga/vss-win32/qga-vss.def $(CXXFLAGS) $(LDFLAGS)," LINK $(TARGET_DIR)$@") > Adding -lssp works, but adding -fstack-protector-all to the linker flags also works and might be the better solution. -$(obj)/qga-vss.dll: LDFLAGS = -shared -Wl,--add-stdcall-alias,--enable-stdcall-fixup -lole32 -loleaut32 -lshlwapi -luuid -static +$(obj)/qga-vss.dll: LDFLAGS = -fstack-protector-all -shared -Wl,--add-stdcall-alias,--enable-stdcall-fixup -lole32 -loleaut32 -lshlwapi -luuid -static Could you please try that and send an updated patch? Please cc it also to qemu-trivial. Regards Stefan