Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2020-04

Wine + Unsupported ioctl

8 messages · 4 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Juha Manninen

Hello

I installed FPC 3.2RC1 Win32 version under Wine in Linux Manjaro 64-bit. Wine version is a recent 5.5-1.
Compiling a hello.lpr program works.
Then I made a symbolic link for my Lazarus trunk sources and tried to build with both "make all" and "make bigide".
All components compile well but with lazbuild it stops with an error (see below).
What does "008b:fixme:ntdll:server_ioctl_file Unsupported ioctl" mean? A net search gave only few links and they told to ignore the message if the program works.
Well, this does not work.
Has anybody built Lazarus under Wine? Should I test with FPC 3.0.4? Is this somehow related to the new version? Or is it about 32 / 64 bits? I remember building Lazarus under Wine some years ago but then I installed from Lazarus installer and later created a symlink for trunk sources.

Juha

---

make[1]: Leaving directory `c:/lazarus_trunk/components/lazdebuggergdbmi' make -C ide lazbuilder LCL_PLATFORM=nogui
make[1]: Entering directory `c:/lazarus_trunk/ide' make --assume-new=lazbuild.lpr lazbuild.exe OPT='
-Fu../packager/units/i386-win32 -Fu../components/codetools/units/i386-win32 -Fu../components/debuggerintf/lib/i386-win32
-Fu../components/lazutils/lib/i386-win32 -Fu../lcl/units/i386-win32 -Fu../lcl/units/i386-win32/nogui
-Fu../components/buildintf/units/i386-win32
-Fu../components/ideintf/units/i386-win32/nogui
-Fu../components/synedit/units/i386-win32/nogui
-Fu../components/lazcontrols/lib/i386-win32/nogui
-Fu../components/lazdebuggergdbmi/units/i386-win32/nogui -Fu../units/i386-win32/nogui '
make[2]: Entering directory `c:/lazarus_trunk/ide' c:/FPC/3.2.0rc1/bin/i386-Win32/ppc386.exe -gl -vbqewnhi -Sci -dlclnogui -Fu../designer -Fu../debugger -Fu../debugger/frames -Fu../converter -Fu../packager -Fu../packager/frames -Fu../components/custom -Fuinclude/win -Fuframes -Fu. -Fiinclude -Fiinclude/win32 -Fi../images -FE.. -FU../units/i386-win32/nogui -Fu../packager/units/i386-win32 -Fu../components/codetools/units/i386-win32
-Fu../components/debuggerintf/lib/i386-win32
-Fu../components/lazutils/lib/i386-win32 -Fu../lcl/units/i386-win32 -Fu../lcl/units/i386-win32/nogui
-Fu../components/buildintf/units/i386-win32
-Fu../components/ideintf/units/i386-win32/nogui
-Fu../components/synedit/units/i386-win32/nogui
-Fu../components/lazcontrols/lib/i386-win32/nogui
-Fu../components/lazdebuggergdbmi/units/i386-win32/nogui -Fu../units/i386-win32/nogui -di386 lazbuild.lpr
Hint: (11030) Start of reading config file
c:\FPC\3.2.0rc1\bin\i386-Win32\fpc.cfg
Hint: (11031) End of reading config file
c:\FPC\3.2.0rc1\bin\i386-Win32\fpc.cfg
Free Pascal Compiler version 3.2.0rc1 [2020/02/29] for i386 Copyright (c) 1993-2020 by Florian Klaempfl and others 008b:fixme:ntdll:server_ioctl_file Unsupported ioctl 900a8 (device=9 access=0 func=2a method=0)
Error: (1017) Path "..\" does not exist
make[2]: *** [lazbuild.exe] Error 1
make[2]: Leaving directory `c:/lazarus_trunk/ide'
make[1]: *** [lazbuilder] Error 2
make[1]: Leaving directory `c:/lazarus_trunk/ide'
make: *** [lazbuild] Error 2

Reply by email

Alexander Grotewohl
to Juha Manninen

my guess is that function of wine is unimplemented (pretends to work but does nothing)

try to see if you can fix the cause of the second error? does wine handle relative paths gracefully?

Alexander Grotewohl https://dcclost.com ________________________________
Earlier message 40 lines
From: fpc-pascal on behalf of Juha Manninen via fpc-pascal Sent: Saturday, April 4, 2020 1:32:21 PM To: FPC-Pascal users discussions Cc: Juha Manninen Subject: [fpc-pascal] Wine + Unsupported ioctl Hello I installed FPC 3.2RC1 Win32 version under Wine in Linux Manjaro 64-bit. Wine version is a recent 5.5-1. Compiling a hello.lpr program works. Then I made a symbolic link for my Lazarus trunk sources and tried to build with both "make all" and "make bigide". All components compile well but with lazbuild it stops with an error (see below). What does "008b:fixme:ntdll:server_ioctl_file Unsupported ioctl" mean? A net search gave only few links and they told to ignore the message if the program works. Well, this does not work. Has anybody built Lazarus under Wine? Should I test with FPC 3.0.4? Is this somehow related to the new version? Or is it about 32 / 64 bits? I remember building Lazarus under Wine some years ago but then I installed from Lazarus installer and later created a symlink for trunk sources. Juha --- make[1]: Leaving directory `c:/lazarus_trunk/components/lazdebuggergdbmi' make -C ide lazbuilder LCL_PLATFORM=nogui make[1]: Entering directory `c:/lazarus_trunk/ide' make --assume-new=lazbuild.lpr lazbuild.exe OPT=' -Fu../packager/units/i386-win32 -Fu../components/codetools/units/i386-win32 -Fu../components/debuggerintf/lib/i386-win32 -Fu../components/lazutils/lib/i386-win32 -Fu../lcl/units/i386-win32 -Fu../lcl/units/i386-win32/nogui -Fu../components/buildintf/units/i386-win32 -Fu../components/ideintf/units/i386-win32/nogui -Fu../components/synedit/units/i386-win32/nogui -Fu../components/lazcontrols/lib/i386-win32/nogui -Fu../components/lazdebuggergdbmi/units/i386-win32/nogui -Fu../units/i386-win32/nogui ' make[2]: Entering directory `c:/lazarus_trunk/ide' c:/FPC/3.2.0rc1/bin/i386-Win32/ppc386.exe -gl -vbqewnhi -Sci -dlclnogui -Fu../designer -Fu../debugger -Fu../debugger/frames -Fu../converter -Fu../packager -Fu../packager/frames -Fu../components/custom -Fuinclude/win -Fuframes -Fu. -Fiinclude -Fiinclude/win32 -Fi../images -FE.. -FU../units/i386-win32/nogui -Fu../packager/units/i386-win32 -Fu../components/codetools/units/i386-win32 -Fu../components/debuggerintf/lib/i386-win32 -Fu../components/lazutils/lib/i386-win32 -Fu../lcl/units/i386-win32 -Fu../lcl/units/i386-win32/nogui -Fu../components/buildintf/units/i386-win32 -Fu../components/ideintf/units/i386-win32/nogui -Fu../components/synedit/units/i386-win32/nogui -Fu../components/lazcontrols/lib/i386-win32/nogui -Fu../components/lazdebuggergdbmi/units/i386-win32/nogui -Fu../units/i386-win32/nogui -di386 lazbuild.lpr Hint: (11030) Start of reading config file c:\FPC\3.2.0rc1\bin\i386-Win32\fpc.cfg Hint: (11031) End of reading config file c:\FPC\3.2.0rc1\bin\i386-Win32\fpc.cfg Free Pascal Compiler version 3.2.0rc1 [2020/02/29] for i386 Copyright (c) 1993-2020 by Florian Klaempfl and others 008b:fixme:ntdll:server_ioctl_file Unsupported ioctl 900a8 (device=9 access=0 func=2a method=0) Error: (1017) Path "..\" does not exist make[2]: *** [lazbuild.exe] Error 1 make[2]: Leaving directory `c:/lazarus_trunk/ide' make[1]: *** [lazbuilder] Error 2 make[1]: Leaving directory `c:/lazarus_trunk/ide' make: *** [lazbuild] Error 2

