[Ohrrpgce] SVN: james/12149 Dockerfile for bobthehamster/ohrrpgce-mxe-build-env now works, and is ca

Ralph Versteegen teeemcee at gmail.com
Tue Dec 29 01:16:03 PST 2020


I use Slackware, which has good multilib support, so I can compile 32/64
bit binaries on the same system without trouble, and it doesn't have the
nuisance of separate -dev packages either. I'm not aware of any Slackware
packages that don't support multilib.
Due to the very different design of the Debian package manager it has these
incompatibilities. I read that they have put a lot of work into increasing
the supported packages but apparently aren't there yet.

I found the bug report for the libxkbcommon problem, and it seems to be
fixed in version 0.8.0-2.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=893855
The sdl 1.2 problem seems to be here
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=932372 but it's not fixed.

But yes, no harm in separate Docker images; this seems like just the
problem that Docker was intended to solve.

mxe is a cross-compiler only for Windows (mingw-w64) although the
documentation hints they used to, or at least had the ambition to, target
other platforms too.

I was considering that perhaps we should use SDL 1.2 for 32-bit Linux
builds (at least from Distribute Game), and SDL 2 for 64-bit Linux, same as
Mac. Since anyone who is using a 32-bit distro is probably on an older
linux installation. And I was planning to mark the 32-bit Linux Distribute
Game options as for obsolete OSes.
On the other hand if we are going to at some point start including
sdl/sdl_mixer in tarballs anyway then we would want to use sdl2/sdl2_mixer
always because it has more features.


On Tue, 29 Dec 2020 at 14:47, James Paige <Bob at hamsterrepublic.com> wrote:

> Okay, since wine will be needed for other stuff, I should probably focus
> on a headless wine for the windows build env.
>
> Question: Have you been able to compile both Linux 32 and 64 bit binaries
> on the same system? And if so, was mxe involved?
>
> I see that I cannot have libsdl1.2-mixer-dev and libsdl-1.2-mixer-dev:i386
> installed at the same time, they don't support multilib. Also libsdl2-dev
> and libsdl2-dev:i386 support multilib, but they depend on libxkbcommon-dev
> which does not support multilib.
>
> I'm okay with just having separate docker images for 32 bit and 64 bit
> Linux builds. I already know it works :)
>
> ---
> James Paige
>
>
>
>
>
> On Mon, Dec 28, 2020 at 8:02 PM Ralph Versteegen <teeemcee at gmail.com>
> wrote:
>
>>
>>
>> On Mon, 28 Dec 2020 at 15:05, James Paige <Bob at hamsterrepublic.com>
>> wrote:
>>
>>> I can successfully cross-compile game.exe and custom.exe from this
>>> docker container with
>>>
>>> scons target=i686-w64-mingw32.static
>>>
>>> Great!
>>
>>
>>> I haven't actually tried running them yet, but I'll get there :D
>>> I noticed that I cannot compile speak the same way:
>>>
>>> scons target=i686-w64-mingw32.static hspeak
>>>
>>> This just results in compiling hspeak for linux.
>>>
>>
>> Right, scons doesn't support cross-compiling hspeak. I'd forgotten that
>> hiccup. I don't know whether it is even possible to build an euc that can
>> cross-compile, but I'll try it and report back, since we're already
>> compiling FB anyway. I know that a euphoria build can only target a single
>> platform which is why we need separate copies of euphoria for x86 and
>> x86_64 linux.
>> Alternatively, we could run euc under wine, since we unfortunately need
>> wine anyway for scons pdb=1 builds
>>
>> To get everything compiling (after all the needed -dev libs were
>>> installed) I ended up adding CFLAGS="-g -DDISABLE_FFI" for the 32 and 64
>>> bit Linux targets, since I could not figure out the Linux equivalent of the
>>> `$TARGET-pkg-config libffi --cflags`" thing that worked for
>>> TARGET="i686-w64-mingw32.static"
>>>
>>> I guess I just need to read the docs and figure out what the right
>>> $TARGET is for 32 and 64 bit Linux
>>>
>>
>> I would expect it would be `pkg-config libffi --cflags`, since that's not
>> a crosscompile, although I see I also have a
>> x86_64-slackware-linux-gnu-pkg-config on my machine.
>> But I've never needed to use pkg-config for libffi on Linux (and it
>> prints nothing for --cflags), and you mustn't have either, when you
>> previously compiled fbc to target android. I wonder what's different about
>> the Docker environment.
>>
>>
>>> Anyway, that is enough for today. I'm going to bed. :)
>>>
>>> ---
>>> James Paige
>>>
>>>
>>>
>>>
>>> On Sun, Dec 27, 2020 at 9:00 PM <subversion at hamsterrepublic.com> wrote:
>>>
>>>> james
>>>> 2020-12-27 18:00:12 -0800 (Sun, 27 Dec 2020)
>>>> 114
>>>> Dockerfile for bobthehamster/ohrrpgce-mxe-build-env now works, and is
>>>> capable of compiling game.exe and custom.exe
>>>> ---
>>>> U   wip/docker/ohrrpgce-mxe-build-env/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/20201229/2e77b3fe/attachment-0001.html>


More information about the Ohrrpgce mailing list