[Ohrrpgce] SVN: james/12449 Docker: ohrrpgce-build-env-wine now has mingw64 and euphoria

Ralph Versteegen teeemcee at gmail.com
Sun Sep 19 17:55:52 PDT 2021


On Mon, 20 Sept 2021 at 07:06, James Paige <Bob at hamsterrepublic.com> wrote:

>
> I made a bunch of fixes, and now *wine scons* gets further.
>
> Switching to 32 bit compiler packages instead of 64 bit helped a lot.
>
> Also, I did manage to get reloadbasic.py running with just "python3" and
> not needing the whole path (The base image I am using sets up the PATH
> environment variable inside wine incorrectly for python). I have not made
> the change in the SConscript yet because i still need to upgrade from
> python2 to python3 on the Windows nightly build machine
>

Did you try just 'python'? Works for me, and python is python 2.7 on my
system.

>
> Right now the current error I am bumping into is:
>
>
> *windres --input gicon.rc --output build\gicon.owindres: can't popen `gcc
> -E -xc -DRC_INVOKED  gicon.rc': Bad file descriptor*
>
> I searched around for that error message, and found people suggesting to
> add the *windres.exe *argument *--use-temp-file* but that didn't help, it
> just changed the failure
>
>
> *windres --use-temp-file --input gicon.rc --output build\gicon.owindres:
> can't redirect stdout: `C:\users\root\Temp\cca00360.irc': Bad file
> descriptor*
>

I could not find any search results at all for those errors while running
windres under wine, though I did see them for running windres.exe on
Windows. So I have no idea how to fix them other than not use windres.exe
at all.
You could use a linux build of windres instead of windres.exe.
I also note the following comment in SConscript:

# windres is part of mingw, and this is only used with linkgcc anyway.
# FB includes GoRC.exe, but finding that file is too much trouble...

The part about linkgcc is wrong (though we could avoid explicitly calling
windres when using linkgcc=0, but it would be better not to do that
anyway), but GoRC could be an option.

If you spend much time trying to force wine into the build system then it
would be easier to cross-compile to Windows with mxe, plus builds are as
fast as they are on Unix. I can't imagine wine being very fast.


>
>
> Too much fun :D
>
> I am also thinking ahead about how to do a docker build for Mac. Running
> darwin in Docker is apparently possible, but sounds impractical. An actual
> OSX inside KVM inside Docker is also apparently possible, but I feel like
> that defeats the point of dockerizing it. I guess i'll look at OSXcross
> more later.
>
> Of course, the real goal I am working towards is not Dockerizing all the
> builds, it is really making Jenkins do all the builds-- so if dockerizing a
> build is more work than setting up an always-on VM with a Jenkins agent
> installed in it, then I just switch my approach :D
>
> ---
> James
>
> On Sat, Sep 18, 2021 at 11:09 PM Ralph Versteegen <teeemcee at gmail.com>
> wrote:
>
>>
>>
>> On Sun, 19 Sept 2021 at 12:56, James Paige <Bob at hamsterrepublic.com>
>> wrote:
>>
>>> So now not only does fbc work in the wine docker container, so does
>>> mingw64 and euphoria
>>>
>>>  *wine scons hspeak* actually works, and produces a working hspeak.exe
>>> (tested with *wine hspeak*)
>>>
>>> compiling game and custom fails though. I see two problems so far.
>>>
>>> First, when scons executes reloadbasic/reloadbasic.py on Windows, this
>>> relies on the .py file type being associated with python, so scons seems to
>>> be directly invoking *reloadbasic/reloadbasic.py* and this works on
>>> Real windows because the filetype is associated with python.exe but on
>>> Wine, this type of file association does not seem to work, even when I make
>>> sure the association is set up with regedit.
>>>
>>> Editing the constructor for the rbasic_builder in Sconscript to *Builder
>>> (action = ["C:\Python39\python.exe", [File('reloadbasic/reloadbasic.py'),
>>> ...* does work and fixes the problem, so I just need to work out a
>>> clean way to do that without breaking other platforms.
>>>
>>
>> Can't you just invoke python or python3 instead of C:\Python39\python.exe?
>> (I'm not sure whether we dropped python 2 support when you switched all
>> the #! lines to python3; maybe python2 would still work if invoked
>> explicitly, or maybe python3 will be called somewhere whether installed or
>> not)
>>
>>
>>>
>>> The other error is this:
>>>
>>> os_windows.bas(107) error 20: Type mismatch, before ')' in 'dim fd as
>>> integer = _open_osfhandle(cast(integer, fhandle), 0)'
>>> os_windows.bas(714) warning 35(1): Mixing signed/unsigned operands
>>> os_windows.bas(784) warning 35(1): Mixing signed/unsigned operands
>>>
>>> Which makes me think I might have a mismatch in my FreeBasic/mingw64
>>> versions, but I don't really know yet, just a wild guess.
>>>
>>
>> This error is thrown by fbc, so the mingw version isn't related.
>> I suspect that maybe you're trying to compile for win64/x86_64? If fbc
>> itself is a win64 .exe then it probably also defaults to win64 builds. If
>> it has 32-bit libraries then it can compile for x86 with scons arch=32, and
>> we should make that the default.
>> [Note: win64 informally is used to mean 64-bit windows, but win32 does
>> not mean 32-bit Windows, it means not-16-bit, and for example compilers
>> such as FB define __FB_WIN32__ (or equivalent in C) on 64-bit Windows]
>>
>> I also see that you're downloading a 6-bit version of Euphoria for
>> Windows, that should be 32-bit instead (I assume Euphoria can't
>> crosscompile on Windows, just as it can't on Unix).
>>
>>
>>>
>>> ---
>>> James
>>>
>>>
>>>
>>>
>>>
>>> On Sat, Sep 18, 2021 at 6:55 PM <subversion at hamsterrepublic.com> wrote:
>>>
>>>> james
>>>> 2021-09-18 15:55:34 -0700 (Sat, 18 Sep 2021)
>>>> 60
>>>> Docker: ohrrpgce-build-env-wine now has mingw64 and euphoria
>>>> ---
>>>> U   wip/docker/ohrrpgce-build-env-wine/Dockerfile
>>>>
>>>> _______________________________________________
>>>> Ohrrpgce mailing list
>>>> ohrrpgce at lists.motherhamster.org
>>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>>
>>> _______________________________________________
>>> Ohrrpgce mailing list
>>> ohrrpgce at lists.motherhamster.org
>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>
>> _______________________________________________
>> Ohrrpgce mailing list
>> ohrrpgce at lists.motherhamster.org
>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>
> _______________________________________________
> Ohrrpgce mailing list
> ohrrpgce at lists.motherhamster.org
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/attachments/20210920/8216da67/attachment.html>


More information about the Ohrrpgce mailing list