unowinreg.dll and Win64

Rene Engelhard rene at debian.org
Sat Nov 28 16:49:39 UTC 2020


Hi,

I am currently doing some cleanups in my packages and I noticed a
possible inconsistency...

On Windows 64bit, what is unowinreg.dll supposed to be?

A 64 bit dll? A 32 bit dll?

And what is it supposed to be on Linux x86_64 nowadays?

Currently it is (also in TDF) like the following:
 - Windows builds it during the normal build
   (odk/Library_unowinreg.mk). I don't see any special flags so I
   *assume* it is built as 32bit .dll on Win32 and as 64bit .dll
   on Win64
 - on Linux you either
   - (per default) use the 32bit(!)[1] pre-built
     185d60944ea767075d27247c3162b3bc-unowinreg.dll downloaded
     in make fetch
   - build it via the mingw cross-compiler and use that one
     (with it checking
     dnl Guess...
     AC_CHECK_PROGS(MINGWCXX,i386-mingw32msvc-g++ i586-pc-mingw32-g++
i686-pc-mingw32-g++ i686-w64-mingw32-g++,false) [2]
     )

So if Windows builds it per default (without any extra flags afaics)
that would mean the 64bit windows builds builds a 64bit .dll and thus we
need to adapt this, too for Linux 64bit packages?

As probably Java will refuse to load the 32bit library on 64bit systems?

Which then would mean we'd put it into a package which is
architecture-specific and differs between i386 and amd64 (which isn't
the case on Linux yet as even on amd64 - as shown above - it gets the
32bit one.)

Regards,

Rene

[1]
$ file 185d60944ea767075d27247c3162b3bc-unowinreg.dll
185d60944ea767075d27247c3162b3bc-unowinreg.dll: PE32 executable (DLL)
(console) Intel 80386, for MS Windows

[2]
my packaging does --with-mingw-cross-compiler=i686-w64-mingw32-g++
and thus also builds a 32bit .dll, 64bit would be x86_64-w64-mingw32-g++)


More information about the LibreOffice mailing list