[PD-dev] cross-compiling linus-to-windows 64 bit using automake

Miller Puckette msp at ucsd.edu
Mon Feb 19 22:42:28 CET 2018


I'm able to sucessfuilly cross-compile 64-bit windows targets from linux
now, albeit a bit shakily.  Here's what I've found so far:

'libtool' has a library dependency, -lmsvcrt , which breaks compilation.  It
works just to delete it.

Somehow a 32-bit version of libwinpthread-1.dll gets installed - I have to
manually replace it with a 64-bit one.

and... try as I might I still can't get it working with tcl/tk 8.6 - I have to
yse 8.5.  More on that later.

My compilation steps currently look like this (after making a clean directory
to put it in, /home/msp/bis/work/pd-versions/build-dirs/test85):

v=0.48-1test3-ia64
tkversion=8.5.19
s=/home/msp/tmp/clean-pd-source

git clone ~/pd $s
cd $s
./autogen.sh
cd /home/msp/bis/work/pd-versions/build-dirs/test85
$s/configure --host=x86_64-w64-mingw32 CPPFLAGS='-DPD_LONGINTTYPE=__int64'
sed -i '/-lmsvcrt/s/-lmsvcrt//g' libtool
make
cd msw
cp -a /home/msp/bis/work/pd-versions/build-tk-on-win64/msw/tcltk-$tkversion .
/home/msp/bis/work/pd-versions/build-tk-on-win64/msw/msw-app.sh \
   --builddir ..  --tk tcltk-$tkversion $v
cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libwinpthread-1.dll \
   pd-$v/bin/

(note: I make the clone of the Pd source so I don't have to run automake in my
'clean' source tree).

When I try this for 8.6.8 I change the configuration line as follws:
$s/configure --host=x86_64-w64-mingw32 \
    --with-wish=wish86.exe \
    CPPFLAGS='-DPD_LONGINTTYPE=__int64 -DWISH=\"wish86.exe\"'

It all builds fine and I'm able to run wish86.exe all right; but when I try
to test it as in:

wine pd-0.48-1test2-ia64/bin/wish86.exe `pwd`/pd-0.48-1test2-ia64/tcl/pd-gui.tcl

I get signs of memory corruption that I haven't been able to track down (my
debugging statements in pd-gui.tcl generate binary garbage).  This seems to
be an interaction between wine and tcl/tk and is almost certainly too deep
for me to figure out.

This doesn't seem to be a fatal problem though - if my "test" 64-bit build works
OK I can live with that for at least until 8.7 comes out (and who knows what
problems that might fix and/or introduce)

cheers
Miller




More information about the Pd-dev mailing list