Reply by email

fredvs
to Juha Manninen: Hello I installed FPC 3.2RC1 Win32 version under Wine in Linux Manjaro 64-bit. Wine…

Hello Juha.

Here on Linux Dedian 10.2 64 bit multi-arch it is working perfectly. I use wine + fpc.exe to compile many project, included MSEide or ideU.

Where did you install fpc.exe, in .wine/drive_ ?

Here where I did install it:

/home/fred/.wine/drive_c/FPC/3.0.4/bin/i386-win32/ppc386.exe

Did you install the Lazarus source also in .wine/drive_c ?

What command line are you using, I use this?

wine /home/fred/.wine/drive_c/FPC/3.0.4/bin/i386-win32/ppc386.exe myprogram.pas

Fre;D

Reply by email

Juha Manninen
to fredvs
PM Alexander Grotewohl wrote 5 lines
my guess is that function of wine is unimplemented (pretends to work but does nothing) try to see if you can fix the cause of the second error? does wine handle relative paths gracefully?

Ok, the fatal error was the "Path "..\" does not exist" instead of "Unsupported ioctl".
Yes, wine handles relative paths for sure. I don't what could cause such an error.

On Sat, Apr 4, 2020 at 9:42 PM fredvs via fpc-pascal <

Show quoted text 8 lines
wrote: Here on Linux Dedian 10.2 64 bit multi-arch it is working perfectly. I use wine + fpc.exe to compile many project, included MSEide or ideU. Where did you install fpc.exe, in .wine/drive_ ? Did you install the Lazarus source also in .wine/drive_c ?

