summaryrefslogtreecommitdiff
path: root/binary/mingw-w64/NOTES
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-02-11 16:20:56 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-02-11 16:23:49 +0200
commit6fe7fc56873b27deef74bc9dc36adf86af4fd79b (patch)
treeab6794c3f6ac2202ebf9f5e2f24cd4f0886fc68e /binary/mingw-w64/NOTES
parentbe44ee078fa5d5470dddd097db0d97fadfc754ff (diff)
Update MinGW64 binary build (MinGW 3.3 runtime)
Using GCC 4.9.3, multi-arch/multi-lib build (you don't want to try this at home).
Diffstat (limited to 'binary/mingw-w64/NOTES')
-rw-r--r--binary/mingw-w64/NOTES58
1 files changed, 41 insertions, 17 deletions
diff --git a/binary/mingw-w64/NOTES b/binary/mingw-w64/NOTES
index fec4e7a..c94988f 100644
--- a/binary/mingw-w64/NOTES
+++ b/binary/mingw-w64/NOTES
@@ -1,7 +1,11 @@
-TODO:
+Notes:
-* Multi-arch build (i.e., i686 hosted, i686 and x86_64-trageting, just
- like in Qt5). Then will be able to pass -m32/-m64 to the ODB compiler.
+- Currently have to use the mingw/lib -> i686-w64-mingw32/lib64 hack to
+ make GCC see 64-bit system libraries. This is required for both cross
+ and native compiler. In the native compiler it is removed later and
+ the result seem to work ok.
+
+- If updating msys, add gendef and reimp (from mingw-utils) utilities.
An overview of steps required to switch to a new GCC version. This is
a complete toolchain bring up.
@@ -39,9 +43,11 @@ a complete toolchain bring up.
3. Adapt gcc-cross-configure based on MinGW-W64 config and old config.
4. Build & install GCC only:
+ # High -j does not seem to work properly, -j 4 seems to work.
+
cd gcc-cross-build
../gcc-cross-configure
- make -j 16 all-gcc
+ make -j 4 all-gcc
make install-gcc
5. Build runtime:
@@ -52,32 +58,39 @@ a complete toolchain bring up.
export PATH=`pwd`/cross/mingw/bin:$PATH
cd mingw-w64-build
../rt-cross-configure
- make -j 16
- make install
+ make -j 22
+ make -j 22 install
-6. Build pthreads:
+ i686-w64-mingw32-ar cr ../cross/mingw/i686-w64-mingw32/lib/libpthread.a
+ i686-w64-mingw32-ar cr ../cross/mingw/i686-w64-mingw32/lib64/libpthread.a
- 1. Get winpthreads, create or clean winpthreads-build
-
- svn checkout http://mingw-w64.svn.sourceforge.net/svnroot/mingw-w64/experimental/winpthreads
-
- 2. Build and install:
+ mkdir winpthreads32
+ cd winpthreads32
+ ../../pthread-cross-configure
+ make -j 16
+ make install
+ mv ../../cross/mingw/i686-w64-mingw32/bin/libwinpthread* ../../cross/mingw/i686-w64-mingw32/lib/
- export PATH=`pwd`/cross/mingw/bin:$PATH
- cd winpthreads-build
- ../pthreads-cross-configure
+ cd ..
+ mkdir winpthreads64
+ cd winpthreads64
+ ../../pthread-cross-configure-64
make -j 16
make install
+ mv ../../cross/mingw/i686-w64-mingw32/bin/libwinpthread* ../../cross/mingw/i686-w64-mingw32/lib64/
7. Build cross-GCC, phase 2:
1. Build & install:
+ @@ Had to ln mingw/lib to lib64 in cross/mingw/
+
cd gcc-cross-build
make -j 16
make install
- 2. Disable .dll & .la files in i686-w64-mingw32/lib and bin/.
+ 2. Disable .dll & .la files in i686-w64-mingw32/lib and bin/ (for
+ static link)
3. Check that the compiler works. Compile and run sizeof_funds.cxx and
throw.cxx.
@@ -91,11 +104,17 @@ a complete toolchain bring up.
cd mingw-w64-headers-build
make DESTDIR=/home/boris/work/odb/build/mingw-w64/mingw-rt install
+ # May need export PATH above
cd mingw-w64-build
make DESTDIR=/home/boris/work/odb/build/mingw-w64/mingw-rt install
- cd winpthreads-build
+ cd winpthreads32
make DESTDIR=/home/boris/work/odb/build/mingw-w64/mingw-rt install
+ #do manually: mv ../../mingw-rt/i686-w64-mingw32/bin/libwinpthread* ../../mingw-rt/i686-w64-mingw32/lib/
+
+ cd winpthreads64
+ make DESTDIR=/home/boris/work/odb/build/mingw-w64/mingw-rt install
+ #do manually: mv ../../mingw-rt/i686-w64-mingw32/bin/libwinpthread* ../../mingw-rt/i686-w64-mingw32/lib64/
Move to the top level directory.
@@ -160,8 +179,13 @@ a complete toolchain bring up.
2. Check the package for any stray directories/files. Compare size to
the old version.
+ Check that 32 and 64-bit libstdc++ are different (use file) Globbing
+ for odb.
+
3. On Windows, check that:
+ - No dependencies on MinGW DLLs (odb, g++, cc1plus, ld).
+
- Compiler, including exceptions, work. Compile and run sizeof_funds.cxx
and throw.cxx.