Hello,
the tmarshal tests broke cross compiling. Compiling fails for me with
i586-mingw32msvc-gcc -c -I../../../../wine-git/dlls/oleaut32/tests -I. -I../../../../wine-git/include -I../../../include -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -g -O2 -o tmarshal.cross.o ../../../../wine-git/dlls/oleaut32/tests/tmarshal.c ../../../../wine-git/dlls/oleaut32/tests/tmarshal.c:1: warning: -fPIC ignored for target (all code is position independent) ../../../../wine-git/dlls/oleaut32/tests/tmarshal.c:28:22: tmarshal.h: Datei oder Verzeichnis nicht gefunden ../../../../wine-git/dlls/oleaut32/tests/tmarshal.c:218: warning: type defaults to `int' in declaration of `IWidgetVtbl' ../../../../wine-git/dlls/oleaut32/tests/tmarshal.c:218: warning: no semicolon at end of struct or union ... make[2]: *** [tmarshal.cross.o] Fehler 1 make[2]: Leaving directory `/usr/src/wine/wine-mingw/dlls/oleaut32/tests' make[1]: *** [oleaut32/tests/__crosstest__] Fehler 2 make[1]: Leaving directory `/usr/src/wine/wine-mingw/dlls' make: *** [dlls/__crosstest__] Fehler 2
The problem is related to the fact that i'm doing out of tree builds. Therefore i have three directories: 1. wine-git : the source tree 2. wine-build : the normal build (unix) 3. wine-mingw : the cross compile build
The missing tmarshal.h file is in wine-build/dlls/oleauth32/tests
Bye Stefan
Stefan Leichter wrote:
Hello,
the tmarshal tests broke cross compiling. Compiling fails for me with
i586-mingw32msvc-gcc -c -I../../../../wine-git/dlls/oleaut32/tests -I. -I../../../../wine-git/include -I../../../include -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -g -O2 -o tmarshal.cross.o ../../../../wine-git/dlls/oleaut32/tests/tmarshal.c ../../../../wine-git/dlls/oleaut32/tests/tmarshal.c:1: warning: -fPIC ignored for target (all code is position independent) ../../../../wine-git/dlls/oleaut32/tests/tmarshal.c:28:22: tmarshal.h: Datei oder Verzeichnis nicht gefunden ../../../../wine-git/dlls/oleaut32/tests/tmarshal.c:218: warning: type defaults to `int' in declaration of `IWidgetVtbl' ../../../../wine-git/dlls/oleaut32/tests/tmarshal.c:218: warning: no semicolon at end of struct or union ... make[2]: *** [tmarshal.cross.o] Fehler 1 make[2]: Leaving directory `/usr/src/wine/wine-mingw/dlls/oleaut32/tests' make[1]: *** [oleaut32/tests/__crosstest__] Fehler 2 make[1]: Leaving directory `/usr/src/wine/wine-mingw/dlls' make: *** [dlls/__crosstest__] Fehler 2
The problem is related to the fact that i'm doing out of tree builds. Therefore i have three directories:
- wine-git : the source tree
- wine-build : the normal build (unix)
- wine-mingw : the cross compile build
The missing tmarshal.h file is in wine-build/dlls/oleauth32/tests
Bye Stefan
Hi,
as far as I can see it's not the fact that tmarshal.h is not there. It's the fact it's not build, as the .idl files are there (on a clean Wine it's not in the tests directory as well). On a 'normal' Wine-tree you will see it being built:
../../../tools/widl/widl -I. -I. -I../../../include -I../../../include -h -H tmarshal.h tmarshal.idl
Cheers,
Paul.
On Thursday 25 January 2007 07:51, Paul Vriens wrote:
as far as I can see it's not the fact that tmarshal.h is not there. It's the fact it's not build, as the .idl files are there (on a clean Wine it's not in the tests directory as well). On a 'normal' Wine-tree you will see it being built:
../../../tools/widl/widl -I. -I. -I../../../include -I../../../include -h -H tmarshal.h tmarshal.idl
Hi,
I pointed out that cross compilation doesn't work for tmarshal test here: http://www.winehq.org/pipermail/wine-patches/2007-January/035157.html . It's happen because build system doesn't generate appropriate files.
You may build test by hand with following commands:
make test (this generates tmarshal.h, tmarshal_i.c, tmarshal.tlb, tmarshal.res)
i586-mingw32msvc-gcc -c -I. -I. -I../../../include -I../../../include -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -g -O2 -o tmarshal_i.cross.o tmarshal_i.c
i586-mingw32msvc-gcc olefont.cross.o olepicture.cross.o safearray.cross.o tmarshal.cross.o typelib.cross.o usrmarshal.cross.o varformat.cross.o vartest.cross.o vartype.cross.o tmarshal.res.cross.o testlist.cross.o tmarshal_i.cross.o -o oleaut32_crosstest.exe -loleaut32 -lole32 -lshlwapi -lrpcrt4 -luser32 -lgdi32 -ladvapi32 -lkernel32 -luuid -luser32
Stefan Leichter Stefan.Leichter@camline.com writes:
The problem is related to the fact that i'm doing out of tree builds. Therefore i have three directories:
- wine-git : the source tree
- wine-build : the normal build (unix)
- wine-mingw : the cross compile build
If you are doing a cross-compile build then you don't need to use crosstest, a simple make will build the tests as PE binaries. "make crosstest" is meant for people who want to quickly build a PE test inside the normal tree, without the complexity of a separate build tree.
Alexandre Julliard schrieb:
Stefan Leichter Stefan.Leichter@camline.com writes:
The problem is related to the fact that i'm doing out of tree builds. Therefore i have three directories:
- wine-git : the source tree
- wine-build : the normal build (unix)
- wine-mingw : the cross compile build
If you are doing a cross-compile build then you don't need to use crosstest, a simple make will build the tests as PE binaries. "make crosstest" is meant for people who want to quickly build a PE test inside the normal tree, without the complexity of a separate build tree.
What parameters do i need to pass to configure for this case. If i do it like Paul Millar descripted it
../wine-git/configure --host=i586-mingw32msvc \ -with-wine-tools=../wine-build
in http://www.winehq.org/pipermail/wine-devel/2006-December/053069.html get get the same problem (no tmarshal.h) as posted in my first mail.
-- Thanks Stefan
Stefan Leichter wrote:
Alexandre Julliard schrieb:
Stefan Leichter Stefan.Leichter@camline.com writes:
The problem is related to the fact that i'm doing out of tree builds. Therefore i have three directories:
- wine-git : the source tree
- wine-build : the normal build (unix)
- wine-mingw : the cross compile build
If you are doing a cross-compile build then you don't need to use crosstest, a simple make will build the tests as PE binaries. "make crosstest" is meant for people who want to quickly build a PE test inside the normal tree, without the complexity of a separate build tree.
What parameters do i need to pass to configure for this case. If i do it like Paul Millar descripted it
../wine-git/configure --host=i586-mingw32msvc \ -with-wine-tools=../wine-build
in http://www.winehq.org/pipermail/wine-devel/2006-December/053069.html get get the same problem (no tmarshal.h) as posted in my first mail.
-- Thanks Stefan
Hi,
I took Paul's example as well (partly). I have two trees:
/wine/wine-git and /wine/wine-pe
wine-git is configured with the standard ./configure.
wine-pe with:
./configure --host=i386-mingw32 --with-wine-tools=../wine-git
This works fine (for me) and also for the tmarshal.h:
../../../../wine-git/tools/widl/widl -I. -I. -I../../../include -I../../../include -h -H tmarshal.h tmarshal.idl
Cheers,
Paul.
Stefan Leichter Stefan.Leichter@camLine.com writes:
What parameters do i need to pass to configure for this case. If i do it like Paul Millar descripted it
../wine-git/configure --host=i586-mingw32msvc \ -with-wine-tools=../wine-build
That should work. Make sure you don't have a tmarshal.h in the source tree.
Am Thursday 25 January 2007 13:08 schrieb Alexandre Julliard:
Stefan Leichter Stefan.Leichter@camLine.com writes:
What parameters do i need to pass to configure for this case. If i do it like Paul Millar descripted it
../wine-git/configure --host=i586-mingw32msvc \ -with-wine-tools=../wine-build
That should work. Make sure you don't have a tmarshal.h in the source tree.
I'm sorry to tell you that it doesn't work but it looks different now. Just building the tests give me the error
sle@sle3:/usr/src/wine/wine-mingw$ make -C dlls/oleaut32/tests/ make: Entering directory `/usr/src/wine/wine-mingw/dlls/oleaut32/tests' ../../../../wine-build/tools/widl/widl -I../../../../wine-git/dlls/oleaut32/tests -I. -I../../../../wine-git/include -I../../../include -h -H tmarshal.h ../../../../wine-git/dlls/oleaut32/tests/tmarshal.idl i586-mingw32msvc-gcc -c -I../../../../wine-git/dlls/oleaut32/tests -I. -I../../../../wine-git/include -I../../../include -D_REENTRANT -Wall -pipe -fno-strength-reduce -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -g -O2 -o tmarshal.o ../../../../wine-git/dlls/oleaut32/tests/tmarshal.c ../../../../wine-build/tools/widl/widl -I../../../../wine-git/dlls/oleaut32/tests -I. -I../../../../wine-git/include -I../../../include -t -T tmarshal.tlb ../../../../wine-git/dlls/oleaut32/tests/tmarshal.idl error: Could not open importlib stdole2.tlb. make: *** [tmarshal.tlb] Fehler 2 make: Leaving directory `/usr/src/wine/wine-mingw/dlls/oleaut32/tests'
Checking the _unix_build_ i find the missing stdole2.tlb in ./dlls/stdole2.tlb and ./include/stdole2.tlb. When doing the cross compile the one in the include directory not generated.
Just running make in the top level directory of the cross build gives me the error:
make[1]: Entering directory `/usr/src/wine/wine-mingw/loader' (GIT_DIR=../../wine-git/.git git-describe HEAD 2>/dev/null || echo "wine-0.9.30") | sed -e 's/(.*)/const char wine_version[] = "\1";/'
version-stamp || (rm -f version-stamp && exit 1)
i586-mingw32msvc-gcc -o wine-pthread pthread.o main.o version.o -L../libs/wine -lwine ../libs/port/libwine_port.a main.o: In function `main':/usr/src/wine/wine-mingw/loader/../../wine-git/loader/main.c:110: undefined reference to `_pthread_functions' collect2: ld returned 1 exit status make[1]: *** [wine-pthread] Fehler 1 make[1]: Leaving directory `/usr/src/wine/wine-mingw/loader' make: *** [loader] Fehler 2
And if i try make in the dll directory i get:
make[1]: Entering directory `/usr/src/wine/wine-mingw/dlls/winspool.drv' ../../../wine-build/tools/winebuild/winebuild -w --def -o libwinspool.a --export ../../../wine-git/dlls/winspool.drv/winspool.drv.spec make[1]: Leaving directory `/usr/src/wine/wine-mingw/dlls/winspool.drv' rm -f libwinspool.a && ln -s winspool.drv/libwinspool.a libwinspool.a ... make[1]: Entering directory `/usr/src/wine/wine-mingw/dlls/comdlg32' i586-mingw32msvc-dllwrap -k --def libcomdlg32.def -o comdlg32.dll rsrc.res.o cdlg32.o colordlg.o filedlg.o filedlg31.o filedlgbrowser.o finddlg32.o fontdlg.o printdlg.o -L../../dlls -L../../dlls/ole32 -L../../dlls/shell32 -L../../dlls/shlwapi -L../../dlls/comctl32 -L../../dlls/winspool -L../../dlls/user32 -L../../dlls/gdi32 -L../../dlls/advapi32 -L../../dlls/kernel32 -L../../dlls/ntdll -lole32 -lshell32 -lshlwapi -lcomctl32 -lwinspool -luser32 -lgdi32 -ladvapi32 -lkernel32 -lntdll -L../../libs/wine -lwine -luuid ../../libs/port/libwine_port.a ../../dlls/libwinspool.a: file not recognized: File format not recognized collect2: ld returned 1 exit status i586-mingw32msvc-dllwrap: i586-mingw32msvc-gcc exited with status 1 make[1]: *** [comdlg32.dll] Fehler 1 make[1]: Leaving directory `/usr/src/wine/wine-mingw/dlls/comdlg32' make: *** [comdlg32] Fehler 2
These problems are show stoppers for me because i have no idea how to fix it.
Bye Stefan
PS: I wiill try again on Monday
Stefan Leichter Stefan.Leichter@camline.com writes:
Checking the _unix_build_ i find the missing stdole2.tlb in ./dlls/stdole2.tlb and ./include/stdole2.tlb. When doing the cross compile the one in the include directory not generated.
It is generated just fine for me. Make sure you don't have any object file anywhere in the source dir.
These problems are show stoppers for me because i have no idea how to fix it.
Some parts of the tree, like the loader, cannot be cross-compiled, just do a make -k and ignore the failures.