FPC is in drive_c/FPC. I just started the 3.2RC1 installer from Dolphin and it ran with Wine. Nice.
Lazarus source dir is a symlink to my current sources. It should AFAIK. (?) $ ls -la drive_c/
yhteensä 32
drwxr-xr-x 8 juha juha 4096 4. 4. 19:45 .
drwxr-xr-x 4 juha juha 4096 4. 4. 21:36 ..
drwxr-xr-x 3 juha juha 4096 4. 4. 19:37 FPC
lrwxrwxrwx 1 juha juha 28 4. 4. 19:45 lazarus_trunk -> /home/juha/SW/lazarus_trunk/
drwxr-xr-x 7 juha juha 4096 29. 3. 02:04 ProgramData drwxr-xr-x 7 juha juha 4096 29. 3. 02:04 'Program Files' drwxr-xr-x 8 juha juha 4096 29. 3. 02:04 'Program Files (x86)' drwxr-xr-x 4 juha juha 4096 29. 3. 00:56 users
drwxr-xr-x 20 juha juha 4096 4. 4. 21:36 windows

What command line are you using, I use this?

wine /home/fred/.wine/drive_c/FPC/3.0.4/bin/i386-win32/ppc386.exe myprogram.pas

wine cmd
cd lazarus_trunk
make bigide

All packages were built correctly before the error.

BTW, I installed Wine stable 5.0-2 from Manjaro AUR but got the exact same errors.
Installing from AUR was impressive. It compiled with GCC for over half an hour with all 8 cores at 100% load. Then it just worked... I have a new passively cooled miniPC super-computer (!) with Ryzen 1605B embedded processor.
I used the opportunity to measure its thermal design. This was the hottest it got after ~half an hour:
-Sensors-
../../nvme0/temp1 Temperature 71,00°C
k10temp/temp1 Temperature 86,88°C
k10temp/temp2 Temperature 86,88°C
../../thermal_zone0/temp1 Temperature 66,00°C
amdgpu/temp1 Temperature 86,00°C
thermal/thermal_zone0 Temperature 67,00°C

Within the limits, no throttling. Nice! That was about the heaviest load it will get.

Regards,
Juha

Reply by email

Juha Manninen
to Juha Manninen
PM Juha Manninen wrote
Lazarus source dir is a symlink to my current sources. It should AFAIK. (?)

Should be: "It should work as far as I know."
My brain capacity is getting low after some bug fixing etc.

Reply by email

Juha Manninen
to fredvs

On Sat, Apr 4, 2020 at 10:48 PM fredvs via fpc-pascal <

Show quoted text 7 lines
wrote: Not sure to understand. So is it ok, only a warning to fix "Unsupported ioctl" or the linking still fails?

After Alexander Grotewohl's reply I understood the only line with text "error" is this one:
Error: (1017) Path "..\" does not exist
The "Unsupported ioctl" thing can possibly be ignored as my web search suggested.
I don't know how to fix the path error. I will try other ways of building under Wine tomorrow.

Wine 5.0 versus Wine 5.5 made no difference. The output was identical.

Juha

Reply by email

Karoly Balogh (Charlie/SGR
to Juha Manninen: Hello I installed FPC 3.2RC1 Win32 version under Wine in Linux Manjaro 64-bit. Wine…

Hi,

Juha Manninen wrote 7 lines
I installed FPC 3.2RC1 Win32 version under Wine in Linux Manjaro 64-bit. Wine version is a recent 5.5-1. Compiling a hello.lpr program works. (...) Has anybody built Lazarus under Wine? Should I test with FPC 3.0.4? Is this somehow related to the new version? Or is it about 32 / 64 bits? I remember building Lazarus under Wine some years ago but then I installed from Lazarus installer and later created a symlink for trunk sources.

Sorry for my ignorance, but why do you add an extra emulation layer?

If you want a compiler under Linux, which can produce Win32 executables, you can just use a normal Linux native ppc386 compiler. With FPC, the compiler binaries are only target CPU specific but not target OS specific, therefore all OSes for the given CPU target target are supported by all compilers, regardless of which OS they run on.

So you can tell the Linux ppc386 to target Windows (-Twin32), then specify the Win32 unit files via -Fu<path/to/your/win32/units/*> and you should get a Windows exe as result, without going through Wine during the compilation process. (Yes, the unit files between the Linux ppc386 and the Windows ppc386.exe are compatible too.)

Of course, your 64bit Linux has to be prepared to run 32bit Linux binaries, but as the Linux ppc386 doesn't even link against libc, this should be pretty easy.

If you don't want to use FPC's internal linker or assembler for some reason, I'm sure most Linux distros supply mingw cross-win32-binutils as well.

Charlie

(Ps: of course you could compile an x64 hosted ppc386 as well, but that would require your own crosscompiler builds, probably. What I described can be achieved by just downg pre-baked FPC binaries, and cherry picking what you need.)

Reply by email