qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
diff for duplicates of <87h7ugn6e4.fsf@linaro.org>

diff --git a/a/1.txt b/N1/1.txt
index 997dca5..ccf0a13 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,4 +1,3 @@
-
 Emilio G. Cota <1885827@bugs.launchpad.net> writes:
 
 > You should then find out why libqemu_plugin.dll.a is not working. It is
@@ -23,4 +22,98 @@ patch.
 Thanks.
 
 -- 
-Alex Bennée
\ No newline at end of file
+Alex Bennée
+
+-- 
+You received this bug notification because you are a member of qemu-
+devel-ml, which is subscribed to QEMU.
+https://bugs.launchpad.net/bugs/1885827
+
+Title:
+  building plugin failed on Windows with mingw
+
+Status in QEMU:
+  New
+
+Bug description:
+  I want to build QEMU 4.2.0's plugin module on Windows 7/10 with Mingw, but the building process faild.
+   
+  The step I follow is listed below:
+  1. create "dsp_build" diretory under source file folder
+
+  2.  change directory to dsp_build , and run ../configure --target-list=dsp-softmmu --cross-prefix=x86_64-w64-mingw32- --enable-gtk --enable-sdl --enable-debug --enable-plugins
+  3. build qemu project
+  4. switch dir to /dsp_build, make -C tests/plugin, yeilds error: 
+     CC      bb.o
+   D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:17:24: error: variable 'qemu_plugin_version' definition is marked dllimport
+     17 | QEMU_PLUGIN_EXPORT int qemu_plugin_version = QEMU_PLUGIN_VERSION;
+        |                        ^~~~~~~~~~~~~~~~~~~
+   D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:17:24: warning: 'qemu_plugin_version' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
+   D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c: In function 'vcpu_tb_exec':
+   D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:33:29: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
+     33 |     unsigned long n_insns = (unsigned long)udata;
+        |                             ^
+   D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c: In function 'vcpu_tb_trans':
+   D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:51:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
+     51 |                                              (void *)n_insns);
+
+  5.  Then , I modified the QEMU_flags and the compilation command
+  arguments($(CC) ..) in  the  makefile :
+
+                  BUILD_DIR := $(CURDIR)/../..
+
+  		include $(BUILD_DIR)/config-host.mak
+  		include $(SRC_PATH)/rules.mak
+
+                  $(call set-vpath, $(SRC_PATH)/tests/plugin)
+
+  		NAMES :=
+  		NAMES += bb
+  		NAMES += empty
+  		NAMES += insn
+  		NAMES += mem
+  		NAMES += hotblocks
+  		NAMES += howvec
+  		NAMES += hotpages
+
+                  SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))
+
+  		QEMU_CFLAGS += -fPIC	-DBUILDING_DLL  		#added  -DBUILDING_DLL
+  		QEMU_CFLAGS += -I$(SRC_PATH)/include/qemu
+
+                  all: $(SONAMES)
+
+  		lib%.so: %.o
+  			$(CC) -fPIC -shared -o $@ $^ $(LDLIBS) -L /c/msys64/mingw64/lib/ -lglib-2.0
+  			# original cmd: $(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDLIBS)
+
+  		clean:
+  			rm -f *.o *.so *.d
+  			rm -Rf .libs
+
+                  .PHONY: all clean
+
+  6.  Executing make yeilds:
+
+  make: enter   “/d/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/build_dsp/tests/plugin”
+    CC      bb.o
+  x86_64-w64-mingw32-gcc -fPIC -shared -o libbb.so bb.o  -L /c/msys64/mingw64/lib/ -lglib-2.0
+  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: bb.o: in function `plugin_exit':
+  D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:28: undefined reference to `qemu_plugin_outs'
+  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:29: undefined reference to `__stack_chk_fail'
+  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: bb.o: in function `vcpu_tb_trans':
+  D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:41: undefined reference to `qemu_plugin_tb_n_insns'
+  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:44: undefined reference to `qemu_plugin_register_vcpu_tb_exec_inline'
+  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:46: undefined reference to `qemu_plugin_register_vcpu_tb_exec_inline'
+  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:49: undefined reference to `qemu_plugin_register_vcpu_tb_exec_cb'
+  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: bb.o: in function `qemu_plugin_install':
+  D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:63: undefined reference to `qemu_plugin_register_vcpu_tb_trans_cb'
+  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:64: undefined reference to `qemu_plugin_register_atexit_cb'
+  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: bb.o:bb.c:(.rdata$.refptr.__stack_chk_guard[.refptr.__stack_chk_guard]+0x0): undefined reference to `__stack_chk_guard'
+  collect2.exe: error: ld returned 1 exit status
+
+     It looks like linking problem(fail to link functions defined in api.c, core.c...), but I have no idea what goes wrong. If I mannualy add api.o, core.o in the compilation command, still get error like undefined reference to '__stack_chk_guard'. 
+     My collegue can build 4.2.0  plugins on Ubuntu Linux without any problem.
+
+To manage notifications about this bug go to:
+https://bugs.launchpad.net/qemu/+bug/1885827/+subscriptions
\ No newline at end of file
diff --git a/a/content_digest b/N1/content_digest
index dfdc256..804ba34 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -5,19 +5,16 @@
   "ref\000159426310588.27029.9451813776430828516.malone\@gac.canonical.com\0"
 ]
 [
-  "From\0Alex Benn\303\251e <alex.bennee\@linaro.org>\0"
+  "From\0Alex Benn\303\251e <1885827\@bugs.launchpad.net>\0"
 ]
 [
   "Subject\0Re: [Bug 1885827] Re: building plugin failed on Windows with mingw\0"
 ]
 [
-  "Date\0Thu, 09 Jul 2020 14:51:31 +0100\0"
+  "Date\0Thu, 09 Jul 2020 13:51:31 -0000\0"
 ]
 [
-  "To\0Bug 1885827 <1885827\@bugs.launchpad.net>\0"
-]
-[
-  "Cc\0qemu-devel\@nongnu.org\0"
+  "To\0qemu-devel\@nongnu.org\0"
 ]
 [
   "\0000:1\0"
@@ -26,7 +23,6 @@
   "b\0"
 ]
 [
-  "\n",
   "Emilio G. Cota <1885827\@bugs.launchpad.net> writes:\n",
   "\n",
   "> You should then find out why libqemu_plugin.dll.a is not working. It is\n",
@@ -51,7 +47,101 @@
   "Thanks.\n",
   "\n",
   "-- \n",
-  "Alex Benn\303\251e"
+  "Alex Benn\303\251e\n",
+  "\n",
+  "-- \n",
+  "You received this bug notification because you are a member of qemu-\n",
+  "devel-ml, which is subscribed to QEMU.\n",
+  "https://bugs.launchpad.net/bugs/1885827\n",
+  "\n",
+  "Title:\n",
+  "  building plugin failed on Windows with mingw\n",
+  "\n",
+  "Status in QEMU:\n",
+  "  New\n",
+  "\n",
+  "Bug description:\n",
+  "  I want to build QEMU 4.2.0's plugin module on Windows 7/10 with Mingw, but the building process faild.\n",
+  "   \n",
+  "  The step I follow is listed below:\n",
+  "  1. create \"dsp_build\" diretory under source file folder\n",
+  "\n",
+  "  2.  change directory to dsp_build , and run ../configure --target-list=dsp-softmmu --cross-prefix=x86_64-w64-mingw32- --enable-gtk --enable-sdl --enable-debug --enable-plugins\n",
+  "  3. build qemu project\n",
+  "  4. switch dir to /dsp_build, make -C tests/plugin, yeilds error: \n",
+  "     CC      bb.o\n",
+  "   D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:17:24: error: variable 'qemu_plugin_version' definition is marked dllimport\n",
+  "     17 | QEMU_PLUGIN_EXPORT int qemu_plugin_version = QEMU_PLUGIN_VERSION;\n",
+  "        |                        ^~~~~~~~~~~~~~~~~~~\n",
+  "   D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:17:24: warning: 'qemu_plugin_version' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]\n",
+  "   D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c: In function 'vcpu_tb_exec':\n",
+  "   D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:33:29: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]\n",
+  "     33 |     unsigned long n_insns = (unsigned long)udata;\n",
+  "        |                             ^\n",
+  "   D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c: In function 'vcpu_tb_trans':\n",
+  "   D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:51:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]\n",
+  "     51 |                                              (void *)n_insns);\n",
+  "\n",
+  "  5.  Then , I modified the QEMU_flags and the compilation command\n",
+  "  arguments(\$(CC) ..) in  the  makefile :\n",
+  "\n",
+  "                  BUILD_DIR := \$(CURDIR)/../..\n",
+  "\n",
+  "  \t\tinclude \$(BUILD_DIR)/config-host.mak\n",
+  "  \t\tinclude \$(SRC_PATH)/rules.mak\n",
+  "\n",
+  "                  \$(call set-vpath, \$(SRC_PATH)/tests/plugin)\n",
+  "\n",
+  "  \t\tNAMES :=\n",
+  "  \t\tNAMES += bb\n",
+  "  \t\tNAMES += empty\n",
+  "  \t\tNAMES += insn\n",
+  "  \t\tNAMES += mem\n",
+  "  \t\tNAMES += hotblocks\n",
+  "  \t\tNAMES += howvec\n",
+  "  \t\tNAMES += hotpages\n",
+  "\n",
+  "                  SONAMES := \$(addsuffix .so,\$(addprefix lib,\$(NAMES)))\n",
+  "\n",
+  "  \t\tQEMU_CFLAGS += -fPIC\t-DBUILDING_DLL  \t\t#added  -DBUILDING_DLL\n",
+  "  \t\tQEMU_CFLAGS += -I\$(SRC_PATH)/include/qemu\n",
+  "\n",
+  "                  all: \$(SONAMES)\n",
+  "\n",
+  "  \t\tlib%.so: %.o\n",
+  "  \t\t\t\$(CC) -fPIC -shared -o \$\@ \$^ \$(LDLIBS) -L /c/msys64/mingw64/lib/ -lglib-2.0\n",
+  "  \t\t\t# original cmd: \$(CC) -shared -Wl,-soname,\$\@ -o \$\@ \$^ \$(LDLIBS)\n",
+  "\n",
+  "  \t\tclean:\n",
+  "  \t\t\trm -f *.o *.so *.d\n",
+  "  \t\t\trm -Rf .libs\n",
+  "\n",
+  "                  .PHONY: all clean\n",
+  "\n",
+  "  6.  Executing make yeilds:\n",
+  "\n",
+  "  make: enter   \342\200\234/d/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/build_dsp/tests/plugin\342\200\235\n",
+  "    CC      bb.o\n",
+  "  x86_64-w64-mingw32-gcc -fPIC -shared -o libbb.so bb.o  -L /c/msys64/mingw64/lib/ -lglib-2.0\n",
+  "  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: bb.o: in function `plugin_exit':\n",
+  "  D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:28: undefined reference to `qemu_plugin_outs'\n",
+  "  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:29: undefined reference to `__stack_chk_fail'\n",
+  "  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: bb.o: in function `vcpu_tb_trans':\n",
+  "  D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:41: undefined reference to `qemu_plugin_tb_n_insns'\n",
+  "  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:44: undefined reference to `qemu_plugin_register_vcpu_tb_exec_inline'\n",
+  "  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:46: undefined reference to `qemu_plugin_register_vcpu_tb_exec_inline'\n",
+  "  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:49: undefined reference to `qemu_plugin_register_vcpu_tb_exec_cb'\n",
+  "  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: bb.o: in function `qemu_plugin_install':\n",
+  "  D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:63: undefined reference to `qemu_plugin_register_vcpu_tb_trans_cb'\n",
+  "  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/emu_devl/qemu_src/qemu-sr-dsp-a/qemu_tidsp_c3x/tests/plugin/bb.c:64: undefined reference to `qemu_plugin_register_atexit_cb'\n",
+  "  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: bb.o:bb.c:(.rdata\$.refptr.__stack_chk_guard[.refptr.__stack_chk_guard]+0x0): undefined reference to `__stack_chk_guard'\n",
+  "  collect2.exe: error: ld returned 1 exit status\n",
+  "\n",
+  "     It looks like linking problem(fail to link functions defined in api.c, core.c...), but I have no idea what goes wrong. If I mannualy add api.o, core.o in the compilation command, still get error like undefined reference to '__stack_chk_guard'. \n",
+  "     My collegue can build 4.2.0  plugins on Ubuntu Linux without any problem.\n",
+  "\n",
+  "To manage notifications about this bug go to:\n",
+  "https://bugs.launchpad.net/qemu/+bug/1885827/+subscriptions"
 ]
 
-7424d93d7518d3fd5ff1349bccfc109b7474ba06c0ca24124b56f75afec3b69b
+0dd11be1cd1308d9ecc2cc21775daeeb26bd8b219b9634782618136a466610c1

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).