Hello All,
We are trying to build Wine Source on Linux with native wchar_t size 4 bytes (instead of 2 bytes), is there any way it can be done? I started with doing following changes:
diff --git a/tools/winapi/winapi_test b/tools/winapi/winapi_test
index b9628e8..91daac3 100644
--- a/tools/winapi/winapi_test
+++ b/tools/winapi/winapi_test
@@ -206,7 +206,11 @@ sub _find_align_kind_size($) {
$align = 2;
$kind = "signed";
$size = 2;
- } elsif (/^(?:char16_t|wchar_t|USHORT|WCHAR|WORD)$/) {
+ } elsif (/^(?:wchar_t|WCHAR)$/) {
+ $align = 4;
+ $kind = "unsigned";
+ $size = 4;
+ } elsif (/^(?:char16_t|USHORT|WORD|WCHAR_nt)$/) {
$align = 2;
$kind = "unsigned";
$size = 2;
Also started changing some of headers e.g. winnt.h - removed "typedef unsigned short WCHAR;" Any pointers/suggestion are welcome. Thanking you.
regards,
Mahin
Hello,
I am not sure if this is the appropriate channel but here we go.
I am trying to port a windows c++ application using winelib and I found an issue while using some c++ STL containers.
Here is a minimal example:
# winelib.dll.so
```c++
#include <windows.h>
#include <unordered_map>
#include <string>
extern "C"
int f1(long z)
{
std::unordered_map<int, std::string> y;
return 10;
}
spec file
```c++
2 stdcall f1(long)
```
# Building winelib.dll.so
winemaker --console --dll .
winebuild --implib -E winedll.spec -o libwinedll.a
winebuild --fake-module --dll -E winedll.spec -o winedll.dll
make
cp libwinedll.a winedll.dll.so /usr/local/lib/wine/x86_64-unix
cp winedll.dll /home/$USER/.wine/drive_c/windows/system32
win64 app
```c++
#include <iostream>
extern "C"{
int f1(long z);
}
int main(){
int ret = f1(2);
std::cout << ret << std::endl;
}
```
# Building win64 app
winemaker . -iwinedll
make
# Running
wine64 win64app.exe.so
# Output
0110:err:virtual:virtual_setup_exception stack overflow 2128 bytes in thread 0110 addr 0x17008c804 stack 0x207b0 (0x20000-0x21000-0x120000)
If I remove the "std::unordered_map<int, std::string> y" from the custom lib it runs normally.
I suspect that wine uses too much of the stack to construct the object, but it's just a wild guess.
Does anybody know what the issue could be?
Is it possible to increase the stack size?
Thanks.
* The TestBot has a new Windows 11 VM.
It's a new Windows version so it has almost 40 extra failures. To
avoid false positives it's only going to be running WineTest until the
new failures have been flagged. But you can already select it in the
list of available VMs to run tests on it.
* There are now two PCI-Passthrough configurations:
- w11pro64_amd -> AMD RX6600 GPU
- w11pro64_nv -> NVIDIA RTX3050 GPU
These have a surprising number of extra failures, about 12, when
fgtb-w10pro64-rx550 only has about 2 extra failures. So I will
recheck the configuration of the new VMs (on the AMD side it may
have the clipboard problem again, but then a number of failures
appeared to be in the d3d tests).
These are also only running WineTest for now so as to not cause false
positives but you can select them in the list of available VMs.
--
Francois Gouget <fgouget(a)codeweavers.com>
On Wed, Oct 19, 2022 at 3:05 PM Gerald Pfeifer <gerald(a)pfeifer.com> wrote:
>
> On Wed, 19 Oct 2022, Erich E. Hoover wrote:
> >> https://gitlab.winehq.org/wine/wine/-/merge_requests/1097
> > It looks like this just got merged. Gerald, would you check and see
> > if ENOATTR is defined on your system?
>
> I checked, and FreeBSD (12 and 14, so current and future versions) both
> define ENOATTR guarded by #ifndef _POSIX_SOURCE, so generally available.
>
> > This commit removes the compile warning
>
> It actually was hard build error.
Yes, sorry - I misspoke.
> > but you're going to get a lot of unnecessary console warnings
> > ("attribute does not exist" is not an error here).
>
> Is it possible Alexandre's adjusted version of my submission avoids this?
> ...
No. If the filesystem supports extended attributes (!ENOTSUP) then
you will get an error if there aren't any xattr for the file. I
suspect that we either want:
===
#ifdef ENODATA
if (errno == ENODATA) return ret;
#endif
#ifdef ENOATTR
if (errno == ENOATTR) return ret;
#endif
===
Or we want to do something like this:
===
#ifndef ENOATTR
#define ENOATTR ENODATA
#endif
===
and then check against ENOATTR instead (little bit of research says
that platforms that define both use ENOATTR in this case).
Best,
Erich
Binary packages for various distributions will be available from:
https://www.winehq.org/download
Summary since last release
* Rebased to current wine 7.19 (502 patches are applied to wine vanilla)
Upstreamed (Either directly from staging or fixed with a similar patch).
* winegstreamer: Return S_OK from H264 decoder GetAttributes.
* Implement retrieving DOS attributes in [fd_]get_file_info().
* ntdll: Implement storing DOS attributes in NtSetInformationFile.
* ntdll: Implement storing DOS attributes in NtCreateFile.
* sapi: Implement ISpObjectToken GetId
* secur32: Input Parameter should be NULL on first call to
InitializeSecurityContextW.
* sapi: Implement ISpRegDataKey CreateKey
* sapi: Implement ISpRegDataKey GetStringValue
* ntdll: Improve stub of NtQueryEaFile.
* winegstreamer: Reimplement AAC decoder using wg_transform.
Added:
* None
Updated:
* ntdll-DOS_Attributes
* wined3d-bindless-texture
* ntdll-Junction_Points
Where can you help
* Run Steam/Battle.net/GOG/UPlay/Epic
* Test your favorite game.
* Test your favorite applications.
* Improve staging patches and get them accepted upstream.
* Suggest patches to be included in staging.
As always, if you find a bug, please report it via
https://bugs.winehq.org
Best Regards
Alistair.
On Mon, Sep 12, 2022, 11:11 AM Owen Hogarth <gurenchan(a)gmail.com> wrote:
> Hello guys, I am trying to get this program; R Trader Pro to work on Linux.
> I installed winetricks and then I received some different errors.
>
> I would like to fix the problem but I would also like to avoid doing
> unnecessary work, that's why I am asking on the development mailing list.
>
> Here's the new error log, is it possible to get the program working?
> ...
> An error occured while contacting the license server.
>
> Raised in : com.omnesys.omne.om.OMField
> Method : OMsetData
> Error : no data
> Raised in : 31004 1 unknown host 20014 1 unknown addr
>
> Method : OMaddData
> Error : create error
> Please contact Omnesys Technologies Inc., at www.omnesys.com.
>
Please launch the application or the installer with the following command
line (without angle brackets):
export WINEPREFIX="$HOME/.wine-traderpro-test" # (or whatever
wineprefix path you prefer)
WINEDEBUG=+winsock wine <path to exe...>
Also, please make sure you don't use native DLLs from winetricks when
debugging or reporting a bug.